IP Library Granted Patent US 11,449,233
Granted Patent B2
US 11,449,233 · App. 16/738,962 · Granted Sep 20, 2022

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 11,449,233
App. No.
16/738,962
Granted
Sep 20, 2022
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 (38)

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 based at least in part on an occurrence of an asynchronous event with respect to a resource associated with the virtual environment, a hyper-kernel of a computing node is configured to, based at least in part on one or more conditions associated with the asynchronous event, select, from a plurality of sets of cost functions, a set of cost functions usable to determine an action to perform to handle the occurrence of the asynchronous event, and wherein a cost function comprises one or more weighted factors; and

wherein the hyper-kernel handles the occurrence of the asynchronous 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, 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 recited in claim 1 , wherein the set of cost functions is selected based at least in part on receipt of a message.

3. The computer system recited in claim 1 , wherein the set of cost functions is selected based at least in part on occurrence of an interrupt.

4. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises load leveling one or more virtual processors.

5. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises load leveling local memory through eviction.

6. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises generating one or more interrupts to be handled remotely.

7. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises generating one or more I/O requests when a device is remote.

8. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises responding to unsolicited requests to receive evicted memory.

9. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises responding to interrupts generated locally or remotely.

10. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises responding to indications of hardware soft errors.

11. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises responding to administrative requests to modify configurations.

12. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises responding to a page request.

13. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises responding to a processor migration.

14. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises responding to a request for one or more virtual processors when more work is needed.

15. The computer system recited in claim 1 , wherein handling the occurrence of the asynchronous event comprises responding to a request to perform I/O on one or more local devices.

16. The computer system recited in claim 1 , wherein performing the action comprises evaluating another set of cost functions.

17. A method, comprising:

based at least in part on an occurrence of an asynchronous event with respect to a resource associated with a virtual environment, selecting, from a plurality of sets of cost functions, a set of cost functions usable to determine an action to perform to handle the occurrence of the asynchronous event, wherein a cost function comprises one or more weighted factors, and wherein the set of cost functions is selected based at least in part on one or more conditions associated with the asynchronous event;

wherein the set of cost functions is selected by a hyper-kernel running on a computing node in a plurality of interconnected computing nodes, wherein the hyper-kernel is included in a set of hyper-kernel running on the plurality of interconnected computing nodes, wherein the virtual environment is defined by the set of hyper-kernels running on the plurality of interconnected computing nodes, and wherein an operating system is run on the virtual environment that is defined by the set of hyper-kernels running on the plurality of interconnected computing nodes; and

handling, by the hyper-kernel, the occurrence of the asynchronous 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, 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.

18. The method of claim 17 , wherein the set of cost functions is selected based at least in part on receipt of a message.

19. The method of claim 17 , wherein the set of cost functions is selected based at least in part on occurrence of an interrupt.

20. The method of claim 17 , wherein performing the action comprises evaluating another set of cost functions.

21. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises load leveling one or more virtual processors.

22. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises load leveling local memory through eviction.

23. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises generating one or more interrupts to be handled remotely.

24. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises generating one or more I/O requests when a device is remote.

25. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises responding to unsolicited requests to receive evicted memory.

26. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises responding to interrupts generated locally or remotely.

27. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises responding to indications of hardware soft errors.

28. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises responding to administrative requests to modify configurations.

29. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises responding to a page request.

30. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises responding to a processor migration.

31. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises responding to a request for one or more virtual processors when more work is needed.

32. The method of claim 17 , wherein handling the occurrence of the asynchronous event comprises responding to a request to perform I/O on one or more local devices.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2026
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 074041/0935 →
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 (4)
Continuation 16019351 · Jun 26, 2018
Provisional Application 62553005 · Aug 31, 2017
Provisional Application 62525552 · Jun 27, 2017
Related Publication 20200142608A1 · May 7, 2020