Confirmed divert bitmap to synchronize raid firmware operations with fast-path hardware I/O processing
View Patent ↗A storage controller system is provided for the monitoring of fast path processing of I/Os to a storage device where the storage controller system allows for processing of I/Os to be monitored through the use of counters in a storage controller based upon the type of I/O issued to the storage controller as well as the conditions associated with the I/O, while providing a bitmap and associated divert bits and counters to monitor the processing of the I/Os in the storage controller. Methods for monitoring the processing of I/Os issued to the storage controller are also provided where the processing of the I/Os is based upon the type fast path I/Os issued to the storage controller and the conditions associated with the issued I/Os while providing a bitmap and associated divert bits and counters to monitor the processing of the I/Os in the storage controller, are also disclosed.
1. A method for monitoring the processing of one or more I/Os in a storage controller comprising:
initiating a condition that requires synchronization of RAID operations of said storage controller with one or more affected I/Os;
asserting a divert bit of said storage controller corresponding to affected virtual drive address ranges;
issuing and transmitting one or more I/Os from a driver to said storage controller;
fast tracking said one or more I/Os from said storage controller to completion based on the absence of a collision with said asserted bit;
diverting said one or more I/Os to firmware wherein said one or more I/Os have a condition that collides with said asserted bit;
maintaining a count of the number of outstanding I/Os mapped to said asserted bit; and
issuing a completion confirmation message to said firmware when said counter reaches zero.
2. The method of claim 1 , wherein upon receipt of a completion message, firmware synchronizes RAID operations of said storage controller.
3. The method of claim 1 , further comprising:
incrementing the appropriate counter by one for each newly initiated I/O.
4. The method of claim 1 , further comprising:
decrementing the appropriate counter by one for each I/O completion.
5. The method of claim 1 , further comprising:
diverting I/Os for processing by firmware in coordination with said affected RAID operation.
6. The method of claim 1 , further comprising:
pending diverted I/Os by firmware until the internal RAID operation is complete.
7. A storage control system comprising:
a storage controller coupled to a host system to receive storage I/O requests;
the storage controller configured to assert a divert bit when initiating a condition that requires synchronization of RAID operations of said storage controller with one or more affected said I/Os;
the storage controller configured to divert to firmware said I/Os with a condition that collides with said asserted bit;
wherein I/Os with a condition that does not collide with an asserted divert bit are transmitted to a storage device; and
the storage controller comprises a counter configured to maintain a count of outstanding completions of said I/O requests from said host mapped to said asserted divert bit.
8. The storage control system of claim 7 , wherein said counter is configured to increment said counter by one for each newly initiated I/O.
9. The storage control system of claim 7 , wherein said counter is configured to decrement said counter by one for each I/O completion.
10. The storage control system of claim 7 , wherein said storage system issues a completion confirmation message to said firmware when said counter reaches zero.
11. The storage control system of claim 10 , wherein upon receipt of said completion confirmation message, firmware synchronizes RAID operations of said storage controller.
12. The storage control system of claim 7 , where the storage controller is further configured to maintain one or more bitmaps of I/Os requests for processing by said firmware running on the said storage controller.
13. The storage controller system of claim 7 , wherein the storage controller is further configured to transmit said I/Os processed by firmware from firmware to a storage device.
14. A non-transitory computer readable medium having instructions stored thereon for operating a storage control system that, when executed by a computer, at least instructs the computer to:
initiate by storage controller firmware, a condition that requires synchronization of RAID operations of said storage controller with one or more affected I/Os;
assert by storage controller firmware, a divert bit of said storage controller corresponding to affected virtual drive address ranges;
receive, by the storage controller driver, a first I/O transaction request;
process said I/O request based on attributes associated with said I/O request, wherein said I/Os with a condition that requires processing are diverted to firmware running on said storage controller, as indicated an asserted divert bit that the I/O maps to; and
wherein I/Os without a condition that that does not collide with an asserted divert bit are transmitted to a storage device; and
maintain a count, by means of a counter, of outstanding completions of said I/O requests from said host mapped to said asserted divert bit.
15. The medium of claim 14 , wherein said counter is incremented by one for each newly initiated I/O.
16. The medium of claim 14 , wherein said counter is decremented by one for each completed I/O.
17. The medium of claim 14 , wherein said storage system issues a completion confirmation message to said firmware when said counter reaches zero.
18. The medium of claim 17 , wherein, firmware synchronizes RAID operations of said storage controller upon receipt of said completion confirmation message.
19. The medium of claim 14 , wherein the storage controller maintains a bitmap of I/Os for processing by said firmware running on the said storage controller.
20. The medium of claim 14 , wherein the bitmap is stored in memory shared by the storage controller driver and the firmware running on the storage controller.