IP Library Granted Patent US 11,593,162
Granted Patent B2
US 11,593,162 · App. 17/074,951 · Granted Feb 28, 2023

Techniques for scheduling between applications on a core

Inventors: Lior Kamran (Richon LeZion, IL); Amitai Alkalay (Kadima, IL); Liran Loya (Hod Hasharon, IL)
Assignee: EMC IP Holding Company LLC
G06F9/4881G06F9/485
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,593,162
App. No.
17/074,951
Granted
Feb 28, 2023
Kind
B2
Abstract

A method of managing operation of a computing device is provided. The method includes (a) running a system scheduler that schedules execution of a first application and a second application on a central processing unit (CPU) core of the computing device; (b) while the first application is executing on the core, detecting, by the first application, a context-switch opportunity; and (c) issuing, by the first application in response to detecting the context-switch opportunity, a blocking operation that triggers the system scheduler to perform a rescheduling operation between the first and second applications on the CPU core. An apparatus, system, and computer program product for performing a similar method are also provided.

Claims (44)

1. A method of managing operation of a computing device, the method comprising:

running a system scheduler that schedules execution of a first application and a second application on a central processing unit (CPU) core of the computing device, the first application including an internal scheduler distinct from the system scheduler, executing the first application on the core including initiating, by the internal scheduler, a plurality of fibers of the first application on the core in series;

while the first application is executing on the core, detecting, by the internal scheduler of the first application in response to termination of execution of one of the plurality of fibers of the first application on the core, a context-switch opportunity; and

issuing, by the first application in response to detecting the context-switch opportunity, a blocking operation that triggers the system scheduler to perform a rescheduling operation between the first and second applications on the CPU core,

wherein the system scheduler is configured with a minimum granularity period (MGP), the MGP being a shortest length of time that the system scheduler is able to schedule, and wherein detecting the context-switch opportunity is done upon executing the first application on the core for less than the MGP,

wherein the one of the plurality of fibers is an initial fiber of the first application executing on the core that terminates at least a threshold amount of time after executing the first application on the core, the threshold amount of time being less than the MGP.

2. The method of claim 1 ,

wherein the MGP is within a range of 1 millisecond (ms) to 4 ms; and

wherein the threshold amount of time is within a range of 2.5% to 90% of the MGP.

3. The method of claim 1 ,

wherein the threshold amount of time is variable;

wherein the blocking operation is a sleep operation with a fixed sleep period; and

wherein the method further comprises:

after issuing the blocking operation, resuming execution of the first application on the core,

upon resuming execution, checking an elapsed time since issuing the blocking operation, and

in response to the elapsed time exceeding the fixed sleep period by more than an excess threshold, increasing the variable threshold amount of time.

4. The method of claim 3 ,

wherein the MGP is within a range of 1 millisecond (ms) to 4 ms; and

wherein the threshold amount of time has a default value within a range of 5% to 25% of the MGP.

5. The method of claim 1 ,

wherein the first application is a storage processing application configured to process block-level storage requests; and

wherein the plurality of fibers of the first application are polling fibers configured to poll storage resources managed by the storage processing application without issuing blocking operations.

6. The method of claim 5 wherein the second application is a storage processing application configured to process file-level storage requests.

7. The method of claim 5 wherein the second application does not operate in a polling mode, the second application being configured to issue blocking operations as part of reading and writing data.

8. The method of claim 1 wherein detecting the context-switch opportunity includes detecting that a container thread of the first application executing on the core does not hold a lock on any resource shared with another application running on the computing device or with another container thread of the first application executing on another core of the computing device.

9. The method of claim 1 wherein issuing the blocking operation includes issuing a sleep operation.

10. The method of claim 9 wherein the sleep operation has a period within a range of 250 nanoseconds to 5 microseconds.

11. The method of claim 1 wherein the context-switch opportunity is not triggered by a blocking operation of the first application.

12. A computer program product comprising a non-transitory computer-readable storage medium storing a set of instructions, which, when performed by a computing device, causes the computing device to:

run a system scheduler that schedules execution of a first application and a second application on a central processing unit (CPU) core of the computing device, the first application including an internal scheduler distinct from the system scheduler, execution of the first application on the core including initiation, by the internal scheduler, of a plurality of fibers of the first application on the core in series;

while the first application is executing on the core, detect, by the internal scheduler of the first application in response to termination of execution of one of the plurality of fibers of the first application on the core, a context-switch opportunity; and

issue, by the first application in response to detecting the context-switch opportunity, a blocking operation that triggers the system scheduler to perform a rescheduling operation between the first and second applications on the CPU core,

wherein the system scheduler is configured with a minimum granularity period (MGP), the MGP being a shortest length of time that the system scheduler is able to schedule, and wherein detecting the context-switch opportunity is done upon executing the first application on the core for less than the MGP,

wherein the one of the plurality of fibers is an initial fiber of the first application configured to execute on the core that terminates at least a threshold amount of time after execution of the first application on the core, the threshold amount of time being less than the MGP.

13. The computer program product of claim 12 wherein detection of the context-switch opportunity includes detection that a container thread of the first application configured to execute on the core does not hold a lock on any resource shared with another application configured to run, on the computing device or with another container thread of the first application configured to execute on another core of the computing device.

14. The computer program product of claim 12 wherein issuance of the blocking operation includes issuance of a sleep operation.

15. An apparatus comprising:

a central processing unit (CPU) including at least one core; and

memory, the memory storing instructions, which, when performed by the core cause the core to:

run a system scheduler that schedules execution of a first application and a second application on the core, the first application including an internal scheduler distinct from the system scheduler, execution of the first application on the core including initiation, by the internal scheduler, of a plurality of fibers of the first application on the core in series;

while the first application is executing on the core, detect, by the internal scheduler of the first application in response to termination of execution of one of the plurality of fibers of the first application on the core, a context-switch opportunity; and

issue, by the first application in response to detecting the context-switch opportunity, a blocking operation that triggers the system scheduler to perform a rescheduling operation between the first and second applications on the core,

wherein the system scheduler is configured with a minimum granularity period (MGP), the MGP being a shortest length of time that the system scheduler is able to schedule, and wherein detection of the context-switch opportunity is done upon executing the first application on the core for less than the MGP,

wherein the one of the plurality of fibers is an initial fiber of the first application configured to execute on the core that terminates at least a variable threshold amount of time after execution of the first application on the core, the variable threshold amount of time being less than the MGP.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2021
From: KAMRAN, LIOR; ALKALAY, AMITAI; LOYA, LIRAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054827/0478 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
Continuity (1)
Related Publication 20220121484A1 · Apr 21, 2022