IP Library Granted Patent US 9,524,107
Granted Patent B2
US 9,524,107 · App. 14/447,389 · Granted Dec 20, 2016

Host-based device drivers for enhancing operations in redundant array of independent disks systems

Inventors: Adam Weiner (Milpitas, CA); James A Rizzo (Austin, TX); Mark Ish (Norcross, GA); Robert L Sheffield (Boulder, CO); Horia Cristian Simionescu (Milpitas, CA)
Assignee: Avago Technologies General IP (Singapore) Pte. Ltd.
G06F3/061G06F3/0647G06F3/0689
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 9,524,107
App. No.
14/447,389
Granted
Dec 20, 2016
Kind
B2
Abstract

Methods and structure for host-side device drivers for Redundant Array of Independent Disks (RAID) systems. One system includes a processor and memory of a host, which implement a device driver. The device driver receives an Input/Output (I/O) request from an Operating System (OS) of the host, translates Logical Block Addresses (LBAs) from the received request into physical addresses at multiple storage devices, generates child I/O requests directed to the physical addresses based on the received request, and accesses an address lock system at a RAID controller to determine whether the physical addresses are accessible. If the physical addresses are accessible, the device driver reserves the physical addresses by updating the address lock system, and directs the child I/O requests to a hardware path at the RAID controller for handling single-strip I/O requests. If the physical addresses are not accessible, the device driver delays processing of the child I/O requests.

Claims (63)

1. A system, comprising:

a processor of a host; and

a memory of the host,

the processor and the memory of the host implement a device driver for communicating with a physically distinct Redundant Array of Independent Disks (RAID) controller,

wherein the device driver is operable to receive an Input/Output (I/O) request, from an Operating System (OS) of the host, that is directed to a RAID volume, to translate Logical Block Addresses (LBAs) from the received request into physical addresses at multiple storage devices, to generate child I/O requests that are directed to the physical addresses at the multiple storage devices and are based on the received request, and to access an address lock system at the RAID controller to determine whether the physical addresses are presently accessible,

wherein the device driver is further operable, responsive to determining that the physical addresses are presently accessible, to reserve the physical addresses by updating the address lock, and to direct the child I/O requests to a hardware path of the RAID controller dedicated to handling single-strip I/O requests, and

wherein the device driver is further operable, responsive to determining that the physical addresses are not presently accessible, to delay processing of the child I/O requests.

2. The system of claim 1 , wherein:

the device driver is further operable to generate a child I/O request that includes parity data based on the received I/O request.

3. The system of claim 1 , wherein:

the device driver is further operable to selectively generate child requests for received requests, based on whether the received requests are Read-Modify-Write (RMW) requests.

4. The system of claim 1 , wherein:

the device driver is further operable to distinguish received Full Stripe Write (F SW) requests from received Read-Modify Write (RMW) requests, and to refrain from generating child I/O requests for the FSW requests.

5. The system of claim 1 , wherein:

the device driver is further operable to reserve a portion of memory at the RAID controller for handling the received I/O request,

wherein the portion of memory includes buffers for storing each of the child I/O requests and a Direct Memory Access (DMA) frame.

6. The system of claim 1 , wherein:

the device driver is further operable to use Direct Memory Access (DMA) techniques to transfer the child I/O requests from the RAID controller to coupled storage devices.

7. The system of claim 1 , wherein:

the device driver is further operable to identify a successful completion message from the RAID controller for each of the child I/O requests, and to report successful completion of the received I/O request to the OS.

8. A method comprising:

receiving, at a device driver of a host for communicating with a physically distinct Redundant Array of Independent Disks (RAID) controller, an Input/Output (I/O) request, from an Operating System (OS) of the host, that is directed to a RAID volume;

translating, at the device driver, Logical Block Addresses (LBAs) from the received request into physical addresses at multiple storage devices;

generating, at the device driver, child I/O requests that are directed to the physical addresses at the multiple storage devices and are based on the received request;

accessing, at the device driver, an address lock system at the RAID controller to determine whether the physical addresses are presently accessible;

if the physical addresses are presently accessible:

reserving the physical addresses by updating the address lock; and

directing the child I/O requests to a hardware path of the RAID controller dedicated to handling single-strip I/O requests; and

if the physical addresses are not presently accessible:

delaying processing of the child I/O requests.

9. The method of claim 8 , further comprising:

generating a child I/O request that includes parity data based on the received I/O request.

10. The method of claim 8 , further comprising:

selectively generating child requests for received requests, based on whether the received requests are Read-Modify-Write (RMW) requests.

11. The method of claim 8 , further comprising:

distinguishing received Full Stripe Write (F SW) requests from received Read-Modify Write (RMW) requests; and

refraining from generating child I/O requests for the FSW requests.

12. The method of claim 8 , further comprising:

reserving a portion of memory at the RAID controller for handling the received I/O request,

wherein the portion of memory includes buffers for storing each of the child I/O requests and a Direct Memory Access (DMA) frame.

13. The method of claim 8 , further comprising:

utilizing Direct Memory Access (DMA) techniques to transfer the child I/O requests from the RAID controller to coupled storage devices.

14. The method of claim 8 , further comprising:

identifying a successful completion message from the RAID controller for each of the child I/O requests; and

reporting successful completion of the received I/O request to the OS.

15. A system, comprising:

a means for processing at a host; and

a means for storing data at the host,

wherein the means for processing and the means for storing data implement a device driver for communicating with a physically distinct Redundant Array of Independent Disks (RAID) controller,

wherein the device driver is operable to receive an Input/Output (I/O) request, from an Operating System (OS) of the host, that is directed to a RAID volume, to translate Logical Block Addresses (LBAs) from the received request into physical addresses at multiple storage devices, to generate child I/O requests that are directed to the physical addresses at the multiple storage devices and are based on the received request, and to access an address lock system at the RAID controller to determine whether the physical addresses are presently accessible,

wherein the device driver is further operable, responsive to determining that the physical addresses are presently accessible, to reserve the physical addresses by updating the address lock, and to direct the child I/O requests to a hardware path of the RAID controller dedicated to handling single-strip I/O requests, and

wherein the device driver is further operable, responsive to determining that the physical addresses are not presently accessible, to delay processing of the child I/O requests.

16. The system of claim 15 , wherein:

the device driver is further operable to generate a child I/O request that includes parity data based on the received I/O request.

17. The system of claim 15 , wherein:

the device driver is further operable to selectively generate child requests for received requests, based on whether the received requests are Read-Modify-Write (RMW) requests.

18. The system of claim 15 , wherein:

the device driver is further operable to distinguish received Full Stripe Write (F SW) requests from received Read-Modify Write (RMW)requests, and to refrain from generating child I/O requests for the FSW requests.

19. The system of claim 15 , wherein:

the device driver is further operable to reserve a portion of memory at the RAID controller for handling the received I/O request,

wherein the portion of memory includes buffers for storing each of the child I/O requests and a Direct Memory Access (DMA) frame.

20. The system of claim 15 , wherein:

the device driver is further operable to use Direct Memory Access (DMA) techniques to transfer the child I/O requests from the RAID controller to coupled storage devices.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2016
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 038062/0967 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2014
From: WEINER, ADAM; RIZZO, JAMES A; ISH, MARK; SIMIONESCU, HORIA CRISTIAN; SHEFFIELD, ROBERT L
To: LSI CORPORATION
Reel/Frame 033426/0472 →
Continuity (1)
Related Publication 20160034186A1 · Feb 4, 2016