I/O Device Logging via Circular Buffers and Classifier Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Server computers face challenges in logging data from multiple I/O devices that share the same interface and present themselves as multiple virtual devices, complicating the logging of communication traffic due to asynchronous processing and shared channel usage.

Innovation Solution

Implementing a system with multiple circular buffers, each associated with virtual or physical I/O devices, where a classifier module routes traffic data elements to appropriate buffers based on headers or other criteria, maintaining state with head and tail pointers to track pending and completed elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple I/O devices share the same interface and present as multiple virtual devices, then device versatility and resource utilization are improved, but logging complexity and difficulty of detecting and measuring traffic data increase

Engineering Contradiction:
Improvedevice versatilityVSAvoidlogging complexity
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent segments the logging system by creating separate circular buffers for each I/O device or virtual function, with dedicated classifier rules that route traffic data elements to the appropriate buffer based on device identifiers in packet headers. This segmentation isolates the logging of each device's traffic stream, making it manageable despite the overall system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a classifier module as an intermediary between the network interface controller and the logging buffers. This classifier intercepts traffic data elements, examines headers to identify the source device or virtual function, and routes each element to the corresponding circular buffer. This intermediary layer simplifies the logging process by automatically directing traffic without requiring complex analysis of the underlying device sharing architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If asynchronous interfaces are used for communication between processor and I/O devices, then communication speed and productivity are improved, but logging accuracy and reliability deteriorate due to out-of-order processing

Engineering Contradiction:
Improvecommunication speedVSAvoidlogging accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by capturing and storing traffic data elements in circular buffers at the point of transmission, before asynchronous processing occurs. By logging the original transmission order and timing information in each buffer entry, the system preserves an accurate record of communication sequences even though the actual processing may occur out of order. This allows post-processing analysis to reconstruct the true communication timeline.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system incorporates feedback mechanisms where the classifier module continuously monitors incoming traffic data elements and updates the appropriate circular buffers in real-time. Each buffer maintains state information including head and tail pointers that track the current position in the buffer, providing feedback about the logging status. This continuous feedback ensures that the logging system adapts to the asynchronous nature of the communication while maintaining accuracy.

Inventive Principle:
Principle #23Feedback

3Reliability

If circular buffers with state pointers are used to log traffic data, then logging reliability is improved, but device complexity and memory usage increase

Engineering Contradiction:
Improvelogging reliabilityVSAvoidbuffer management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a universal circular buffer design that can serve multiple I/O devices and virtual functions through a standardized interface. Each buffer uses the same data structure with head and tail pointers, and the same classification and routing logic applies to all devices. This universal approach reduces overall system complexity by avoiding the need for custom logging mechanisms for each device, despite the increased number of buffers required.

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

Data Source

PatentUS10067741B1Systems and methods for I/O device logging
Publication Date: 2018.09.04 AMAZON TECH INC
  • US10067741B1 patent drawing
  • US10067741B1 patent drawing
  • US10067741B1 patent drawing

AI summary

Techniques are described for logging communication traffic associated with one or more devices. For example, a system bus or other interface to a device may be monitored for traffic data elements. The traffic data elements may include, for example, transaction layer packets (TLPs) for communication across a PCI Express interface, or Ethernet packets for communication over a network. The traffic data elements can be processed by a classifier module and accordingly routed to one of a plurality of circular buffers. The circular buffers may maintain state (e.g., a head pointer and a tail pointer) that identify traffic data elements that are pending and those that are completed. Thus, the circular buffers can be inspected (such as after a crash) to determine recent activity.