IP Library › Granted Patent US 9,619,308
Granted Patent B2
US 9,619,308 · App. 15/161,469 · Granted Apr 11, 2017

Executing a kernel device driver as a user space process

Inventors: Michael Adda (Tel Aviv, IL); Dan Aloni (Rishon Le-Zion, IL); Avner Braverman (Tel Aviv, IL)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/545G06F9/4843G06F9/541G06F11/0715G06F11/0793G06F11/1402G06F13/102G06F13/24G06F13/28G06F13/4282
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,619,308
App. No.
15/161,469
Granted
Apr 11, 2017
Kind
B2
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.

Claims (23)

1. 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 that the operation comprises a privileged operation, wherein when 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

when 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 an execution of an interrupt handling of the interrupt handling code of the device driver.

2. The method according to claim 1 , further including, when the operation is privileged, performing, by a kernel space emulation module, the privileged operation from the kernel space while conveying completion information back to the UDF library.

3. The method according to claim 1 , wherein the non-privileged operation is selected from a group of operations comprising maintaining a list, maintaining a timer, and maintaining a process scheduler.

4. The method according to claim 1 , wherein the privileged operation is selected from a group of operations comprising catching an interrupt, allocating direct memory access (DMA) memory, and mapping input/output (I/O) memory addresses.

5. The method according to claim 1 , wherein the device driver comprises a Peripheral Component Interconnect (PCI) device driver.

6. 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; and

computer readable program code configured to determine that the operation comprises a privileged operation, wherein when the operation is privileged, the API call is conveyed, via a file descriptor, to a UDF kernel module executing from a kernel space of the memory over the operating system kernel; and

when 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 an execution of an interrupt handling of the interrupt handling code of the device driver.

7. The computer program product according to claim 6 , wherein the computer readable program code is configured to, when the operation is privileged, perform, by a kernel space emulation module, the privileged operation from the kernel space while conveying completion information back to the UDF library.

8. The computer program product according to claim 6 , wherein the computer readable program code is configured to select the non-privileged operation from a group of operations comprising maintaining a list, maintaining a timer, and maintaining a process scheduler.

9. The computer program product according to claim 6 , wherein the computer readable program code is configured to select the privileged operation from a group of operations comprising catching an interrupt, allocating direct memory access (DMA) memory, and mapping input/output (I/O) memory addresses.

10. The computer program product according to claim 6 , wherein the device driver comprises a Peripheral Component Interconnect (PCI) device driver.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2016
From: ADDA, MICHAEL; ALONI, DAN; BRAVERMAN, AVNER
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038682/0177 →
Continuity (4)
Continuation 14800396 · Jul 15, 2015
Continuation 14457203 · Aug 12, 2014
Continuation 12949132 · Nov 18, 2010
Related Publication 20160266946A1 · Sep 15, 2016