Entanglement of pages and guest threads

US11907768B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11907768-B2
Application numberUS-202017028874-A
CountryUS
Kind codeB2
Filing dateSep 22, 2020
Priority dateAug 31, 2017
Publication dateFeb 20, 2024
Grant dateFeb 20, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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.

Assignees

Inventors

Classifications

  • G06F9/5077Primary

    Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title

  • Thread control instructions · CPC title

  • according to context, e.g. thread buffers · CPC title

  • Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11907768B2 cover?
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 han…
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F9/5077. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 20 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).