Spanned Virtual Disk Initialization via Dynamic Controller Counting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing information handling systems face challenges in initializing spanned virtual disks with a dynamic number of storage controllers, leading to potential boot failures and data loss due to uncertainties in determining the number of physical storage devices available for virtual disk creation.

Innovation Solution

Implementing a filter driver that enumerates a PCI/PCIe device tree to count supported storage controllers, using a serial number for unique identification, and maintaining an ignore list to adjust for driver installations/uninstallations, ensuring accurate determination of physical storage devices before virtual disk creation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the system attempts to initialize a spanned virtual disk before determining the exact number of storage controllers, then the initialization process can start earlier, but the system may encounter boot failures and data loss due to uncertainty in the number of physical storage devices

Engineering Contradiction:
Improvevirtual disk initialization speedVSAvoidboot reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The filter driver performs preliminary actions by enumerating the PCI/PCIe device tree and counting storage controllers before the spanned virtual disk initialization process begins. This preliminary counting ensures that the initialization waits for all storage devices to be available, preventing boot failures while still enabling early startup once the count is confirmed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The filter driver acts as an intermediary between the storage miniport driver and the physical storage devices. It intercepts the initialization process, performs the device tree enumeration and controller counting, and only then allows the virtual disk initialization to proceed. This intermediary role resolves the contradiction by mediating between early initialization desires and reliability requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If the system uses a fixed method to count storage controllers without accounting for driver installations/uninstallations, then the counting process is simpler, but the count may be inaccurate leading to initialization failures

Engineering Contradiction:
Improvecounting process complexityVSAvoidstorage controller count accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The filter driver implements feedback by monitoring the installation and uninstallation of storage miniport drivers. When a driver is installed or uninstalled, the filter driver receives notification and recalculates the count of storage controllers by re-enumerating the device tree. This feedback mechanism ensures the count remains accurate without requiring complex manual intervention.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The filter driver performs self-service by automatically detecting driver installation/uninstallation events and adjusting the storage controller count accordingly. It maintains an internal state of the device tree and autonomously updates its counting logic without external intervention, balancing simplicity with accuracy.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If the system enumerates the entire PCI/PCIe device tree to count storage controllers, then the count is accurate, but the process takes more time and consumes more resources

Engineering Contradiction:
Improvestorage controller count accuracyVSAvoidinitialization time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The filter driver performs the device tree enumeration as a preliminary action during system startup, before the spanned virtual disk initialization begins. By completing the enumeration early and caching the results, the system achieves accurate counting without delaying the subsequent initialization process, thus reducing perceived initialization time while maintaining precision.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The filter driver performs a complete device tree enumeration (excessive action) initially to ensure accuracy, but then uses cached results for subsequent counting operations. This approach accepts the one-time resource cost of full enumeration while avoiding repeated expensive operations, effectively reducing overall initialization time while maintaining measurement precision.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12461879B2Spanned virtual disk initialization with dynamic number of storage controllers
Publication Date: 2025.11.04 DELL PROD LP
  • US12461879B2 patent drawing
  • US12461879B2 patent drawing
  • US12461879B2 patent drawing

AI summary

An information handling system generates a tree of peripheral component interconnect devices of the information handling system, and determines a count of storage controllers supported by a storage miniport driver based on the tree of the peripheral component interconnect devices. If a list of uninstalled miniport drivers is not empty, then the system deducts a number of the uninstalled miniport drivers in the list from the count of the storage controllers resulting in a final count of the storage controllers that are supported by the storage miniport driver.