Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for providing I/O control and synchronization in a RAID system which includes co-existing hardware and software-based I/O paths, said method comprising: detecting a need to take a command block via firmware, the command block including at least one of blocking at least one host command and pausing at least one active background operation; establishing a host I/O bit of a control register of fast path hardware of the system at a first setting for preventing the fast path hardware from processing subsequent host I/Os posted by a host driver through a request first-in first-out (FIFO) buffer of the controller; and allowing the fast path hardware to complete servicing a last I/O fetched after the first setting of the host I/O bit was established.
2. A method as claimed in claim 1 , further comprising: after a cache flush is initiated on all dirty lines of a controller cache of the system, requesting an EXCLUSIVE region lock with a RowLBA field and Len field set to cover an entire capacity of all Logical Drives (LDs) of the system.
3. A method as claimed in claim 2 , further comprising: flushing hardware-based Adelson-Velskii Landis (AVL) trees holding region locks.
4. A method as claimed in claim 3 , further comprising: setting a reserved field in a REGION_LOCK structure to a coded value distinguishing the REGION_LOCK structure as a Sentinel Region Lock indicating that all previous lock requests have been processed.
5. A method as claimed in claim 4 , further comprising: receiving a grant of the Sentinel Region Lock.
6. A method as claimed in claim 5 , further comprising: monitoring an in-flight I/O count and a fast path hardware I/O count.
7. A method as claimed in claim 6 , further comprising: when the in-flight I/O count and the fast path hardware I/O count reach zero, dispatching a task requesting the command block.
8. A method as claimed in claim 7 , further comprising: when the in-flight I/O count and the fast path hardware I/O count reach zero, completing activity requiring the command block.
9. A method as claimed in claim 8 , further comprising: when the in-flight I/O count and the fast path hardware I/O count reach zero, establishing the host I/O bit of the control register of the fast path hardware at a second setting, said second setting configured for allowing processing of host I/Os posted through the request FIFO to resume.
10. A method as claimed in claim 9 , further comprising: releasing the Sentinel Region Lock.
11. A non-transitory, computer-readable medium having computer-executable instructions for performing a method for providing I/O control and synchronization in a RAID system which includes co-existing hardware and software-based I/O paths, said method comprising: detecting a need to take a command block via firmware, the command block including at least one of blocking at least one host command and pausing at least one active background operation; establishing a host I/O bit of a control register of fast path hardware of the system at a first setting for preventing the fast path hardware from processing subsequent host I/Os posted by a host driver through a request first-in first-out (FIFO) buffer of the controller; and allowing the fast path hardware to complete servicing a last I/O fetched after the first setting of the host I/O bit was established.
12. A non-transitory, computer-readable medium having computer-executable instructions for performing a method as claimed in claim 11 , said method further comprising: after a cache flush is initiated on all dirty lines of a controller cache of the system, requesting an EXCLUSIVE region lock with a RowLBA field and Len field set to cover an entire capacity of all Logical Drives (LDs) of the system.
13. A non-transitory, computer-readable medium having computer-executable instructions for performing a method as claimed in claim 12 , said method further comprising: flushing hardware-based Adelson-Velskii Landis (AVL) trees holding region locks.
14. A non-transitory, computer-readable medium having computer-executable instructions for performing a method as claimed in claim 13 , said method further comprising: setting a reserved field in a REGION_LOCK structure to a coded value distinguishing the REGION_LOCK structure as a Sentinel Region Lock indicating that all previous lock requests have been processed.
15. A non-transitory, computer-readable medium having computer-executable instructions for performing a method as claimed in claim 14 , said method further comprising: receiving a grant of the Sentinel Region Lock.
16. A non-transitory, computer-readable medium having computer-executable instructions for performing a method as claimed in claim 15 , said method further comprising: monitoring an in-flight I/O count and a fast path hardware I/O count.
17. A non-transitory, computer-readable medium having computer-executable instructions for performing a method as claimed in claim 16 , said method further comprising: when the in-flight I/O count and the fast path hardware I/O count reach zero, dispatching a task requesting the command block.
18. A non-transitory, computer-readable medium having computer-executable instructions for performing a method as claimed in claim 17 , said method further comprising: when the in-flight I/O count and the fast path hardware I/O count reach zero, completing activity requiring the command block.
19. A non-transitory, computer-readable medium having computer-executable instructions for performing a method as claimed in claim 18 , said method further comprising: when the in-flight I/O count and the fast path hardware I/O count reach zero, establishing the host I/O bit of the control register of the fast path hardware at a second setting, said second setting configured for allowing processing of host I/Os posted through the request FIFO to resume.
20. A non-transitory, computer-readable medium having computer-executable instructions for performing a method as claimed in claim 19 , said method further comprising: releasing the Sentinel Region Lock.
Unknown
November 4, 2014
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.