Session

Making Time Uncertainty a First-Class Concept in Linux Timing

Instructors

Maciek Machnikowski

Label

Moonshot

Session Type

Tutorial

Description

This talk presents time uncertainty as a key aspect of modern timekeeping systems. Instead of viewing timestamps as precise points, it treats them as intervals with a quantified margin of error and highlights the advantages of explicitly calculating an uncertainty window. This approach enables applications to evaluate temporal correctness explicitly, without relying on implicit assumptions about accuracy.

The presentation explores how uncertainty arises in real-world scenarios - from clock synchronization offsets, network delay variations, hardware timestamping methods, to kernel-to-user-space transfer paths - and demonstrates that neglecting these factors can lead to errors in determining order, causality, and compliance.

It then describes a model implementation of a time-uncertainty daemon and reviews the capabilities of existing Linux kernel APIs. While some data needed for uncertainty estimation (e.g., frequency offset) are available, essential elements such as oscillator stability and the “staleness” of clock calibration data are not. Hence, precise uncertainty estimation today depends on manual configuration and hardware-specific knowledge.