IP Library Granted Patent US 11,159,605
Granted Patent B2
US 11,159,605 · App. 16/795,420 · Granted Oct 26, 2021

Hierarchical dynamic scheduling

Inventor: Isaac R. Nassi (Los Gatos, CA)
Assignee: TidalScale, Inc.
H04L67/10G06F9/455G06F9/5077G06F9/4856G06F9/5011G06F2009/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,159,605
App. No.
16/795,420
Granted
Oct 26, 2021
Kind
B2
Abstract

Selective resource migration is disclosed. A computer system includes physical memory and a plurality of physical processors. Each of the processors has one or more cores and each core instantiates one or more virtual processors that executes program code. Each core is configured to invoke a hyper-kernel on its hosting physical processor when the core cannot access a portion of the physical memory needed by the core. The hyper-kernel selectively moves the needed memory closer to a location accessible by the physical processor or remaps the virtual processor to another core.

Claims (26)

1. A computer system, comprising:

a plurality of interconnected computing nodes, wherein a guest operating system is run on a virtual environment that is defined by a set of hyper-kernels running on the plurality of interconnected computing nodes, wherein each computing node includes one or more physical processors, and wherein each physical processor has one or more cores, and wherein each core has one or more hyperthreads;

wherein in response to receiving an indication that a core or a hyperthread should be assigned, a hyper-kernel determines, based at least in part on a search of a hierarchical data structure comprising one or more continuations, a continuation that is ready to run to assign to the core or the hyperthread to resume, wherein the continuation comprises a representation of a state of a virtual processor; and

wherein the continuation to assign to the core or the hyperthread is determined by the hyper-kernel at least in part by evaluating one or more cost functions.

2. The computer system recited in claim 1 wherein the search begins at a leaf level of the hierarchical data structure.

3. The computer system recited in claim 2 wherein in response to a threshold specified by a cost function being exceeded, the search is performed up the hierarchical data structure.

4. The computer system recited in claim 2 wherein the hierarchical data structure includes a plurality of work queues, wherein each work queue includes a set of continuations, and wherein in response to determining that a work queue at the leaf level is empty, the search is performed up the hierarchical data structure.

5. The computer system recited in claim 1 wherein the continuation is included in a scheduler object in the hierarchical data structure, and wherein evaluating the cost function comprises determining a height of the scheduler object in the hierarchical data structure.

6. The computer system recited in claim 1 wherein evaluating the cost function comprises determining an age of the continuation.

7. The computer system recited in claim 1 wherein evaluating the cost function comprises determining a last physical processor to run the continuation.

8. The computer system recited in claim 1 wherein evaluating the cost function comprises determining a last virtual processor to run the continuation.

9. The computer system recited in claim 1 wherein evaluating the cost function comprises determining a computing node on which the continuation was last executing.

10. The computer system recited in claim 1 wherein evaluating the cost function comprises determining group membership of the continuation.

11. A method, comprising:

receiving an indication that a core or a hyperthread should be assigned, wherein the core or the hyperthread is included in a physical processor, wherein the physical processor is included in a computing node, wherein the computing node is included in a plurality of physically interconnected computing nodes, and wherein a guest operating system is run on a virtual environment that is defined by a set of hyper-kernels running on the plurality of interconnected computing nodes; and

based at least in part on a search of a hierarchical data structure comprising one or more continuations, determining, by a hyper-kernel, a continuation that is ready to run to assign to the core or the hyperthread to resume, wherein the continuation comprises a representation of a state of a virtual processor; and

wherein the continuation to assign to the core or the hyperthread is determined by the hyper-kernel at least in part by evaluating one or more cost functions.

12. The method of claim 11 wherein the search begins at a leaf level of the hierarchical data structure.

13. The method of claim 12 wherein in response to a threshold specified by a cost function being exceeded, the search is performed up the hierarchical data structure.

14. The method of claim 12 wherein the hierarchical data structure includes a plurality of work queues, wherein each work queue includes a set of continuations, and wherein in response to determining that a work queue at the leaf level is empty, the search is performed up the hierarchical data structure.

15. The method of claim 11 wherein the continuation is included in a scheduler object in the hierarchical data structure, and wherein evaluating the cost function comprises determining a height of the scheduler object in the hierarchical data structure.

16. The method of claim 11 wherein evaluating the cost function comprises determining an age of the continuation.

17. The method of claim 11 wherein evaluating the cost function comprises determining a last physical processor to run the continuation.

18. The method of claim 11 wherein evaluating the cost function comprises determining a last virtual processor to run the continuation.

19. The method of claim 11 wherein evaluating the cost function comprises determining a computing node on which the continuation was last executing.

20. The method of claim 11 wherein evaluating the cost function comprises determining group membership of the continuation.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2023
From: TIDALSCALE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 062282/0452 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 060724/0458 Recorded Dec 30, 2022
From: COMERICA BANK
To: TIDALSCALE, INC.
Reel/Frame 062252/0199 →
RELEASE OF SECURITY INTEREST Recorded Dec 15, 2022
From: COMERICA BANK
To: TIDALSCALE, INC.
Reel/Frame 062108/0963 →
SECURITY INTEREST Recorded Aug 4, 2022
From: TIDALSCALE, INC.
To: COMERICA BANK
Reel/Frame 060724/0458 →
Continuity (6)
Continuation 16209842 · Dec 4, 2018
Continuation 15429638 · Feb 10, 2017
Continuation 14880132 · Oct 9, 2015
Continuation 13830094 · Mar 14, 2013
Provisional Application 61692648 · Aug 23, 2012
Related Publication 20200186596A1 · Jun 11, 2020
Cited By (1)
US 12,717,606