IP Library Granted Patent US 10,949,273
Granted Patent B2
US 10,949,273 · App. 16/791,336 · Granted Mar 16, 2021

Shared memory usage tracking across multiple processes

Inventors: Junping Zhao (Beijing, CN); Xiangping Chen (Sherborn, MA)
Assignee: EMC IP Holding Company LLC
G06F9/544G06F11/3466G06F12/1009G06F12/1072G06F13/1663G06F9/45558G06F2009/45583
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 10,949,273
App. No.
16/791,336
Granted
Mar 16, 2021
Kind
B2
Abstract

An apparatus in one embodiment comprises a host device that includes at least one processor and an associated memory. The host device is configured to implement a plurality of processes each configured to access a shared region of the memory. The host device is further configured to establish a multi-process control group for the shared region, to maintain state information for the multi-process control group, and to track usage of the shared region by the processes based at least in part on the state information. At least a subset of the processes may comprise respective containers implemented utilizing operating system level virtualization of the processor of the host device. The multi-process control group established for the shared region illustratively comprises a coarse-grained control group having a granularity greater than a single page of the shared region.

Claims (55)

1. An apparatus comprising:

a host device comprising at least one processor and an associated memory;

the host device being configured to implement a plurality of processes each configured to access a shared region of the memory;

the host device being further configured:

to establish a multi-process control group for the shared region, the multi-process control group comprising a coarse-grained control group having a granularity greater than a single page of the shared region;

to establish single-process control groups for respective ones of the processes with each such single-process control group being a fine-grained control group having a granularity less than that of the coarse-grained control group; and

to track usage of the shared region by the processes, utilizing the multi-process control group and the single-process control groups.

2. The apparatus of claim 1 wherein at least a subset of the processes comprise respective containers implemented utilizing operating system level virtualization of the processor of the host device.

3. The apparatus of claim 1 wherein the host device is further configured:

to maintain state information for the multi-process control group; and

to track usage of the shared region by the processes based at least in part on the state information.

4. The apparatus of claim 3 wherein the state information maintained for the multi-process control group comprises a current state selected from a plurality of possible states including at least the following states:

a first state indicating that usage of the shared memory region has been properly assessed to respective ones of the processes and that no update to the usage tracking is needed; and

a second state indicating that there has been at least one change necessitating an update to the usage tracking.

5. The apparatus of claim 4 wherein said at least one change necessitating an update to the usage tracking comprises one or more of:

an addition of a new process to the processes accessing the shared region;

a deletion of an existing process from the processes accessing the shared region; and

another type of change in at least one characteristic of the shared region.

6. The apparatus of claim 5 wherein another type of change in at least one characteristic of the shared region comprises one or more of:

an addition of a new page to a plurality of pages of the shared region; and

a deletion of an existing page from the plurality of pages of the shared region.

7. The apparatus of claim 4 wherein the plurality of possible states further comprises at least one of the following states:

a third state indicating that an update to the usage tracking is in progress; and

a fourth state indicating that an immediate update to the usage tracking is needed.

8. The apparatus of claim 4 wherein the usage tracking is configured:

to determine whether or not the multi-process control group is in the second state;

responsive to an affirmative determination that the multi-process control group is in the second state:

to calculate new assessments of usage of the shared region for respective ones of the processes;

to provide the new assessments to respective single-process control groups of the respective processes; and

to change the state of the multi-process control group from the second state to the first state.

9. The apparatus of claim 1 wherein at least one of the fine-grained control groups has a granularity equivalent to a single page of the shared region.

10. The apparatus of claim 1 wherein the multi-process control group specifies a plurality of characteristics of the shared region including one or more of the following:

an allocated size of the shared region;

a current paged-in size of the shared region;

a current number of processes accessing the shared region; and

a plurality of pointers to respective single-process control groups for the processes accessing the shared region.

11. The apparatus of claim 10 wherein the usage tracking comprises assessing usage of the shared region to each of the processes at least in part as a function of the current paged-in size divided by the current number of processes accessing the shared region.

12. The apparatus of claim 1 wherein the usage tracking comprises assessing usage of the shared region substantially equally to each of the processes accessing the shared region.

13. The apparatus of claim 1 wherein the usage tracking comprises assessing usage of the shared region to the processes in accordance with actual usage of the shared region by the processes.

14. The apparatus of claim 1 wherein the usage tracking is implemented as a background thread executing on the processor of the host device.

15. A method comprising:

configuring a host device comprising at least one processor and an associated memory to implement a plurality of processes each configured to access a shared region of the memory;

establishing a multi-process control group for the shared region, the multi-process control group comprising a coarse-grained control group having a granularity greater than a single page of the shared region;

establishing single-process control groups for respective ones of the processes with each such single-process control group being a fine-grained control group having a granularity less than that of the coarse-grained control group; and

tracking usage of the shared region by the processes, utilizing the multi-process control group and the single-process control groups;

wherein said establishing a multi-process control group, establishing single-process control groups and tracking usage are performed by the host device.

16. The method of claim 15 wherein at least a subset of the processes comprise respective containers implemented utilizing operating system level virtualization of the processor of the host device.

17. The method of claim 15 wherein at least one of the fine-grained control groups has a granularity equivalent to a single page of the shared region.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by a host device comprising at least one processor and an associated memory causes the host device:

to implement a plurality of processes each configured to access a shared region of the memory;

to establish a multi-process control group for the shared region, the multi-process control group comprising a coarse-grained control group having a granularity greater than a single page of the shared region;

to establish single-process control groups for respective ones of the processes with each such single-process control group being a fine-grained control group having a granularity less than that of the coarse-grained control group; and

to track usage of the shared region by the processes, utilizing the multi-process control group and the single-process control groups.

19. The computer program product of claim 18 wherein at least a subset of the processes comprise respective containers implemented utilizing operating system level virtualization of the processor of the host device.

20. The computer program product of claim 18 wherein at least one of the fine-grained control groups has a granularity equivalent to a single page of the shared region.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2020
From: ZHAO, JUNPING; CHEN, XIANGPING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051823/0208 →