Patent ID: 9286004
Filing Date: 2016-03-15
CPC Classification: G06F

Claim Text:
1. A method for managing I/O operations in data storage systems having one or more multi-core processors, the method comprising: maintaining a first variable configured to simultaneously store a first value and a second value, the first value storing a counter associated with a number of I/O operations directed to a storage object that remain outstanding, and the second value storing a gate bit associated with an open or closed gate condition, wherein the first variable is stored in a shared memory location accessible by two or more cores of the one or more multi-core processors; tracking I/O operations directed to a storage object, wherein tracking includes incrementing the first value of the first variable when an I/O operation is received and decrementing the first value of the first variable when an I/O operation is processed; determining that the storage object needs to perform an operation that requires the storage object to change state; setting the second value, wherein the bit location associated with the gate bit of the first variable is set to a value indicative of a gate closed condition such that subsequent I/O operations are queued in a respective core of the one or more multi-core processors; draining outstanding I/O operations by continuing to process I/O operations until the first value of the first variable reaches zero; performing operations that required the storage object to change state; and clearing the gate bit, wherein the bit location associated with the gate bit of the first variable is set to a value indicative of a gate open condition such that subsequent I/O are no longer queued.