I/O Driver Latency Binning via High-Resolution Clock Ticks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional I/O drivers face limitations in measuring I/O request latency due to the coarse resolution of standard clocks, which results in a lack of granularity and failure to record meaningful performance data for shorter latencies, leading to inefficient use of kernel memory.

Innovation Solution

The technique involves obtaining the tick size of a high-resolution clock and setting the boundaries of I/O latency buckets in terms of high-resolution clock ticks, allowing for more precise latency measurements without the need for unit conversion or resource-intensive arithmetic, thereby addressing the need for higher resolution and variability across different systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If standard low-resolution clocks are used for latency measurement, then device compatibility is maintained, but measurement precision deteriorates

Engineering Contradiction:
Improvelatency measurement precisionVSAvoidcompatibility across different systems
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent changes the parameter of clock resolution from standard low-resolution (millisecond range) to high-resolution (nanosecond or picosecond range) clocks. This parameter change directly improves latency measurement precision while the patent addresses compatibility concerns through dynamic boundary adjustment mechanisms that adapt to different clock characteristics across systems.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If latency bucket boundaries are set using fixed time values, then measurement simplicity is maintained, but adaptability to different clock resolutions deteriorates

Engineering Contradiction:
Improveadaptability to different clock resolutionsVSAvoidcomplexity of boundary calculation
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies dynamics by making the latency bucket boundaries adaptive rather than fixed. The boundaries are dynamically calculated based on the actual clock resolution of the system, allowing the same software to work across different hardware platforms. This dynamic adjustment resolves the contradiction between adaptability and complexity by using a systematic approach to generate appropriate boundaries for each system.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of bucket boundaries from fixed time values to values derived from actual clock ticks. This parameter change enables the system to adapt to different clock resolutions while maintaining a consistent methodology for boundary calculation, thereby achieving adaptability without excessive complexity.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If high-resolution latency measurements are implemented, then measurement precision is improved, but computational overhead increases

Engineering Contradiction:
Improvelatency measurement precisionVSAvoidcomputational energy consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary action by pre-calculating latency bucket boundaries based on clock resolution before actual latency measurements are performed. This pre-computation approach allows the system to use simple comparisons during runtime rather than performing complex calculations for each measurement, thereby reducing computational overhead while maintaining high measurement precision.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9092143B1Dynamic assignment of time interval bins
Publication Date: 2015.07.28 EMC IP HLDG CO LLC
  • US9092143B1 patent drawing
  • US9092143B1 patent drawing
  • US9092143B1 patent drawing

AI summary

An improved technique for measuring I/O latency in an I/O driver of a host computing system includes obtaining the tick size of a high resolution clock of the host and setting the boundaries of I/O latency buckets at different calculated numbers of high resolution clock ticks. The I/O latency buckets are used for binning latency measurements made by the I/O driver. The boundaries of the I/O latency buckets are expressed as numbers of high resolution clock ticks and correspond to a sequence of predetermined time values. At runtime, the I/O driver measures the latency of I/O requests using timestamps obtained from the high resolution clock. The latency measurements are expressed as numbers of elapsed ticks. The I/O driver then assigns measured latency values to data buckets by comparing ticks to ticks, without the need for unit conversion or resource-intensive arithmetic.