IP Library Granted Patent US 9,389,921
Granted Patent B2
US 9,389,921 · App. 12/334,552 · Granted Jul 12, 2016

System and method for flexible device driver resource allocation

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,389,921
App. No.
12/334,552
Granted
Jul 12, 2016
Kind
B2
Abstract

A system and method for flexible device driver resource allocation is disclosed. In one embodiment, a method for allocating device driver resources in a data processing system includes statically allocating hardware resource pools to device drivers on a rigid basis during initialization of the data processing system, and dynamically altering the allocated hardware resource pools to the device drivers based on parameters associated with utilization of the allocated hardware resource pools during run-time.

Claims (47)

1. A method of dynamically allocating device driver resources from system resources in a data processing system, comprising:

statically allocating hardware resource pools to device drivers on a rigid basis during initialization of the data processing system; and

dynamically altering the allocated hardware resource pools to the device drivers based on parameters associated with utilization of the allocated hardware resource pools during run-time, wherein dynamically altering the allocated hardware resource pools comprises:

determining whether a hardware throughput during the run-time is less than or equal to a hardware throughput threshold value;

if so, determining whether a number of input/outputs (I/Os) waiting at an operating system (OS) interface queue during the run-time is greater than or equal to a predetermined number of waiting I/Os threshold value; and

if the number of I/Os waiting at the OS interface queue during the run-time is greater than or equal to the predetermined number, dynamically increasing the allocated hardware resource pools to the device drivers.

2. The method of claim 1 , further comprising:

if the hardware throughput during the run-time is not less than or equal to the hardware throughput threshold value, then determining whether the number of I/Os waiting at the OS interface queue during the run-time is greater than or equal to the predetermined number of waiting I/Os threshold value;

if so, informing an OS layer to regulate I/Os.

3. The method of claim 1 , further comprising:

if the number of I/Os waiting at the OS interface queue during the run-time is not greater than or equal to the predetermined number of waiting I/Os threshold value, then determining whether an average hardware pool utilization during the run-time is below or equal to a predetermined hardware pool utilization threshold value;

if so, dynamically decreasing the allocated hardware resource pools to the device drivers.

4. The method of claim 3 , wherein the predetermined hardware pool utilization threshold value is based on parameters selected from the group consisting of percentage of current hardware pool size and ratio of current hardware pool size.

5. The method of claim 3 , wherein the predetermined number of waiting I/Os threshold value is based on parameters selected from the group consisting of percentage of hardware pool size and ratio of current hardware pool size.

6. The method of claim 1 , wherein dynamically altering the allocated hardware resource pools to the device drivers comprises:

suspending the device drivers;

dynamically altering the allocated hardware resource pools to the device drivers while the device drivers are suspended; and

resuming the device drivers.

7. The method of claim 1 , wherein dynamically altering the allocated hardware resource pools to the device drivers comprises:

waiting until current pending I/Os are drained;

dynamically altering the allocated hardware resource pools to the device drivers after the current pending I/Os are drained; and

resuming new I/Os after the dynamic altering of the allocated hardware resource pools.

8. The method of claim 1 , wherein the number of I/Os waiting at the OS interface queue is an average number of I/Os waiting at the OS interface queue.

9. An article, comprising:

a non-transitory storage medium having instructions that when executed by a computer cause the computer to:

statically allocate hardware resource pools to device drivers on a rigid basis during initialization of the data processing system; and

dynamically alter at least one of the allocated hardware resource pools to the corresponding device driver during run-time, wherein the dynamically altering comprises:

determining whether a hardware throughput during the run-time is less than or equal to a hardware throughput threshold value;

if so, determining whether a number of input/outputs (I/Os) waiting at an operating system (OS) interface queue during the run-time is greater than or equal to a predetermined number; and

if the number of I/Os waiting at the OS interface queue during the run-time is greater than or equal to the predetermined number, dynamically increasing the at least one allocated hardware resource pool to the corresponding device driver.

10. The article of claim 9 , wherein the instructions when executed cause the computer to further:

if the hardware throughput during the run-time is not less than or equal to the hardware throughput threshold value, then determine whether the number of I/Os waiting at the OS interface queue during the run-time is greater than or equal to the predetermined number;

if so, inform an OS layer to regulate I/Os.

11. The article of claim 9 , wherein the instructions when executed cause the computer to further:

if the number of I/Os waiting at the OS interface queue during the run-time is not greater than or equal to the predetermined number, then determine whether a hardware pool utilization during the run-time is below or equal to a predetermined hardware pool utilization threshold value;

if so, dynamically decrease the at least one allocated hardware resource pool to the corresponding device driver.

12. The article of claim 9 , wherein the number of I/Os waiting at the OS interface queue is an average number of I/Os waiting at the OS interface queue.

13. A system, comprising:

at least one processor;

a plurality of device drivers executable on the at least one processor, wherein each device driver is coupled between an operating system (OS) interface pool and associated interface hardware, wherein at least a given one of the plurality of device drivers comprises:

a device driver resource management module for statically allocating a hardware resource pool to the given device driver on a rigid basis during initialization, and wherein the device driver resource management module is configured to dynamically alter the allocated hardware resource pool to the given device driver during run-time, the dynamically altering comprising:

determining whether a hardware throughput of hardware associated with the given device driver is below a throughput threshold during run-time;

in response to the hardware throughput being below the throughput threshold, determining whether a number of input/outputs (I/Os) at an operating system (OS) interface queue exceeds a predetermined number; and

in response to determining that the number of I/Os at the OS interface queue exceeds the predetermined number, dynamically increasing the allocated hardware resource pool during the run-time.

14. The system of claim 13 , wherein if the device driver resource management module determines that the number of I/Os at the OS interface queue during the run-time exceeds the predetermined number in response to the hardware throughput during the run-time not being below the throughput threshold, the device driver management module is configured to inform an OS layer to regulate I/Os.

15. The system of claim 13 , wherein if the device driver resource management module determines that an average hardware pool utilization during the run-time is below or equal to a predetermined hardware pool utilization threshold in response to the number of I/Os at the OS interface queue during the run-time not exceeding the predetermined number the device driver resource management module is configured to dynamically decrease the allocated hardware resource pool to the given device driver.

16. The system of claim 13 , wherein the number of I/Os at the OS interface queue is an average number of I/Os at the OS interface queue.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 058897/0262 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →