NVMeoF TCP Socket Processing via Character Device

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing NVMeoF TCP transport driver consumes high CPU resources, leading to performance bottlenecks due to the high CPU affinity requirements for software interrupts and kernel threads, which can result in inefficient use of CPU cycles and suboptimal performance for storage applications.

Innovation Solution

The method involves exposing a character device with a callback that iterates over NVMeoF/TCP sockets, allowing the storage management application to utilize free CPU cycles by adding sockets to a waiting list and processing them through an IOCTL callback, thereby reducing the need for the soft-irq to wake up a kthread for processing, and allowing the frontend CPU cores to handle only soft-irqs, thus optimizing CPU core allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the NVMeoF TCP transport driver uses traditional CPU-intensive processing for NVMeoF/TCP sockets, then the processing capability is sufficient, but the CPU resource consumption is high and performance is limited

Engineering Contradiction:
Improveprocessing capabilityVSAvoidCPU resource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the socket processing task from the traditional CPU-intensive kernel thread model and moves it to user-space application threads. The character device interface allows user-space applications to directly process NVMeoF/TCP sockets, eliminating the need for kernel threads to continuously poll or be interrupted for socket processing, thus reducing CPU resource consumption while maintaining processing capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent enables user-space applications to self-service the socket processing by providing them with direct access to NVMeoF/TCP sockets through the character device interface. Applications can independently manage and process sockets without requiring kernel thread intervention, allowing them to utilize free CPU cycles efficiently and reduce overall system CPU overhead.

Inventive Principle:
Principle #25Self-service

2Reliability

If software interrupts frequently wake up kernel threads for socket processing, then sockets are processed timely, but CPU core requirements increase and performance decreases

Engineering Contradiction:
Improvesocket processing timelinessVSAvoidIOPS performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent removes the dependency between software interrupts and kernel thread wake-ups for socket processing. By exposing sockets through a character device to user-space applications, the system eliminates the need for interrupts to trigger kernel thread activations, thereby reducing CPU core requirements and improving IOPS performance while maintaining processing timeliness through user-space event handling.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If the system allocates dedicated CPU cores for frontend stack processing, then processing reliability is ensured, but CPU utilization efficiency decreases

Engineering Contradiction:
Improveprocessing reliabilityVSAvoidCPU utilization efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent transforms the static CPU core allocation model into a dynamic one where user-space applications can flexibly utilize available CPU cycles. Instead of dedicating specific CPU cores to the frontend stack, the system allows applications to dynamically process sockets using free CPU cycles across multiple cores, improving CPU utilization efficiency while maintaining processing reliability through the character device interface and atomic state management.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent makes CPU cores multi-functional by allowing them to serve both traditional kernel tasks and NVMeoF/TCP socket processing through user-space applications. The character device interface enables any user-space application to access and process sockets, making the CPU resources universally applicable to multiple functions simultaneously, thereby improving overall CPU utilization efficiency without sacrificing processing reliability.

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

Data Source

PatentUS11606437B2System and method for boosting up performance of NVMe-TCP transport
Publication Date: 2023.03.14 EMC IP HLDG CO LLC
  • US11606437B2 patent drawing
  • US11606437B2 patent drawing
  • US11606437B2 patent drawing

AI summary

A method, computer program product, and computer system for using, by a computing device, free central processing unit (CPU) cycles for processing Non-Volatile Memory express Over Fiber (NVMeoF)/Transmission Control Protocol (TCP) sockets. Using the free CPU cycles for processing the NVMeoF/TCP sockets may include exposing a character device with a callback that iterates over the NVMeoF/TCP sockets for processing.