IP Library › Granted Patent US 9,898,226
Granted Patent B2
US 9,898,226 · App. 14/925,250 · Granted Feb 20, 2018

Reducing page invalidation broadcasts in virtual storage management

Inventors: Robert Miller, Jr. (Poughkeepsie, NY); Harris M. Morgenstern (Wappingers Falls, NY); James H. Mulder (Poughkeepsie, NY); Elpida Tzortzatos (Lagrangeville, NY); Dieter Wellerdiek (Ammerbuch, DE)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0659G06F3/0619G06F3/0685G06F12/023G06F12/1027G06F2212/1041G06F2212/152G06F2212/683
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 9,898,226
App. No.
14/925,250
Granted
Feb 20, 2018
Kind
B2
Abstract

Technical solutions for reducing page invalidation broadcasts in virtual storage management are described. One general aspect includes a method including allocating, by a storage manager, a virtual memory page to a memory buffer that is used by an application being executed by a multiprocessor system, the virtual memory page being allocated from an address space of the application. The method also includes recording, by a memory management unit, a mapping between the virtual memory page and a physical location in a memory. The method also includes in response to a request, from the application, to deallocate the memory buffer, delaying invalidation of the mapping between the virtual memory page and the physical location in a memory, based on a count of free frames in the address space of the application.

Claims (45)

1. A system comprising:

a memory;

a plurality of processors; and

a storage manager configured to:

receive a request to deallocate a memory buffer that is being used by an application;

identify, by one of the plurality of processors, a virtual memory page corresponding to the memory buffer; and

delay invalidation of the virtual memory page, wherein the invalidation comprises a broadcast to each of the processors to remove an association between the virtual memory page and a corresponding physical memory location in response to:

a size of the memory buffer being smaller than a predetermined buffer threshold;

the virtual memory page being a predetermined type;

a free amount of the memory available to the system being below a predetermined threshold; and

another virtual memory page adjacent to the virtual memory page being a valid frame that has not been freed.

2. The system of claim 1 , wherein the storage manager is configured to delay the invalidation in response to a number of free frames in an address space for the application being lesser than a predetermined target number of free frames for the address space.

3. The system of claim 1 , wherein the storage manager is configured to delay the invalidation in response to:

a number of free frames in an address space for the application not being lesser than a predetermined target number of free frames for the address space.

4. The system of claim 3 , wherein the storage manager is configured to invalidate the virtual memory page without a delay, in response to another virtual memory page adjacent to the virtual memory page being backed by a freed frame.

5. The system of claim 3 , wherein the storage manager is configured to delay the invalidation further in response to the number of free frames in the address space for the application being less than a second predetermined threshold for the address space of the application.

6. The system of claim 5 , wherein the storage manager is configured to invalidate the virtual memory page without a delay, in response to the number of free frames in the address space for the application not being less than the second predetermined threshold for the address space of the application.

7. The system of claim 1 , wherein the storage manager is further configured to increment, in response to delaying the invalidation, a count of a number of free frames in an address space of the application, a count of a total number of free frames, and a monotonic counter of a number of free frames freed.

8. A computer program product comprising a non-transitory computer readable storage medium that comprises computer executable instructions, the non-transitory computer readable storage medium comprising instructions to:

receive, from an application, a request to deallocate a memory buffer being used by the application;

identify a virtual memory page corresponding to the memory buffer; and

delay invalidation of the virtual memory page in response to the request to deallocate the memory buffer, wherein the invalidation comprises broadcast of a request to a plurality of processors to remove an association between the virtual memory page and a corresponding physical memory location in response to:

a size of the memory buffer being smaller than a predetermined buffer threshold;

the virtual memory page being a predetermined type;

a free amount of the memory available being below a predetermined threshold; and

another virtual memory page adjacent to the virtual memory page being a valid frame that has not been freed.

9. The computer program product of claim 8 , wherein the non-transitory computer readable storage medium further comprises instructions to increment, in response to delaying the invalidation, a count of a number of free frames in an address space of the application, a count of a total number of free frames, and a monotonic counter of a number of free frames freed.

10. The computer program product of claim 8 , wherein the invalidation of the virtual memory page is delayed in response to:

a number of free frames in an address space for the application not being lesser than a predetermined target number of free frames for the address space.

11. A method comprising:

allocating, by a storage manager, a virtual memory page to a memory buffer that is used by an application being executed by a multiprocessor system, the virtual memory page being allocated from an address space of the application;

recording, by a memory management unit, a mapping between the virtual memory page and a physical location in a memory; and

in response to a request, from the application, to deallocate the memory buffer, delaying invalidation of the mapping between the virtual memory page and the physical location in a memory in response to:

a size of the memory buffer being smaller than a predetermined buffer threshold;

the virtual memory page being a predetermined type;

a free amount of the memory available to the system being below a predetermined threshold; and

another virtual memory page adjacent to the virtual memory page being a valid frame that has not been freed.

12. The method of claim 11 , wherein the invalidation of the mapping comprises broadcasting, to each processor of the multiprocessor system, a request to remove an association between the virtual memory page and the physical memory location.

13. The method of claim 11 , wherein the invalidation of the mapping is delayed further in response to:

a number of free frames in an address space for the application not being lesser than a predetermined target number of free frames for the address space.

14. The method of claim 11 , wherein the storage manager is configured to delay the invalidation in response to a number of free frames in an address space for the application being lesser than a predetermined target number of free frames for the address space.

15. The method of claim 11 , wherein the storage manager is configured to invalidate the virtual memory page without a delay, in response to another virtual memory page adjacent to the virtual memory page being backed by a freed frame.

16. The method of claim 11 , wherein the storage manager is further configured to increment, in response to delaying the invalidation, a count of a number of free frames in an address space of the application, a count of a total number of free frames, and a monotonic counter of a number of free frames freed.

17. The method of claim 14 , wherein the storage manager is configured to delay the invalidation further in response to the number of free frames in the address space for the application being less than a second predetermined threshold for the address space of the application.

18. The method of claim 17 , wherein the storage manager is configured to invalidate the virtual memory page without a delay, in response to the number of free frames in the address space for the application not being less than the second predetermined threshold for the address space of the application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2015
From: MILLER, ROBERT, JR.; MORGENSTERN, HARRIS M.; MULDER, JAMES H.; TZORTZATOS, ELPIDA; WELLERDIEK, DIETER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036904/0420 →
Continuity (1)
Related Publication 20170123725A1 · May 4, 2017