Ajitabh Prakash Saxena - Norcross GA, US Neela Syam Kolli - Lawrenceville GA, US Jose Manoj - Duluth GA, US
Assignee:
LSI Corporation - Milpitas CA
International Classification:
G06F 3/00 G06F 9/00
US Classification:
710 8, 713 2, 719321, 719327, 710 10
Abstract:
A method and system whereby new devices may be introduced for use with a particular device driver without necessitating a change to the device driver binary is disclosed. In a preferred embodiment of the present invention, an option ROM is provided within the hardware device. Program code contained in the option ROM executes during the system boot process and reads the vendor ID, device ID, subsystem vendor ID, and subsystem device ID from the device. This option ROM code then determines, based on the vendor ID, device ID, subsystem vendor ID, and subsystem device ID, whether to write a signature to a scratch pad register of the device. When the operating system is booted, the driver reads the signature written by the option ROM code. If the signature matches the signature programmed into the driver, the driver claims the device as its own and continues to load.
Quick Drive Replacement Detection On A Live Raid System
An apparatus comprising a disk array and a controller. The disk array may be configured to send and receive data from the controller. The disk array generally comprises a plurality of disk drives each configured to store a drive signature. The controller may be configured to (i) receive a data signal and one or more address signals and (ii) present data to the disk array.
A method for recovering errors on a multiple disk system. The method including the steps of (a) determining a location and type for one or more errors in a plurality of blocks on the multiple disk system, (B) determining a current error of the one or more errors that is closest to a start of the plurality of blocks, (C) recovering data for the current error using data read from drives other than the drive containing the current error and (D) determining whether any further errors are present on the drive that contained the current error.
A method of improving a serial IO operation, where the serial IO operation includes at least one of a read operation of a data block and a write operation of a data block, and the serial IO operation is directed to a logical disk of a computerized data storage system. Only one stripe of data is read from the logical disk into a cache, and it is determined whether the data block for the IO operation is included within the cache. When the data block for the IO operation is included within the cache, then for a read operation, the IO operation is serviced from the cache. For a write operation, the cache is updated with the data block to be written, and only an updated parity block is written to the logical disk. When the data block for the IO operation is not included within the cache, then for a read operation, only one new stripe of data that includes the data block is read from the logical disk into the cache, and the IO operation is serviced from the cache. For a write operation, only one new stripe of data that excludes the data block is read from the logical disk into the cache, the cache is updated with the data block to be written, and only an updated parity block is written to the logical disk.
Method For Handling Small Computer System Interface (Scsi) Commands Via A Redundant Array Of Inexpensive Disks (Raid) Device Driver
Atul Mukker - Suwanee GA, US Sreenivas Bagalkote - Suwanee GA, US Jose K. Manoj - Lilburn GA, US
Assignee:
LSI Corporation - Milpitas CA
International Classification:
G06F 13/28 G06F 3/00 G06F 13/00
US Classification:
710 22, 719321, 719326, 710 26, 711100
Abstract:
The present invention is a method for handling an operation system kernel-provided command via a software-based device driver. The method includes receiving the operation system kernel-provided command from an operation system kernel. The method further includes determining if a kernel virtual address is required for responding to the command. The method further includes initiating a Direct Memory Access (DMA) operation for providing data to the operating system kernel in response to the command when a kernel virtual address is not required for responding to the command. The method further includes allocating a device driver buffer with a DMA address and a virtual address when a kernel virtual address is required for responding to the command.
Jose K. Manoj - Lilburn GA, US Atul Mukker - Suwanee GA, US
Assignee:
LSI Corporation - Milpitas CA
International Classification:
G06F 9/46 G06F 5/00 G06F 13/12 G06F 13/28
US Classification:
718101, 710 48, 710 58, 710 71, 711114, 711154
Abstract:
A program disposed on a computer readable medium, having a main program with a first routine for issuing commands in an asynchronous manner and a second routine for determining whether the commands have been completed in an asynchronous manner. An auxiliary program adapts the main program to behave in a synchronous manner, by receiving control from the first routine, waiting a specified period of time with a wait routine, passing control to the second routine to determine whether any of the commands have been completed during the specified period of time, receiving control back from the second routine, and determining whether all of the commands have been completed. When all of the commands have not been completed, then the auxiliary program passes control back to the wait routine. When all of the commands have been completed, then the auxiliary program ends.
Resource Allocation Failure Recovery Module Of A Disk Driver
Jose K. Manoj - Lilburn GA, US Atul Mukker - Suwanee GA, US
Assignee:
LSI Corporation - Milpitas CA
International Classification:
G06F 9/50
US Classification:
718104
Abstract:
A method of resource allocation failure recovery is disclosed. The method generally includes steps (A) to (E). Step (A) may generate a plurality of resource requests from a plurality of driver modules to a manager module executed by a processor. Step (B) may generate a plurality of first calls from the manager module to a plurality of allocation modules in response to the resource requests. Step (C) may allocate a plurality of resources to the driver modules using the allocation modules in response to the first calls. Step (D) may allocate a portion of a memory pool to a particular recovery packet using the manager module in response to the allocation modules signaling a failed allocation of a particular one of the resources. Step (E) may recover from the failed allocation using the particular recovery packet.
Proactive Driver Response To An Operating System If A Drive Is Removed From A Raid Configuration
A method for responding to a particular drive being removed from a drive array, comprising the steps of (A) determining a maximum drive response time of the particular drive being removed from the drive array; (B) determining a duration of each of one or more commands needing completion; (C) if a particular one of the commands takes longer than the maximum drive response time, aborting the particular command and checking if the drive is physically present; and (D) if the command takes less than the maximum drive response time, completing the command.