IP Library Granted Patent US 11,494,236
Granted Patent B2
US 11,494,236 · App. 16/867,613 · Granted Nov 8, 2022

System and method for sharing central processing unit (CPU) resources with unbalanced applications

Inventors: Lior Kamran (Rishon LeZion, IL); Amitai Alkalay (Kadima, IL)
Assignee: EMP IP Holding Company, LLC
G06F9/5027G06F9/4881G06F11/3024G06F2209/5018
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,494,236
App. No.
16/867,613
Granted
Nov 8, 2022
Kind
B2
Abstract

A method, computer program product, and computing system for monitoring utilization of each central processing unit (CPU) core of a plurality of CPU cores. An average input/output (IO) latency for an operating system thread executing on the CPU core of the plurality of CPU cores may be determined. The operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core may be adjusted based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores.

Claims (41)

1. A computer-implemented method, executed on a computing device, comprising:

monitoring, via the computing device, utilization of each central processing unit (CPU) core of a plurality of CPU cores, wherein monitoring utilization of each CPU core of a plurality of CPU cores includes: monitoring a block application utilization and monitoring a file application utilization;

determining an average input/output (IO) latency for an operating system thread executing on each CPU core of the plurality of CPU cores;

adjusting an operating system thread IO polling cadence for at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores, wherein adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

determining whether the average IO latency for the operating system thread executing on the at least one CPU core is greater than average IO latencies of other CPU cores of the plurality of CPU cores by more than a predefined IO latency threshold;

determining whether the file application utilization of the at least one CPU core is greater than a predefined file application utilization threshold; and

preventing at least one new block application IO request from being fetched via the operating system thread executing on the at least one CPU core of the plurality of CPU cores in response to determining that the file application utilization of the CPU core is greater than the predefined file application utilization threshold.

2. The computer-implemented method of claim 1 , adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

determining whether an average block application utilization of the plurality of CPU cores is less than a first predefined block application utilization threshold.

3. The computer-implemented method of claim 2 , wherein adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

decreasing the operating system thread IO polling cadence for the at least one operating system thread executing on the at least one CPU core in response to determining that the average IO latency for the operating system thread executing on the CPU core is greater than the average IO latencies of the other CPU cores of the plurality of CPU cores by more than a predefined IO latency threshold and that the average block application utilization of the plurality of CPU cores is less than the predefined block application utilization threshold.

4. The computer-implemented method of claim 3 , wherein adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

determining whether the block application utilization of one or more CPU cores is greater than a second predefined block application utilization threshold; and

increasing the operating system thread IO polling cadence for each operating system thread executing on one or more other CPU cores in response to determining that the block application utilization of the one or more CPU cores is greater than the second predefined block application utilization threshold.

5. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

monitoring utilization of each central processing unit (CPU) core of a plurality of CPU cores, wherein monitoring utilization of each CPU core of a plurality of CPU cores includes: monitoring a block application utilization and monitoring a file application utilization;

determining an average input/output (IO) latency for an operating system thread executing on the CPU core of the plurality of CPU cores;

adjusting an operating system thread IO polling cadence for at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores, wherein adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

determining whether the average IO latency for the operating system thread executing on the at least one CPU core is greater than average IO latencies of other CPU cores of the plurality of CPU cores by more than a predefined IO latency threshold;

determining whether the file application utilization of the at least one CPU core is greater than a predefined file application utilization threshold; and

preventing at least one new block application IO request from being fetched via the operating system thread executing on the at least one CPU core of the plurality of CPU cores in response to determining that the file application utilization of the CPU core is greater than the predefined file application utilization threshold.

6. The computer program product of claim 5 , wherein adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

determining whether an average block application utilization of the plurality of CPU cores is less than a first predefined block application utilization threshold.

7. The computer program product of claim 6 , wherein adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

decreasing the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core in response to determining that the average IO latency for the operating system thread executing on the CPU core is greater than the average IO latencies of the other CPU cores of the plurality of CPU cores by more than a predefined IO latency threshold and that the average block application utilization of the plurality of CPU cores is less than the predefined block application utilization threshold.

8. The computer program product of claim 7 , wherein adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

determining whether the block application utilization of one or more CPU cores is greater than a second predefined block application utilization threshold; and

increasing the operating system thread IO polling cadence for each operating system thread executing on one or more other CPU cores in response to determining that the block application utilization of the one or more CPU cores is greater than the second predefined block application utilization threshold.

9. A computing system comprising:

a memory; and

a processor configured to monitor utilization of each central processing unit (CPU) core of a plurality of CPU cores, wherein monitoring utilization of each CPU core of a plurality of CPU cores includes: monitoring a block application utilization and monitoring a file application utilization, wherein the processor is further configured to determine an average input/output (IO) latency for an operating system thread executing on the CPU core of the plurality of CPU cores, and wherein the processor is further configured to adjust an operating system thread IO polling cadence for at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores, wherein adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

determining whether the average IO latency for the operating system thread executing on the at least one CPU core is greater than average IO latencies of other CPU cores of the plurality of CPU cores by more than a predefined IO latency threshold;

determining whether the file application utilization of the at least one CPU core is greater than a predefined file application utilization threshold; and

preventing at least one new block application IO request from being fetched via the operating system thread executing on the at least one CPU core of the plurality of CPU cores in response to determining that the file application utilization of the CPU core is greater than the predefined file application utilization threshold.

10. The computing system of claim 9 , wherein adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

determining whether an average block application utilization of the plurality of CPU cores is less than a first predefined block application utilization threshold.

11. The computing system of claim 10 , wherein adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

decreasing the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core in response to determining that the average IO latency for the operating system thread executing on the CPU core is greater than the average IO latencies of the other CPU cores of the plurality of CPU cores by more than a predefined IO latency threshold and that the average block application utilization of the plurality of CPU cores is less than the predefined block application utilization threshold.

12. The computing system of claim 11 , wherein adjusting the operating system thread IO polling cadence for the at least one operating system thread executing on at least one CPU core based upon, at least in part, the utilization of each CPU core of the plurality of CPU cores and the average IO latency for the operating system thread executing on each CPU core of the plurality of CPU cores includes:

determining whether the block application utilization of one or more CPU cores is greater than a second predefined block application utilization threshold; and

increasing the operating system thread IO polling cadence for each operating system thread executing on one or more other CPU cores in response to determining that the block application utilization of the one or more CPU cores is greater than the second predefined block application utilization threshold.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2020
From: KAMRAN, LIOR; ALKALAY, AMITAI
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 052580/0967 →