IP Library Granted Patent US 11,748,181
Granted Patent B2
US 11,748,181 · App. 17/243,306 · Granted Sep 5, 2023

System and method for efficient scalable software-defined NVMEoF front-end connectivity

Inventors: Eldad Zinger (Ra'anana, IL); Leonid Ravich (Ra'anana, IL); Ran Anner (Kfar Saba, IL); Amit Engel (Tel Aviv, IL); Elad Grupi (Tel Aviv, IL)
Assignee: EMC IP Holding Company, LLC
G06F9/545G06F3/067G06F3/0613G06F3/0659G06F13/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,748,181
App. No.
17/243,306
Filed
Apr 28, 2021
Granted
Sep 5, 2023
Kind
B2
Art Unit
2194
USPC
719/321
Abstract

A method, computer program product, and computer system for directing, by a computing device, an incoming Non-Volatile Memory express (NVMe) command to a kernel driver. The kernel driver may enqueue the incoming NVMe command until fetched by a user space. The NVMe command may be fetched from the kernel driver for processing. The NVMe command may be pushed to a user space block device of the user space.

Claims (37)

1. A computer-implemented method comprising:

directing, by a computing device, an incoming Non-Volatile Memory express (NVMe) command from a Non-Volatile Memory Express Target (NVMET) built-in protocol processor to a kernel driver, wherein the incoming NVMe command is directed by, at least, one or more NVMET transports;

enqueuing, by the kernel driver, the incoming NVMe command until fetched by a user space;

polling, by a component of a datapath process, for the incoming NVMe command;

fetching the NVMe command from the kernel driver for processing by the datapath process; and

pushing the NVMe command to a user space block device of the user space.

2. The computer-implemented method of claim 1 wherein a driver in a kernel space holds the incoming NVMe command until fetched by the datapath process.

3. The computer-implemented method of claim 2 wherein the driver in the kernel space allocates pages that are mapped to the datapath process.

4. The computer-implemented method of claim 2 wherein, when the datapath process completes the NVMe command, the datapath process pushes completion of the NVMe command to the driver in the kernel space.

5. The computer-implemented method of claim 4 wherein, when the datapath process pushes the completion of the NVMe command to the driver in the kernel space, the driver in the kernel space passes the completion of the NVMe command to a host.

6. The computer-implemented method of claim 3 wherein the datapath process includes a component that maps the pages to the kernel space.

7. The computer-implemented method of claim 3 wherein the datapath process includes a component that manages backend storage.

8. A computer program product residing on a non-transitory computer readable storage medium having a plurality of instructions stored thereon which, when executed across one or more processors, causes at least a portion of the one or more processors to perform operations comprising:

directing an incoming Non-Volatile Memory express (NVMe) command from a Non-Volatile Memory Express Target (NVMET) built-in protocol processor to a kernel driver, wherein the incoming NVMe command is directed by, at least, one or more NVMET transports;

enqueuing, by the kernel driver, the incoming NVMe command until fetched by a user space;

polling, by a component of a datapath process, for the incoming NVMe command;

fetching the NVMe command from the kernel driver for processing by the datapath process; and

pushing the NVMe command to a user space block device of the user space.

9. The computer program product of claim 8 wherein a driver in a kernel space holds the incoming NVMe command until fetched by the datapath process.

10. The computer program product of claim 9 wherein the driver in the kernel space allocates pages that are mapped to the datapath process.

11. The computer program product of claim 9 wherein, when the datapath process completes the NVMe command, the datapath process pushes completion of the NVMe command to the driver in the kernel space.

12. The computer program product of claim 11 wherein, when the datapath process pushes the completion of the NVMe command to the driver in the kernel space, the driver in the kernel space passes the completion of the NVMe command to a host.

13. The computer program product of claim 10 wherein the datapath process includes a component that maps the pages to the kernel space.

14. The computer program product of claim 10 wherein the datapath process includes a component that manages backend storage.

15. A computing system including one or more processors and one or more memories configured to perform operations comprising:

directing an incoming Non-Volatile Memory express (NVMe) command from a Non-Volatile Memory Express Target (NVMET) built-in protocol processor to a kernel driver, wherein the incoming NVMe command is directed by, at least, one or more NVMET transports;

enqueuing, by the kernel driver, the incoming NVMe command until fetched by a user space;

polling, by a component of a datapath process, for the incoming NVMe command;

fetching the NVMe command from the kernel driver for processing by the datapath process; and

pushing the NVMe command to a user space block device of the user space.

16. The computing system of claim 15 wherein a driver in a kernel space holds the incoming NVMe command until fetched by the datapath process.

17. The computing system of claim 16 wherein the driver in the kernel space allocates pages that are mapped to the datapath process.

18. The computing system of claim 16 wherein, when the datapath process completes the NVMe command, the datapath process pushes completion of the NVMe command to the driver in the kernel space.

19. The computing system of claim 18 wherein, when the datapath process pushes the completion of the NVMe command to the driver in the kernel space, the driver in the kernel space passes the completion of the NVMe command to a host.

20. The computing system of claim 17 wherein the datapath process includes at least one of:

a component that maps the pages to the kernel space; and

a component that manages backend storage.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) 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/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) 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/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) 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 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 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 056295/0124 →
SECURITY INTEREST Recorded May 19, 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 056295/0001 →
SECURITY INTEREST Recorded May 19, 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 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2021
From: ZINGER, ELDAD; RAVICH, LEONID; ANNER, RAN; ENGEL, AMIT; GRUPI, ELAD
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 056074/0771 →