IP Library Granted Patent US 11,036,405
Granted Patent B2
US 11,036,405 · App. 16/124,208 · Granted Jun 15, 2021

Runtime information transfer between kernel modules

Inventors: Jingmin Zhou (Palo Alto, CA); Subrahmanyam Manuguri (Palo Alto, CA); Anirban Sengupta (Palo Alto, CA)
Assignee: VMWARE, INC.
G06F3/0631G06F3/0604G06F3/0644G06F3/0673G06F9/45558
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,036,405
App. No.
16/124,208
Granted
Jun 15, 2021
Kind
B2
Abstract

Example methods and systems are provided for a computer system to transfer runtime information between a first kernel module and a second kernel module. In one example, the method may comprise assigning ownership of a memory pool to the first kernel module; and the first kernel module accessing the memory pool to store runtime information associated with one or more operations performed by the first kernel module. The method may also comprise releasing ownership of the memory pool from the first kernel module while maintaining the runtime information in the memory pool; and assigning ownership of the memory pool to the second kernel module. The second kernel module may then access the memory pool to obtain the runtime information stored by the first kernel module.

Claims (62)

1. A method for a host to transfer runtime information between a first kernel module and a second kernel module, the method comprising:

assigning ownership of a memory pool at the host to the first kernel module implemented by the host;

accessing, by the first kernel module, the memory pool to store runtime information associated with one or more operations performed by the first kernel module;

releasing ownership of the memory pool from the first kernel module while maintaining the runtime information in the memory pool;

assigning ownership of the memory pool to the second kernel module implemented by the host; and

accessing, by the second kernel module, the memory pool to obtain the runtime information stored by the first kernel module.

2. The method of claim 1 , wherein releasing ownership of the memory pool comprises:

in response to detecting, from the first kernel module, a request to release ownership of the memory pool, storing a memory pool name and a memory pool identifier associated with the memory pool.

3. The method of claim 2 , wherein assigning ownership of the memory pool to the second kernel module comprises:

detecting, from the second kernel module, a request to acquire ownership of the memory pool based on the memory pool name; and

sending, to second kernel module, a response specifying the memory pool identifier to allow the second kernel module to access the memory pool.

4. The method of claim 2 , wherein assigning ownership of the memory pool to the first kernel module comprises:

detecting, from the first kernel module, a request to create the memory pool associated with the memory pool name and a pool size; and

sending, to the first kernel module, a response specifying the memory pool identifier to allow the first kernel module to access the memory pool.

5. The method of claim 2 , wherein releasing ownership of the memory pool comprises:

in response to determination that a period of time has elapsed since a release time associated with the memory pool, removing the memory pool name and the memory pool identifier associated with the memory pool.

6. The method of claim 1 , further comprising:

prior to assigning ownership of the memory pool to the second kernel module, unloading the first kernel module from a kernel of the host, wherein the first kernel module implements a first version of one or more operations.

7. The method of claim 6 , further comprising:

prior to assigning ownership of the memory pool to the second kernel module, loading the second kernel module into the kernel of the host, wherein the second kernel module implements a second version that replaces the first version.

8. A non-transitory computer-readable storage medium that includes a set of instructions which, in response to execution by a processor of a host, cause the processor to perform a method to transfer runtime information between a first kernel module and a second kernel module, wherein the method comprises:

assigning ownership of a memory pool at the host to the first kernel module implemented by the host;

accessing, by the first kernel module, the memory pool to store runtime information associated with one or more operations performed by the first kernel module;

releasing ownership of the memory pool from the first kernel module while maintaining the runtime information in the memory pool;

assigning ownership of the memory pool to the second kernel module implemented by the host; and

accessing, by the second kernel module, the memory pool to obtain the runtime information stored by the first kernel module.

9. The non-transitory computer-readable storage medium of claim 8 , wherein releasing ownership of the memory pool comprises:

in response to detecting, from the first kernel module, a request to release ownership of the memory pool, storing a memory pool name and a memory pool identifier associated with the memory pool.

10. The non-transitory computer-readable storage medium of claim 9 , wherein assigning ownership of the memory pool to the second kernel module comprises:

detecting, from the second kernel module, a request to acquire ownership of the memory pool based on the memory pool name; and

sending, to second kernel module, a response specifying the memory pool identifier to allow the second kernel module to access the memory pool.

11. The non-transitory computer-readable storage medium of claim 9 , wherein assigning ownership of the memory pool to the first kernel module comprises:

detecting, from the first kernel module, a request to create the memory pool associated with the memory pool name and a pool size; and

sending, to the first kernel module, a response specifying the memory pool identifier to allow the first kernel module to access the memory pool.

12. The non-transitory computer-readable storage medium of claim 9 , wherein releasing ownership of the memory pool comprises:

in response to determination that a period of time has elapsed since a release time associated with the memory pool, removing the memory pool name and the memory pool identifier associated with the memory pool.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises:

prior to assigning ownership of the memory pool to the second kernel module, unloading the first kernel module from a kernel of the host, wherein the first kernel module implements a first version of one or more operations.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the method further comprises:

prior to assigning ownership of the memory pool to the second kernel module, loading the second kernel module into the kernel of the host, wherein the second kernel module implements a second version that replaces the first version.

15. A computer system that includes a host configured to transfer runtime information between a first kernel module and a second kernel module, wherein the computer system comprises:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, in response to execution by the processor, cause the processor to:

assign ownership of a memory pool at the host to the first kernel module implemented by the host;

access, by the first kernel module, the memory pool to store runtime information associated with one or more operations performed by the first kernel module;

release ownership of the memory pool from the first kernel module while maintaining the runtime information in the memory pool;

assign ownership of the memory pool to the second kernel module implemented by the host; and

access, by the second kernel module, the memory pool to obtain the runtime information stored by the first kernel module.

16. The computer system of claim 15 , wherein the instructions that cause the processor to release ownership of the memory pool cause the processor to:

in response to detecting, from the first kernel module, a request to release ownership of the memory pool, store a memory pool name and a memory pool identifier associated with the memory pool.

17. The computer system of claim 16 , wherein the instructions that cause the processor to assign ownership of the memory pool to the second kernel module cause the processor to:

detect, from the second kernel module, a request to acquire ownership of the memory pool based on the memory pool name; and

send, to second kernel module, a response specifying the memory pool identifier to allow the second kernel module to access the memory pool.

18. The computer system of claim 16 , wherein the instructions that cause the processor to assign ownership of the memory pool to the first kernel module cause the processor to:

detect, from the first kernel module, a request to create the memory pool associated with the memory pool name and a pool size; and

send, to the first kernel module, a response specifying the memory pool identifier to allow the first kernel module to access the memory pool.

19. The computer system of claim 16 , wherein the instructions that cause the processor to release ownership of the memory pool cause the processor to:

in response to determination that a period of time has elapsed since a release time associated with the memory pool, remove the memory pool name and the memory pool identifier associated with the memory pool.

20. The computer system of claim 15 , wherein the instructions further cause the processor to:

prior to assigning ownership of the memory pool to the second kernel module, unload the first kernel module from a kernel of the host, wherein the first kernel module implements a first version of one or more operations.

21. The computer system of claim 20 , wherein the instructions further cause the processor to:

prior to assigning ownership of the memory pool to the second kernel module, load the second kernel module into the kernel of the host, wherein the second kernel module implements a second version that replaces the first version.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2018
From: ZHOU, JINGMIN; MANUGURI, SUBRAHMANYAM; SENGUPTA, ANIRBAN
To: VMWARE, INC.
Reel/Frame 046809/0260 →