Ordered kernel queue for multipathing events
First Claim
1. A method of managing events pertaining to input/output (I/O) activities in a computing system coupled to a storage array through multiple paths, the method comprising:
- storing multiple first events within a multipathing driver running within a kernel of the computing system, the first events originating from within the multipathing driver;
storing multiple second events within the multipathing driver, the second events originating from a set of software constructs running outside the kernel of the computing system; and
accessing at least some of the first and second events from the multipathing driver by at least one of the set of software constructs running outside the kernel,wherein the multipathing driver includes an event queue for storing the first events and the second events within the kernel.
9 Assignments
0 Petitions
Accused Products
Abstract
An improved technique for handling events in a multipathing driver employs an event queue and a queue manager that run in the kernel of a computing system. The queue manager receives events raised by the multipathing driver, as well as events raised by software constructs, such as application programs. Records of events are added to the event queue in the order the queue manager receives them. Event records may be consumed chronologically by external software. Preferably, the event queue is sufficiently large to store all events arising out of most predicted fault scenarios. Also, the queue manager is sophisticated and can perform certain diagnostic and analysis tasks without the aid of external software.
-
Citations
19 Claims
-
1. A method of managing events pertaining to input/output (I/O) activities in a computing system coupled to a storage array through multiple paths, the method comprising:
-
storing multiple first events within a multipathing driver running within a kernel of the computing system, the first events originating from within the multipathing driver; storing multiple second events within the multipathing driver, the second events originating from a set of software constructs running outside the kernel of the computing system; and accessing at least some of the first and second events from the multipathing driver by at least one of the set of software constructs running outside the kernel, wherein the multipathing driver includes an event queue for storing the first events and the second events within the kernel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of managing events pertaining to input/output (I/O) activities in a computing system coupled to a storage array through multiple paths, the method comprising:
-
storing multiple first events within a multipathing driver running within a kernel of the computing system, the first events originating from within the multipathing driver; storing multiple second events within the multipathing driver, the second events originating from a set of software constructs running outside the kernel of the computing system; and accessing at least some of the first and second events from the multipathing driver by at least one of the set of software constructs running outside the kernel, wherein one of the set of software constructs running on the computing system is associated with a client ID, and the method further comprises; storing the client ID associated with the software construct and a filter criterion specific to the client ID in the multipathing driver within the kernel of the operating system; subsequently receiving a request for event information from the software construct; obtaining the client ID of the software construct; obtaining the requested event information, including applying the filter criterion specific to the client ID to event records; and providing a filtered list of event records to the software construct.
-
-
14. A host computing system, comprising:
-
a set of processors; memory, coupled to the set of processors to form a specialized circuit, the memory including an operating system kernel, the operating system kernel including an input/output (I/O) driver, wherein the specialized circuit is constructed and arranged to— store multiple first events within a multipathing driver running within a kernel of the computing system, the first events originating from within the multipathing driver; store multiple second events within the multipathing driver, the second events originating from a set of software constructs running outside the kernel of the computing system; and access at least some of the first and second events from the multipathing driver by at least one of the set of software constructs running outside the kernel, wherein the multipathing driver includes an event queue for storing the first events and the second events within the kernel. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A non-transitory computer readable media including instructions which, when executed by a processor, cause the processor to perform a method of managing events pertaining to input/output (I/O) activities in a computing system coupled to a storage array through multiple paths, the method comprising:
-
storing multiple first events within a multipathing driver running within a kernel of the computing system, the first events originating from within the multipathing driver; storing multiple second events within the multipathing driver, the second events originating from a set of software constructs running outside the kernel of the computing system; accessing at least some of the first and second events from the multipathing driver by at least one of the set of software constructs running outside the kernel; initiating, from one of the set of software constructs, a data storage activity that causes a set of events to be generated by the multipathing driver and stored in an event queue; and pushing an event onto the event queue, the event including a description of the data storage activity that caused the set of events to be generated.
-
Specification