Back to results
US 8,806,511 B2Granted
Executing a kernel device driver as a user space process
AssigneeInternational Business Machines Corporation
InventorsMichael Adda, Dan Aloni, Avner Braverman
Life of this patent
Estimating the term…
Abstract
A method, including receiving, by a user space driver framework (UDF) library executing from a user space of a memory over a monolithic operating system kernel, a kernel application programming interface (API) call from a device driver executing from the user space. The UDF library then performs an operation corresponding to the kernel API call.
Claims8
A method, comprising:
- receiving, by a user space driver framework (UDF) library executing from a user space of a memory over an operating system kernel operated by a device driver executing from the user space, a kernel application programming interface (API) call from a device driver executing from the user space;
- determining if the operation comprises a privileged operation, wherein:
- if the operation is privileged:
- conveying, via a file descriptor, the API call to a UDF kernel module executing from a kernel space of the memory over the operating system kernel, and
- performing, by a kernel space emulation module, the privileged operation from the kernel space while conveying completion information back to the UDF library, and
- if the operation is non-privileged:
- performing, by the UDF library, an operation corresponding to the kernel API call, and
- detecting an interrupt and sending a notification of the interrupt via the file descriptor to the UDF library, wherein upon receiving the notification:
- scheduling, by a scheduler, execution of interrupt handling code of the device driver, wherein the interrupt handling code is a component of the device driver configured to perform each one of:
- receiving a notification of an incoming message from a remote network node, and
- receiving a notification of a failure in firmware controlling a host bus adaptor (HBA).
8 more elements
A computer program product, the computer program product comprising:
- a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising:
- computer readable program code configured to receive, by a user space driver framework (UDF) library executing from a user space of a memory over an operating system kernel operated by a device driver executing from the user space, a kernel application programming interface (API) call from a device driver executing from the user space;
- computer readable program code configured to determine if the operation comprises a privileged operation, wherein:
- if the operation is privileged:
- computer readable program code configured to convey, via a file descriptor, the API call to a UDF kernel module executing from a kernel space of the memory over the monolithic operating system kernel, and
- computer readable program code configured to perform, by a kernel space emulation module, the privileged operation from the kernel space while conveying completion information back to the UDF library, and if the operation is non-privileged:
- computer readable program code configured to perform, by the UDF library, an operation corresponding to the kernel API call, and
- computer readable program code configured to detect an interrupt and sending a notification of the interrupt via the file descriptor to the UDF library, wherein upon receiving the notification:
- scheduling, by a scheduler, execution of interrupt handling code of the device driver, wherein the interrupt handling code is a component of the device driver configured to perform each one of:
- receiving a notification of an incoming message from a remote network node, and
- receiving a notification of a failure in firmware controlling a host bus adaptor (HBA).
8 more elements
Dependencies are inferred from the claim text.