Non-disruptive Driver Upgrade via Module Cutover
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing driver upgrade processes require system reboot and application restart, disrupting system operations and being undesirable in terms of impact on system operation.
Innovation Solution
A method for upgrading drivers that involves installing a driver with an upgrade facility, loading upgrade modules, and performing cutover processing to switch from the old to the new driver configuration tree and stack, allowing seamless I/O operations without disrupting applications by suspending and resuming operations on a device-by-device basis.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a driver upgrade is performed using traditional methods, then the driver functionality is updated to a new version, but the system requires reboot and applications must be stopped and restarted, causing disruption to system operation
Solution Approach 1:
The driver is segmented into multiple loadable modules (base driver module and extension modules) that can be independently loaded and unloaded. This segmentation allows the system to upgrade driver functionality by loading new modules without requiring a system reboot, as each module can be updated independently while the overall driver structure remains functional.
Solution Approach 2:
The driver architecture implements dynamic loading and unloading of modules during system operation. The upgrade facility enables modules to be loaded, replaced, or unloaded at runtime without stopping the driver or requiring system reboot. This dynamic capability allows continuous system operation while driver functionality is updated, resolving the contradiction between reliability improvement and productivity maintenance.
2Reliability
If driver extension modules are upgraded, then the driver is updated to a new version, but applications utilizing the driver must be stopped and restarted to use the upgraded driver
Solution Approach 1:
The upgrade facility performs preliminary actions by loading upgraded extension modules into memory before applications need to use them. The system prepares the new driver modules in advance, registers them with the driver, and makes them available for immediate use without requiring application restart. This preliminary preparation eliminates the need for application downtime during driver upgrades.
Solution Approach 2:
The driver architecture introduces an intermediary upgrade facility that acts as a mediator between the upgraded extension modules and the running applications. This facility manages the module loading, replacement, and unloading processes, allowing applications to continue operating while the driver modules are updated in the background. The intermediary mechanism decouples the module upgrade process from application execution, eliminating the need to stop applications.
3Reliability
If a system reboot is performed to use the upgraded driver, then the driver upgrade is completed, but system operation is interrupted
Solution Approach 1:
The driver upgrade facility implements self-service capability by automatically managing the entire upgrade process without requiring system reboot. The facility handles module loading, registration, replacement, and unloading operations autonomously while the system continues to run. This self-service mechanism allows the driver to upgrade itself and its modules without external intervention or system interruption, maintaining ease of operation while completing the upgrade.
Data Source
AI summary
Described are techniques for upgrading a driver. A driver is installed which includes an upgrade facility, a base driver and a first set of one or more driver extension modules for processing input/output operations for one or more devices. Processing is performed to upgrade the driver using the upgrade facility. The processing includes loading one or more upgrade modules associated with a second version of said driver and performing cutover processing for each of the one or more devices.


