IP Library Granted Patent US 11,586,569
Granted Patent B2
US 11,586,569 · App. 17/383,604 · Granted Feb 21, 2023

System and method for polling-based storage command processing

Inventors: Leonid Ravich (Raanana, IL); Eldad Zinger (Raanana, IL); Amit Engel (Tel Aviv, IL)
Assignee: EMC IP Holding Company, LLC
G06F13/24G06F13/102
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,586,569
App. No.
17/383,604
Granted
Feb 21, 2023
Kind
B2
Abstract

A method, computer program product, and computing system for assigning a first set of interrupts for exclusive processing by a first set of central processing units (CPU) cores. A second set of interrupts may be assigned for processing by a second set of CPU cores. The first set of interrupts may be processed using the first set of CPU cores. The second set of interrupts may be converted to a set of polling operations, thus defining a set of converted polling operations. The set of converted polling operations may be processed using the second set of CPU cores.

Claims (50)

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

assigning a first set of interrupts for exclusive processing by a first set of central processing units (CPU) cores;

assigning a second set of interrupts for processing by a second set of CPU cores;

processing the first set of interrupts using the first set of CPU cores;

converting the second set of interrupts to a set of polling operations, thus defining a set of converted polling operations; and

processing the set of converted polling operations using the second set of CPU cores.

2. The computer-implemented method of claim 1 , wherein converting the second set of interrupts to a set of polling operations includes:

preventing the second set of interrupts from being processed as interrupts; and

storing each interrupt of the second set of interrupts as a polling operation on one or more buffers.

3. The computer-implemented method of claim 2 , wherein processing the set of converted polling operations using the second set of CPU cores includes polling the set of converted polling operations from the one or more buffers using the second set of CPU cores.

4. The computer-implemented method of claim 1 , wherein the first set of interrupts and the second set of interrupts include one or more interrupts associated with Fibre Channel protocol transport layer.

5. The computer-implemented method of claim 4 , wherein the first set of interrupts include one or more IO command interrupts.

6. The computer-implemented method of claim 5 , further comprising:

determining, using the one or more IO command interrupts, whether an IO command interrupt is associated with a read command or a write command;

in response to determining that the IO command interrupt is associated with a read command, converting the read command interrupt to a polling operation; and

in response to determining that the IO command interrupt is associated with a write command, processing the write command interrupt using the first set of CPU cores.

7. The computer-implemented method of claim 4 , wherein the second set of interrupts include at least one of:

one or more backend submission command interrupts; and

one or more transaction completion interrupts.

8. 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:

assigning a first set of interrupts for exclusive processing by a first set of central processing units (CPU) cores;

assigning a second set of interrupts for processing by a second set of CPU cores;

processing the first set of interrupts using the first set of CPU cores;

converting the second set of interrupts to a set of polling operations, thus defining a set of converted polling operations; and

processing the set of converted polling operations using the second set of CPU cores.

9. The computer program product of claim 8 , wherein converting the second set of interrupts to a set of polling operations includes:

preventing the second set of interrupts from being processed as interrupts; and

storing each interrupt of the second set of interrupts as a polling operation on one or more buffers.

10. The computer program product of claim 9 , wherein processing the set of converted polling operations using the second set of CPU cores includes polling the set of converted polling operations from the one or more buffers using the second set of CPU cores.

11. The computer program product of claim 8 , wherein the first set of interrupts and the second set of interrupts include one or more interrupts associated with Fibre Channel protocol transport layer.

12. The computer program product of claim 11 , wherein the first set of interrupts include one or more IO command interrupts.

13. The computer program product of claim 12 , wherein the operations further comprise:

determining, using the one or more IO command interrupts, whether an IO command interrupt is associated with a read command or a write command;

in response to determining that the IO command interrupt is associated with a read command, converting the read command interrupt to a polling operation; and

in response to determining that the IO command interrupt is associated with a write command, processing the write command interrupt using the first set of CPU cores.

14. The computer program product of claim 11 , wherein the second set of interrupts include at least one of:

one or more backend submission command interrupts; and

one or more transaction completion interrupts.

15. A computing system comprising:

a memory; and

a processor configured to assign a first set of interrupts for exclusive processing by a first set of central processing units (CPU) cores, wherein the processor is further configured to assign a second set of interrupts for processing by a second set of CPU cores, wherein the processor is further configured to process the first set of interrupts using the first set of CPU cores, wherein the processor is further configured to convert the second set of interrupts to a set of polling operations, thus defining a set of converted polling operations, and wherein the processor is further configured to process the set of converted polling operations using the second set of CPU cores.

16. The computing system of claim 15 , wherein converting the second set of interrupts to a set of polling operations includes:

preventing the second set of interrupts from being processed as interrupts; and

storing each interrupt of the second set of interrupts as a polling operation on one or more buffers.

17. The computing system of claim 16 , wherein processing the set of converted polling operations using the second set of CPU cores includes polling the set of converted polling operations from the one or more buffers using the second set of CPU cores.

18. The computing system of claim 15 , wherein the first set of interrupts and the second set of interrupts include one or more interrupts associated with Fibre Channel protocol transport layer.

19. The computing system of claim 18 , wherein the first set of interrupts include one or more IO command interrupts.

20. The computing system of claim 18 , wherein the second set of interrupts include at least one of:

one or more backend submission command interrupts; and

one or more transaction completion interrupts.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) 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 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) 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 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) 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 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
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 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
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 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
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 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2021
From: RAVICH, LEONID; ZINGER, ELDAD; ENGEL, AMIT
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 056956/0680 →
Continuity (1)
Related Publication 20230025907A1 · Jan 26, 2023