IP Library Granted Patent US 11,907,768
Granted Patent B2
US 11,907,768 · App. 17/028,874 · Granted Feb 20, 2024

Entanglement of pages and guest threads

Inventors: Isaac R. Nassi (Los Gatos, CA); David P. Reed (Needham, MA); Mark Hill (Los Altos, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F9/5077G06F9/3009G06F9/30123G06F9/3836G06F9/45558G06F2009/4557G06F2009/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 11,907,768
App. No.
17/028,874
Granted
Feb 20, 2024
Kind
B2
Abstract

Entanglement of pages and threads 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 an entangled portion of memory that is entangled with a physical node in a plurality of physical nodes. A type of the entangled portion of memory is determined. The stalling event is handled based at least in part on the determined type of the entangled portion of memory.

Claims (49)

1. A system, comprising:

a plurality of physically interconnected computing nodes comprising a first computing node and a second computing node separate from the first computing node; and

a kernel that:

receives an indication of a stalling event caused by the first computing node requesting access to a requested portion of memory and the requested portion of memory being inaccessible by the first computing node;

determines that the requested portion of memory is an entangled portion of memory that is designated as being entangled with the second computing node;

handles the stalling event, wherein the handling comprises:

migrating the requested portion of memory to the second computing node, wherein the requested portion of memory is accessed by a virtual processor on the second computing node; and

migrating the requested portion of memory back to the first computing node responsive to completion of the access by the virtual processor;

determines a cost to migrate the requested portion of memory from the second computing node to the first computing node; and

determines to migrate the requested portion of the memory to the second computing node based on the cost.

2. The system recited in claim 1 , wherein the kernel determines that the entangled portion of memory is a portion of memory that is frequently accessed by a plurality of threads.

3. The system recited in claim 2 , wherein the kernel, responsive to determining that the entangled portion of memory is a portion of memory that is frequently accessed by the plurality of threads, handles the stalling event.

4. The system of claim 1 , wherein the kernel:

evaluates timing measurements associated with page migration between the second computer node and the first computer node; and

estimates the cost based on the timing measurements.

5. The system of claim 1 , wherein the kernel:

determines a frequency of write accesses by threads to the requested portion of memory;

determines a number of the threads; and

determines that the requested portion of memory is an entangled portion based on the number of writes and the number of threads.

6. A method, comprising:

receiving an indication of a stalling event caused by a first computing node of a plurality of physically interconnected computing nodes requesting access to a requested portion of memory, wherein the plurality of physically interconnected computing nodes further comprises a second computing node separate from the first computing node;

determining that the requested portion of memory is an entangled portion of memory that is designated as being entangled with the second computing node;

handling the stalling event, wherein the handling comprises:

migrating the requested portion of memory to the second computing node;

accessing, by a virtual processor on the second computing node, the requested portion of memory; and

migrating the requested portion of memory back to the first computing node responsive to completion of the access by the virtual processor;

determining a cost to migrate the requested portion of memory from the second computing node to the first computing node; and

determining to migrate the requested portion of the memory to the second computing node based on the cost.

7. The method of claim 6 , further comprising determining that the entangled portion of memory is a portion of memory frequently accessed by a plurality of threads.

8. The method of claim 7 , further comprising handling the stalling event responsive to the determination that the entangled portion of memory is a portion of memory frequently accessed by a plurality of threads.

9. The method of claim 6 , wherein determining the cost comprises evaluating timing measurements associated with page migration between the second computer node and the first computer node.

10. A non-transitory computer readable storage medium that stores machine readable instructions that, when executed by a machine, cause the machine to:

receive an indication of a stalling event caused by the first computing node requesting access to a requested portion of memory, and the request portion of memory being inaccessible by the first computing node;

determine that the requested portion of memory is an entangled portion of memory that is designated as being entangled with a second computing node;

handle the stalling event, wherein handling the stalling event comprises:

moving a virtual processor from the first computing node to the second computing node to allow the virtual processor to execute a guest thread on the second computing node to perform the access to the requested portion of memory; and

returning the virtual processor back to the first computing node responsive to completion of the access to the requested portion of memory; and

determine that the requested portion of memory is an entangled portion responsive to a determination that the requested portion of memory is frequently accessed by a plurality of threads.

11. The storage medium of claim 10 , wherein:

the virtual processor, when on the first computing node, has a state; and

the instructions, when executed by the machine, further cause the machine to move the state in its entirety to the second computing node such that the virtual processor, when on the second computing node, has the state.

12. The storage medium of claim 10 , wherein:

the virtual processor, when on the first computing node, has a state; and

the instructions, when executed by the machine, further cause the machine to partially move the state in its entirety to the second computing node such that the virtual processor, when on the second computing node, has a subset of the state.

13. The storage medium of claim 10 , wherein the instructions, when executed by the machine, further cause the machine to limit instruction execution by the virtual processor on the second computing node to an instruction to perform the access to the requested portion of the memory.

14. The storage medium of claim 10 , wherein the instructions, when executed by the machine, further cause the machine to place the virtual processor on the second computing node in an instruction trap mode to limit instruction execution by the virtual processor on the second computing node.

15. The storage medium of claim 10 , wherein the virtual processor on the first computing node has a set of registers, and the instructions, when executed by the machine, further cause the machine to further partially move the set of registers to the second computing node so that the virtual processor on the second computing node has a subset of the registers.

16. The storage medium of claim 10 , wherein the instructions, when executed by the machine, further cause the machine to determine that the requested portion of memory is an entangled portion responsive to a determination that the requested portion of memory is subject to a replication restriction.

17. The storage medium of claim 10 , wherein the instructions, when executed by the machine, further cause the machine to determine that the requested portion of memory is an entangled portion based on a number of writes to responsive to a number of write accesses to the requested portion of memory and a diversity of threads issuing the write accesses.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2023
From: NASSI, ISAAC R.; REED, DAVID P.; HILL, MARK
To: TIDALSCALE, INC.
Reel/Frame 065494/0808 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2023
From: TIDALSCALE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 062282/0452 →
Continuity (3)
Continuation 16116654 · Aug 29, 2018
Provisional Application 62553005 · Aug 31, 2017
Related Publication 20210011777A1 · Jan 14, 2021