Context-Aware NVMe Packet Processing for Predictable Virtualized Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current virtual switching technologies do not provide predictable NVMe access latency and memory bandwidth, leading to performance bottlenecks that hinder the full utilization of NVMe and NVMe over Fabric performance in virtual environments.

Innovation Solution

Implementing context-aware packet handling and virtual switching (VS) queues in the kernel space, using eBPF programs, to manage NVMe requests and optimize packet processing, including packet creation, ordering, and batching, with smart NICs offloading processor tasks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If virtual switching is implemented to improve distributed memory configuration and scalability, then system flexibility and cost are improved, but NVMe access latency becomes unpredictable and performance bottlenecks occur

Engineering Contradiction:
Improvesystem flexibilityVSAvoidNVMe access latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments NVMe packet processing by creating separate virtual switch queues for different applications and workloads. This segmentation allows independent management of packet flows, enabling predictable latency for each application while maintaining overall system flexibility through virtual switching.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary actions by pre-configuring virtual switch queues and packet routing rules in the kernel space before NVMe operations begin. This pre-configuration ensures that packets are routed efficiently without requiring real-time decision-making, thereby reducing latency while preserving virtualization flexibility.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If virtual switching is used to reduce system cost and improve scalability, then device complexity is reduced, but NVMe performance utilization is hindered

Engineering Contradiction:
Improvesystem costVSAvoidNVMe performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent introduces an intermediary layer in the kernel space that mediates between virtual switching and NVMe operations. This intermediary optimizes packet handling specifically for NVMe workloads, ensuring high performance utilization while maintaining the cost-effectiveness and scalability of virtual switching infrastructure.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes key processing parameters by implementing context-aware packet handling that adjusts routing and queue management based on application requirements. This dynamic parameter adjustment enables NVMe performance optimization without requiring complex hardware changes, maintaining cost efficiency.

Inventive Principle:
Principle #35Parameter changes

3Speed

If context-aware packet handling is implemented to reduce latency, then NVMe access speed is improved, but processing complexity increases

Engineering Contradiction:
ImproveNVMe access speedVSAvoidprocessing complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where the kernel space automatically manages packet routing and queue allocation based on application context. This automation reduces the need for complex external control systems while achieving low-latency NVMe access through intelligent, context-aware packet handling.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12452189B2Context-aware NVMe processing in virtualized environments
Publication Date: 2025.10.21 WESTERN DIGITAL TECHNOLOGIES INC
  • US12452189B2 patent drawing
  • US12452189B2 patent drawing
  • US12452189B2 patent drawing

AI summary

A node includes a shared memory for a distributed memory system on a network. A Non-Volatile Memory express (NVMe) request is received from a user space application executed by a Virtual Machine (VM) to send an NVMe command to a different node in the network. If a data size for the NVMe request exceeds a maximum segment size of an NVMe over Fabric (NVMe-oF) connection, packets are created to be sent for the NVMe request and an order is determined for sending the packets with one or more packets including data for the NVMe command being sent before a last packet that includes the NVMe command. In another aspect, Virtual Switching (VS) queues are created in a kernel space with each VS queue corresponding to a different respective user space application initiating requests and at least one user space application being executed by one or more other nodes.