IP Library Granted Patent US 11,803,306
Granted Patent B2
US 11,803,306 · App. 17/236,952 · Granted Oct 31, 2023

Handling frequently accessed pages

Inventors: Isaac R. Nassi (Los Gatos, CA); Kleoni Ioannidou (Sunnyvale, CA); Michael Berman (Scotts Valley, CA); I-Chun Fang (San Jose, CA); Mark Hill (Los Altos, CA); Brian Moffet (Santa Cruz, CA); Jeffrey Paul Radick (Campbell, CA); David P. Reed (Needham, MA); Keith Reynolds (Issaquah, WA)
Assignee: Hewlett Packard Enterprise Development LP
G06F3/0611G06F3/067G06F3/0647G06F3/0653G06F9/4856G06F9/4881G06F9/5033G06F9/5044G06F9/5077G06F12/08G06F2209/509
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,803,306
App. No.
17/236,952
Granted
Oct 31, 2023
Kind
B2
Abstract

Handling frequently accessed pages is disclosed. An indication is received of a stalling event caused by a requested portion of memory being inaccessible. It is determined that the requested portion of memory is a frequently updated portion of memory. The stalling event is handled based at least in part on the determination that the requested portion of memory is a frequently updated portion of memory.

Claims (34)

1. A computer system comprising:

a plurality of physically interconnected computing nodes;

a guest operating system to run in a virtual environment that is defined by a set of hyper-kernels running on the plurality of physically interconnected computing nodes; and

a hyper-kernel on a first computing node of the plurality of physically interconnected computing nodes to:

receive an indication of a stalling event caused by a requested portion of a memory being inaccessible, wherein the requested portion of the memory is requested by a virtual processor in the first computing node, and the requested portion of the memory is on a second computing node of the plurality of physically interconnected computing nodes;

determine, by the hyper-kernel performing a query of a data structure comprising identifiers of portions of the memory designated as being frequently updated, whether the requested portion of the memory is designated as a frequently updated portion of the memory; and

based at least in part on a determination that the requested portion of the memory is designated as a frequently updated portion of the memory, handle the stalling event at least in part by migrating the virtual processor to the second computing node to update the requested portion of the memory, wherein the virtual processor is to be migrated back to the first computing node in response to a completion of an update to the requested portion of the memory.

2. The computer system of claim 1 , wherein the query is performed using an address of the requested portion of the memory.

3. The computer system of claim 2 , wherein the address comprises a guest physical address.

4. The computer system of claim 1 , wherein an identifier of a portion of the memory is included in the data structure based at least in part on a frequency at which the portion of the memory is accessed.

5. The computer system of claim 4 , wherein the frequency at which the portion of the memory is accessed is determined based at least in part on a number of write stalls that have occurred with respect to the portion of the memory.

6. The computer system of claim 4 , wherein the identifier of the portion of the memory is included in the data structure based at least in part on a determination that the frequency at which the portion of the memory is accessed exceeds a threshold.

7. The computer system of claim 1 , wherein the stalling event comprises a write stall involving the virtual processor attempting to write into the requested portion of the memory.

8. The computer system of claim 1 , wherein at least some of the computing nodes of the plurality of physically interconnected computing nodes are to receive copies of the updated requested portion of the memory.

9. A method comprising:

receiving, by a hyper-kernel on a first computing node, an indication of a stalling event caused by a requested portion of a memory being inaccessible, wherein the first computing node is included in a plurality of physically interconnected computing nodes, wherein a guest operating system is run in a virtual environment that is defined by a set of hyper-kernels running on the plurality of physically interconnected computing nodes, and wherein the requested portion of the memory is requested by a virtual processor in the first computing node, and the requested portion of the memory is on a second computing node of the plurality of physically interconnected computing nodes;

determining, at least in part by the hyper-kernel performing a query of a data structure comprising identifiers of portions of the memory designated as being frequently updated, whether the requested portion of the memory is designated as a frequently updated portion of the memory;

based at least in part on a determination of that the requested portion of the memory is designated as a frequently updated portion of the memory, handling the stalling event at least in part by migrating the requested portion of the memory to the second computing node to be updated; and

migrating the requested portion of the memory back to the first computing node in response to a completion of an update to the requested portion of the memory.

10. The method of claim 9 , wherein the query is performed using an address of the requested portion of the memory.

11. The method of claim 10 , wherein the address comprises a guest physical address.

12. The method of claim 9 , wherein an identifier of a portion of the memory is included in the data structure based at least in part on a frequency at which the portion of the memory is accessed.

13. The method of claim 12 , wherein the frequency at which the portion of the memory is accessed is determined based at least in part on a number of write stalls that have occurred with respect to the portion of the memory.

14. The method of claim 12 , wherein the identifier of the portion of the memory is included in the data structure based at least in part on a determination that the frequency with which the portion of the memory is accessed exceeds a threshold.

15. The method of claim 9 , wherein the stalling event comprises a write stall involving the virtual processor attempting to write into the requested portion of the memory.

16. The method of claim 9 , comprising broadcasting copies of the updated requested portion of the memory to at least some of the computing nodes of the plurality of physically interconnected computing nodes.

17. A non-transitory computer readable storage medium comprising computer instructions that upon execution cause a computer system to:

receive, at a hyper-kernel on a first computing node, an indication of a stalling event caused by a requested portion of a memory being inaccessible, wherein the first computing node is included in a plurality of physically interconnected computing nodes, wherein a guest operating system is run in a virtual environment that is defined by a set of hyper-kernels running on the plurality of physically interconnected computing nodes, and wherein the requested portion of the memory is requested by a virtual processor in the first computing node, and the requested portion of the memory is on a second computing node of the plurality of physically interconnected computing nodes;

determine, at least in part by the hyper-kernel performing a query of a data structure comprising identifiers of portions of the memory designated as being frequently updated, whether the requested portion of the memory is designated as a frequently updated portion of the memory;

based at least in part on a determination that the requested portion of the memory is designated as a frequently updated portion of the memory, handle the stalling event at least in part by migrating the virtual processor to the second computing node to update the requested portion of the memory; and

migrate the requested portion of the memory back to the first computing node in response to a completion of an update to the requested portion of the memory.

18. The non-transitory computer readable storage medium of claim 17 , wherein an identifier of a portion of the memory is included in the data structure based at least in part on a frequency at which the portion of the memory is accessed.

19. The non-transitory computer readable storage medium of claim 18 , wherein the frequency at which the portion of the memory is accessed is determined based at least in part on a number of write stalls that have occurred with respect to the portion of the memory.

20. The non-transitory computer readable storage medium of claim 18 , wherein the identifier of the portion of the memory is included in the data structure based at least in part on a determination that the frequency at which the portion of the memory is accessed exceeds a threshold.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2023
From: NASSI, ISAAC R.; IOANNIDOU, KLEONI; BERMAN, MICHAEL; FANG, I-CHUN; HILL, MARK; MOFFET, BRIAN; RADICK, JEFFREY PAUL; REED, DAVID P.; REYNOLDS, KEITH
To: TIDALSCALE, INC.
Reel/Frame 064319/0211 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2023
From: TIDALSCALE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 062282/0452 →
Continuity (4)
Continuation 16019348 · Jun 26, 2018
Provisional Application 62553005 · Aug 31, 2017
Provisional Application 62525552 · Jun 27, 2017
Related Publication 20210240356A1 · Aug 5, 2021