Method and apparatus for run-time in-memory patching of code from a service processor
First Claim
Patent Images
1. A method for patching a program, comprising:
- identifying, via a service processor, a first item of a program to be patched during a runtime of the program, the program included in a volatile memory of a host and executed by a host processor, wherein the host processor further executes an operating system (OS), and the runtime of the program comprises the program being executed via the OS;
storing a patch for the first item in the volatile memory of the host; and
editing the program included in the volatile memory of the host during the runtime of the program, via the service processor, to cause the program to implement the patch rather than the first item, wherein editing includes maintaining runtime state for the program by allowing the host processor to execute a second item associated with the program while the program is edited via the service processor.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatuses enable in-memory patching of a program loaded in volatile memory. A service processor identifies a program to be patched and an associated patch for the program. The patch is loaded into memory, including applying relocation fix-ups to the patch. The service processor directs the program to the patch in place of the segment of the program to be patched. The program implements the patch while maintaining program state, and without suspending execution of the program.
83 Citations
23 Claims
-
1. A method for patching a program, comprising:
-
identifying, via a service processor, a first item of a program to be patched during a runtime of the program, the program included in a volatile memory of a host and executed by a host processor, wherein the host processor further executes an operating system (OS), and the runtime of the program comprises the program being executed via the OS; storing a patch for the first item in the volatile memory of the host; and editing the program included in the volatile memory of the host during the runtime of the program, via the service processor, to cause the program to implement the patch rather than the first item, wherein editing includes maintaining runtime state for the program by allowing the host processor to execute a second item associated with the program while the program is edited via the service processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An article of manufacture comprising a machine-readable storage medium having content stored thereon to provide instructions to result in a device performing operations including:
-
receiving, at a service processor, a patch from a patch source to apply to a first item associated with a program loaded in a volatile memory of a host during a runtime of the program, wherein the program is executed by a host processor, wherein the host processor further executes an operating system (OS), and the runtime of the program comprises the program being executed via the OS; replacing inline, via the service processor, the first item of the program loaded in the volatile memory of the host with a jump to the patch during the runtime of the program while maintaining runtime state for the program, wherein maintaining runtime state for the program includes allowing the host processor to execute a second item associated with the program while the program is edited via the service processor. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A service processor comprising:
-
a receiver to receive an indication to patch a first item of a program included in a virtual memory of a host, the program to be executed by a host processor, wherein the host processor further executes an operating system (OS), identify the first item of the program in the virtual memory of the host, and identify a patch for the first item of the program; and a patch application module coupled to the receiver to apply relocation fix-ups to the patch, load the patch into a volatile memory of the host, and edit the program included in the virtual memory of the host, during a runtime of the program, to be directed to the patch in place of a segment of the program without reloading the program into the virtual memory and while maintaining runtime state for the program, wherein maintaining runtime state for the program includes allowing the host processor to execute a second item of the program while the program is edited via the service processor and the runtime of the program comprises the program being executed via the OS. - View Dependent Claims (18, 19, 20)
-
-
21. A system comprising:
-
a host processor; a service processor to be in an environment securely separate from the host processor, the service processor to execute a patch agent having a receiver to receive an indication to patch a first item of a program included in a virtual memory of a host, the program to be executed by a host processor, wherein the host processor further executes an operating system (OS), identify the first item of the program in the virtual memory of the host, and identify a patch for the first item of the program, a registration module to register the program prior to receiving the indication of the program to patch, and a patch application module coupled to the receiver to apply relocation fix-ups to the patch, load the patch into a volatile memory of the host, and edit the program included in the virtual memory of the host, during a runtime of the program, to be directed to the patch in place of a segment of the program without reloading the program into the virtual memory and while maintaining runtime state for the program, wherein maintaining runtime state for the program includes allowing the host processor to execute a second item of the program while the program is edited via the service processor and the runtime of the program comprises the program being executed via the OS; and a flash storage coupled to the patch agent to store the registration information for the program. - View Dependent Claims (22, 23)
-
Specification