Flexible Device Driver Resource Allocation via Dynamic Pool Adjustment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Device drivers often face inefficiencies due to pre-allocated shared memory resources that can lead to under-utilization or over-subscription, resulting in suboptimal bandwidth utilization and I/O throughput, especially during varying I/O patterns.

Innovation Solution

A system and method for dynamically allocating device driver resources based on real-time parameters such as hardware throughput and average pool utilization, allowing for adjustment of shared memory pools to match changing I/O demands, thereby optimizing resource usage and system performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If fixed pre-allocated shared memory resources are used during initialization, then device driver stability and simplicity are improved, but resource utilization efficiency deteriorates due to under-utilization or over-subscription during varying I/O patterns

Engineering Contradiction:
Improvedevice driver stabilityVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic resource allocation by allowing device drivers to allocate shared memory resources from a system pool at runtime based on actual I/O demands, rather than using fixed pre-allocated resources. This enables the system to adapt resource allocation to varying workloads, improving both utilization efficiency and maintaining stability through controlled allocation mechanisms

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the allocation parameters of shared memory resources from fixed values determined at initialization to dynamic values that adjust based on runtime conditions. The device driver can request and receive additional resources or release excess resources, changing the resource allocation parameters to match actual I/O patterns and improve overall system efficiency

Inventive Principle:
Principle #35Parameter changes

2Productivity

If larger shared memory pools are allocated to handle peak I/O demands, then I/O throughput during spikes is improved, but bandwidth utilization deteriorates due to under-utilization during normal operation

Engineering Contradiction:
ImproveI/O throughput during peak demandVSAvoidbandwidth utilization efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent enables dynamic adjustment of shared memory pool sizes based on runtime I/O demands. During peak demand periods, the device driver can allocate additional resources to maintain high I/O throughput, while during normal operation, excess resources are released back to the system pool, ensuring optimal bandwidth utilization without permanent over-allocation

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback mechanisms where the device driver monitors I/O patterns and resource utilization, and adjusts shared memory allocation accordingly. This feedback loop ensures that resources are scaled to match actual demand, preventing both over-provisioning during low utilization and under-provisioning during peak demands

Inventive Principle:
Principle #23Feedback

3Productivity

If aggregation of hardware resource pools across different device drivers is attempted, then overall system resource efficiency is improved, but device driver complexity increases due to scattered data structures

Engineering Contradiction:
Improvesystem resource efficiencyVSAvoiddata structure management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent maintains segmentation of resource pools by device driver while enabling dynamic allocation from a shared system pool. Each device driver manages its own allocated resources independently, avoiding the complexity of aggregated scattered data structures, while still achieving system-wide resource efficiency through the underlying pool sharing mechanism

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements a universal shared memory pool that serves multiple device drivers, allowing resources to be dynamically allocated to any driver that needs them. This universal pool approach achieves system-wide resource efficiency without requiring complex aggregation of scattered data structures across different drivers

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9389921B2System and method for flexible device driver resource allocation
Publication Date: 2016.07.12 HEWLETT PACKARD ENTERPRISE DEV LP
  • US9389921B2 patent drawing
  • US9389921B2 patent drawing
  • US9389921B2 patent drawing

AI summary

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.