User-Space Poller for NVMe-oF Multi-Protocol Transport Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current NVMe-oF systems face challenges in providing reliable service across multiple transports due to kernel module instability, leading to potential delays and malfunctions that can affect the entire operating system, especially when transport protocols like RDMA and TCP are not stable.

Innovation Solution

Implementing a user space solution with a single polling group that manages NVMe-oF services across different transports, such as RDMA, TCP, Fibre Channel, and others, to ensure service reliability and quality of service by dynamically switching between transports and using a shared buffer pool for resource management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If kernel modules are used to manage multiple transport protocols, then service management capability is improved, but system stability deteriorates due to kernel module instability

Engineering Contradiction:
Improveservice management capabilityVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent extracts the transport protocol management functionality from the kernel space and places it in user space. The poller and buffer pool manager operate as user-space processes, separating the unstable kernel module dependencies from the transport management logic. This allows the system to maintain multi-protocol support while avoiding kernel module instability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a user-space poller as an intermediary layer between the kernel network stacks and the NVMe-oF service. This poller acts as a mediator that handles protocol-specific operations without requiring kernel module changes, thus maintaining stability while providing adaptability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple transport protocols are supported simultaneously, then service versatility is improved, but resource contention increases

Engineering Contradiction:
Improveservice versatilityVSAvoidresource contention
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges the resource management of multiple transport protocols into a single shared buffer pool. Instead of maintaining separate buffers for each protocol, the system uses one pooled buffer that all transport protocols can access, reducing resource fragmentation and contention while maintaining versatility.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared buffer pool is designed to serve multiple transport protocols universally. The same buffer infrastructure handles RDMA, TCP, and other protocols, eliminating the need for protocol-specific buffer management and reducing overall system complexity.

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

3Productivity

If kernel space processing is used for transport protocols, then processing power is improved, but system reliability worsens due to potential OS malfunctions

Engineering Contradiction:
Improveprocessing powerVSAvoidsystem reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the processing workload by separating kernel-space network stack operations from user-space transport protocol handling. The poller runs in user space with direct access to hardware resources, maintaining high processing power while isolating potential failures from the kernel and improving system reliability.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11748278B2Multi-protocol support for transactions
Publication Date: 2023.09.05 INTEL CORP
  • US11748278B2 patent drawing
  • US11748278B2 patent drawing
  • US11748278B2 patent drawing

AI summary

Examples described herein relate to executing a poller to poll for received communications over multiple transport layer protocols from a connection to identify a received communication from one of the multiple transport layer protocols and identify a second received communication from a different one of the multiple transport layer protocols. A change to the different one of the multiple transport layer protocols occurs in response to failure of the one of the multiple transport layer protocols or slow transport rate using the one of the multiple transport layer protocols. In some examples, the poller is executed in user space and transport layer protocol processing of the received communication and second received communication occur in kernel space.