IP Library Granted Patent US 10,579,274
Granted Patent B2
US 10,579,274 · App. 16/019,351 · Granted Mar 3, 2020

Hierarchical stalling strategies for handling stalling events in a virtualized environment

Inventors: Isaac R. Nassi (Los Gatos, CA); Kleoni Ioannidou (Sunnyvale, CA); Michael Berman (Scotts Valley, 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: TidalScale, Inc.
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 10,579,274
App. No.
16/019,351
Granted
Mar 3, 2020
Kind
B2
Abstract

Hierarchical stalling strategies are disclosed. An indication is received of a stalling event caused by a requested resource being inaccessible. In response to receiving the indication of the stalling event, a set of cost functions usable to determine how to handle the stalling event is selected based at least in part on a type of the stalling event. The stalling event is handled based at least in part on an evaluation of the set of cost functions selected based at least in part on the type of the stalling event.

Claims (33)

1. A computer system, comprising:

a plurality of interconnected computing nodes, wherein an 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 an indication is received, by a hyper-kernel running on a computing node, of a stalling event caused by a requested resource being inaccessible;

wherein in response to receiving the indication of the stalling event, the hyper-kernel selects, from a plurality of sets of cost functions, a set of cost functions usable to determine an action to perform to handle the stalling event, wherein the set of cost functions is selected from the plurality of sets of cost functions based at least in part on a type of the stalling event, wherein for a stalling event of a different type, a different set of cost functions in the plurality of sets of cost functions is selected by the hyper-kernel, and wherein a cost function comprises one or more weighted factors; and

wherein the hyper-kernel handles the stalling event at least in part by performing an action that is determined based at least in part on an evaluation of the set of cost functions selected from the plurality of sets of cost functions based at least in part on the type of the stalling event, wherein evaluating the selected set of cost functions comprises determining a cost associated with each cost function in the selected set of cost functions, and wherein the performed action is determined based at least in part on the determined costs.

2. The computer system of claim 1 wherein the stalling event comprises a memory stall.

3. The computer system of claim 1 wherein the set of cost functions is further selected based at least in part on an internal state of the computing node.

4. The computer system of claim 3 wherein the internal state comprises a memory level of the computing node.

5. The computer system of claim 3 wherein the internal state comprises a number of virtual processors that are ready to run on the computing node.

6. The computer system of claim 1 wherein the set of cost functions is further selected based at least in part on historical information.

7. The computer system of claim 6 wherein the historical information comprises a measure based at least in part on an amount of time spent in the virtual environment and a number of stalling events that have occurred.

8. The computer system of claim 6 wherein the requested resource comprises a portion of physical memory, and wherein the historical information comprises historical information associated with the portion of physical memory.

9. The computer system of claim 8 wherein the historical information associated with the portion of physical memory comprises a number of stalling events that have occurred with respect to the portion of physical memory.

10. The computer system of claim 8 wherein the historical information associated with the portion of physical memory comprises a number of virtual processors attempting to access the portion of physical memory.

11. A method, comprising:

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

in response to receiving the indication of the stalling event, selecting, by the hyper-kernel, a set of cost functions usable to determine an action to perform to handle the stalling event, wherein the set of cost functions is selected from a plurality of sets of cost functions based at least in part on a type of the stalling event, wherein for a stalling event of a different type, a different set of cost functions in the plurality of sets of cost functions is selected by the hyper-kernel, and wherein a cost function comprises one or more weighted factors; and

handling, by the hyper-kernel, the stalling event at least in part by performing an action that is determined based at least in part on an evaluation of the set of cost functions selected from the plurality of sets of cost functions based at least in part on the type of the stalling event, wherein evaluating the selected set of cost functions comprises determining a cost associated with each cost function in the selected set of cost functions, and wherein the performed action is determined based at least in part on the determined costs.

12. The method of claim 11 wherein the stalling event comprises a memory stall.

13. The method of claim 11 wherein the set of cost functions is further selected based at least in part on an internal state of the computing node.

14. The method of claim 13 wherein the internal state comprises a memory level of the computing node.

15. The method of claim 13 wherein the internal state comprises a number of virtual processors that are ready to run on the computing node.

16. The method of claim 11 wherein the set of cost functions is further selected based at least in part on historical information.

17. The method of claim 16 wherein the historical information comprises a measure based at least in part on an amount of time spent in the virtual environment and a number of stalling events that have occurred.

18. The method of claim 16 wherein the requested resource comprises a portion of physical memory, and wherein the historical information comprises historical information associated with the portion of physical memory.

19. The method of claim 18 wherein the historical information associated with the portion of physical memory comprises a number of stalling events that have occurred with respect to the portion of physical memory.

20. The method of claim 18 wherein the historical information associated with the portion of physical memory comprises a number of virtual processors attempting to access the portion of physical memory.

21. A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

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

in response to receiving the indication of the stalling event, selecting, by the hyper-kernel, a set of cost functions usable to determine an action to perform to handle the stalling event, wherein the set of cost functions is selected from a plurality of sets of cost functions based at least in part on a type of the stalling event, wherein for a stalling event of a different type, a different set of cost functions in the plurality of sets of cost functions is selected by the hyper-kernel, and wherein a cost function comprises one or more weighted factors; and

handling, by the hyper-kernel, the stalling event at least in part by performing an action that is determined based at least in part on an evaluation of the set of cost functions selected from the plurality of sets of cost functions based at least in part on the type of the stalling event, wherein evaluating the selected set of cost functions comprises determining a cost associated with each cost function in the selected set of cost functions, and wherein the performed action is determined based at least in part on the determined costs.

22. The computer system of claim 1 wherein at least some of the factors correspond to pieces of hyper-kernel state.

23. The computer system of claim 1 wherein the performed action comprises evaluating an additional set of cost functions.

Assignments (5)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2018
From: NASSI, ISAAC R.; IOANNIDOU, KLEONI; BERMAN, MICHAEL; HILL, MARK; MOFFET, BRIAN; RADICK, JEFFREY PAUL; REED, DAVID P.; REYNOLDS, KEITH
To: TIDALSCALE, INC.
Reel/Frame 046843/0229 →
Continuity (3)
Provisional Application 62525552 · Jun 27, 2017
Provisional Application 62553005 · Aug 31, 2017
Related Publication 20180373561A1 · Dec 27, 2018
Cited By (1)
US 12,248,465