I/O Queue Context Saving for Kernel Bypass Deadlocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor environments, existing kernel bypass technologies face challenges in ensuring reliability and performance of I/O processing due to synchronization issues between I/O waiting threads and completion notification threads, leading to potential deadlocks and delays caused by context saving and locking mechanisms.

Innovation Solution

An information processing device that includes a request queue and a response queue, where the I/O waiting thread saves its context before writing requests and switches threads, ensuring reliable context saving and restoration, thereby avoiding synchronization-related abnormalities and improving performance by using a thread switching function that follows ABI conventions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If kernel bypass technology is used with I/O waiting thread and completion notification thread operating on different cores, then I/O throughput is improved, but system reliability deteriorates due to potential deadlocks and abnormal situations

Engineering Contradiction:
ImproveI/O throughputVSAvoidsystem reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by saving the context of the I/O waiting thread before it writes the I/O request to the request queue. This ensures that the context is captured at a known good state, preventing the deadlock scenario where the thread might be in an inconsistent state when the completion notification thread tries to restore it. The context saving occurs at a predetermined timing point before the I/O operation begins.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If context is saved before writing I/O request, then thread restoration reliability is improved, but processing time increases due to additional context saving operations

Engineering Contradiction:
Improvethread restoration reliabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The context is saved in advance before the I/O request is written to the queue, so that when the completion notification occurs, the restoration can proceed immediately without additional delays. This preliminary capture of the thread state eliminates the need for repeated context saving operations during the I/O wait period.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple CPUs are used for parallel I/O processing, then I/O throughput is improved, but synchronization complexity increases leading to potential deadlocks

Engineering Contradiction:
ImproveI/O throughputVSAvoidsynchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

By saving the I/O waiting thread's context before the I/O operation starts, the patent eliminates the need for complex synchronization mechanisms during the parallel processing. The completion notification thread can safely restore the context without worrying about race conditions or deadlocks, as the context represents a known good state captured beforehand.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11640246B2Information processing device, control method, and computer-readable recording medium storing control program
Publication Date: 2023.05.02 FUJITSU LTD
  • US11640246B2 patent drawing
  • US11640246B2 patent drawing
  • US11640246B2 patent drawing

AI summary

An information processing device includes: a request queue that stores a request for IO processing; a response queue that stores a response that makes notification of completion of the IO processing; an IO device that obtains the request from the request queue, executes the IO processing instructed by the obtained request, and stores the response in the response queue after the completion of the IO processing; a first processing unit that writes a request to the request queue after saving context that is information that indicates an operation state of the first processing unit; and a second processing unit that polls the response queue, detects storage of the response in the response queue, obtains the response from the response queue, and notifies the first processing unit of the completion of the IO processing.