From 153c9edfe9f1beb12395e6e7e592fce03ba9cc17 Mon Sep 17 00:00:00 2001 From: janwas Date: Sun, 24 Jun 2007 00:19:03 +0000 Subject: [PATCH] add timing docs This was SVN commit r5212. --- docs/timing_pitfalls.pdf | Bin 0 -> 174493 bytes docs/timing_pitfalls.tex | 198 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 198 insertions(+) create mode 100644 docs/timing_pitfalls.pdf create mode 100644 docs/timing_pitfalls.tex diff --git a/docs/timing_pitfalls.pdf b/docs/timing_pitfalls.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2688152ee7157164604afb70560f01461094a195 GIT binary patch literal 174493 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 NJ^Sjbmv3L4{RbiW-){f_ literal 0 HcmV?d00001 diff --git a/docs/timing_pitfalls.tex b/docs/timing_pitfalls.tex new file mode 100644 index 0000000000..92fd0212bb --- /dev/null +++ b/docs/timing_pitfalls.tex @@ -0,0 +1,198 @@ +\documentclass[a4paper,12pt,pdftex]{article} + +\usepackage[english]{babel} + +\usepackage[pdftex]{graphicx} +\usepackage{subfigure} +\usepackage{float} +\usepackage{wrapfig} + +\usepackage{parskip} + +\usepackage{natbib} +\bibpunct{[}{]}{;}{a}{}{,~} + +\usepackage[ +pdftitle={Timing Pitfalls and Solutions},pdfauthor={Jan Wassenberg}, +pdftex=true,pdfpagemode=UseOutlines, +colorlinks=true,linkcolor=black,filecolor=black,urlcolor=black,citecolor=black, +plainpages=false,hypertexnames=false,pdfpagelabels=true,hyperindex=true +]{hyperref} + + +\tolerance=1414 +\hbadness=1414 +\emergencystretch=1.5em +\hfuzz=0.3pt +\widowpenalty=10000 +\vfuzz \hfuzz +\raggedbottom + + +\newcommand{\id}[1]{\texttt{#1}} + +\hyphenation{Time-stamp} + +\begin{document} + +\title{Timing Pitfalls and Solutions} +\author{Jan Wassenberg} +\maketitle + +\begin{abstract} +The seemingly simple task of retrieving a high-resolution timestamp on PCs is fraught with peril. Various hardware and software defects can induce discontinuities in measured time, causing some applications to fail. After giving a brief overview of time sources in the PC architecture, this report explores their pitfalls and presents a high-resolution timing implementation that avoids falling into them. +\end{abstract} + +\section{Introduction} + +High-resolution timing is important for several applications. Profilers\footnote{Programs to find bottlenecks in other programs by analyzing their execution time.} depend on particularly fine-grained measurements so they can examine the performance of small sections of code. Interactive games require precise timestamps to enable smooth updates. Finally, multimedia applications also benefit from accurate timing to synchronize their audio and video streams. + +The ideal timer would be a high-resolution, low jitter, strictly increasing source of UTC timestamps. Of these properties, monotonicity is the most important, since many applications understandably cannot cope with their time reference running backwards. Conversely, exact synchronization of existing hardware counters to the time of day appears infeasible and even undesirable -- this issue is discussed in Appendix~\ref{sec:syncUTC}. In the following, emphasis will be placed on acquiring precise relative timestamps. + +How close can we come to reaching this goal on today's systems? Unix BSD derivatives provide the \id{gettimeofday} routine, which delivers a high-resolution rendition of the time that can easily be converted to UTC. The returned time values are not monotonic nor mostly continuous, but this capability is provided by the POSIX \id{clock\_gettime(CLOCK\_MONOTONIC)} facility\footnote{Although \id{CLOCK\_MONOTONIC} is specified as an optional feature, support for it is included in glibc 2.3.3, so it is expected to be widely available. \citep{clockMonotonicSupport}}, which meets all our needs. +On Windows, however, the situation is much worse. Due to documented bugs and the lack of a universal patch, the \id{QueryPerformanceCounter} high-resolution timer API cannot safely be used. On certain systems, only a timer with mere millisecond resolution is available, and even this is encumbered with the issue of falling behind over time. The need for further work to improve upon this miserable state of affairs is thus apparent. + +The remainder of this report is structured as follows: Section~\ref{sec:timingHardware} introduces the various hardware timers in the PC architecture. Section~\ref{sec:windowsApis} lists the Windows timing APIs that access them. Section~\ref{sec:pitfalls} goes on to explore their respective pitfalls. Section~\ref{sec:workarounds} presents possible workarounds that solve them. Section~\ref{sec:implementation} is concerned with notes pertaining to the implementation of these techniques. Section~\ref{sec:conclusion} then concludes the discussion with a summary of the results. + + +\section{PC Timing Hardware} +\label{sec:timingHardware} + +Due to incremental additions to the PC architecture, there are several hardware modules that can be used to obtain timestamps. For each of them (in order of adoption), we will see a brief overview of their functionality and disadvantages. + +\subsection{PIT} + +The 8254 Programmable Interval Timer was included in the original PC. At its heart are three 16-bit counters running at 1.19~MHz\footnote{To save costs, the original PC used a master 14.318~MHz oscillator and fed system components with various ratios of this frequency -- in this case, $1/12$.}. They are accessible at fixed addresses in I/O-space, but must be latched and then read as two single-byte values, which takes 3~$\mu$s -- the slowest of all the timers. Additionally, the narrow counter registers roll over too often to measure anything longer than 55~ms intervals. Instead, the PIT's utility lies in its ability to generate periodic interrupts. + +\subsection{RTC} + +The Real-Time Clock was added in XT 286 machines. It also includes a counter running at 32~kHz but does not provide for direct access. Instead, the chip uses the count to keep track of the time of day and also generate periodic interrupts. Its only use nowadays seems to be storing the local time in battery-buffered CMOS, which is then read during boot time and maintained by the OS. + +\subsection{PMT} + +The Power Management Timer was added as part of the ACPI standard. Its sole purpose is to deliver timestamps; improvements over the PIT are to be found in its higher frequency (3x), larger counter width (24 or 32 bits) and latch-free operation. It is accessed via 32-bit port I/O (at an address given in the ACPI \id{FACP} table), which only takes 0.7~$\mu$s. + +\subsection{TSC} + +The TimeStamp Counter has been available starting with fifth-generation CPUs (Pentiums) and represents a 64-bit count of elapsed CPU cycles since power-on. It can be retrieved with the \id{RDTSC} instruction, or by directly reading the model-specific\footnote{Note that this particular register will probably remain supported due to its widespread use.} register that holds it; both methods are extremely fast, on the order of dozens of CPU cycles. Since the CPU clock frequency is much higher than the that of the other hardware counters, a very fine resolution is attained. Unfortunately this is counterbalanced somewhat by the low quality of typical clock oscillators and their thermal drift. + +\subsection{HPET} + +The High-Precision Event Timer is a recent addition to the architecture, specified over 2001--2004 and present in ICH8-based chipsets. It was motivated by troubles with the TSC, the inadequacy of the PMT and the desire to replace the legacy PIT. The main components are a master 32 or 64-bit counter running at a frequency of at least 10~MHz (usually the 14.318~MHz source) and multiple comparator registers. Access is via memory-mapped I/O (at an address indicated by the ACPI \id{HPET} table), which is very convenient and also fast, taking 0.9~$\mu$s. + +\subsection{Others} + +There are some other esoteric ways to get the time, e.g.\ polling the DRAM refresh detect bit, but these aren't relevant here. +The interested reader is referred to \citep{HeidenstromTiming}. + + +\section{Windows time APIs} +\label{sec:windowsApis} + +Having introduced the underlying hardware, we now examine the multitude of Windows timing APIs, their overhead, and how they map to these time sources. The relevant functions are: +\begin{description} + \item[GTC] \id{GetTickCount} returns a counter incremented during every (PIT) clock interrupt. Overhead is 10~cycles (load, mul, shift). + \item[GSTAFT] \id{GetSystemTimeAsFileTime} is also updated during clock interrupts, but returns the system time (subject to NTP adjustment) in higher resolution units (hectonanoseconds). Each call takes 6~clocks (64-bit load/store + synchronization\footnote{The system time is mapped into process memory. GSTAFT must make sure it returns consistent results because the value can change at any time and 64-bit reads may not be atomic. This is done here by comparing against a second copy of the MSW, and reading again if it is different (avoids the need for a spin lock).}). + \item[TGT] \id{timeGetTime} is a third interrupt-based timer. Its resolution can be improved to 1~ms via \id{timeBeginPeriod} by speeding up the interrupt rate\footnote{Note that this comes at the price of system slowdown -- interrupt latency goes up and the CPU cache suffers. \citep{mm-timer} mentions offhand that 1000~Hz interrupt rates incur `serious' overhead, corroborated by findings of 14~\% indirect slowdown by \citet{failurePeriodicTimers}}. This function takes 40~cycles; I have not analysed what it does in detail. +\pagebreak + \item[QPC] \id{QueryPerformanceCounter} is the main platform-independent means of accessing hardware timers. The various versions of Windows differ in their choice of timer: PIT (Win2k), PMT (WinXP), HPET (Vista) or TSC (SMP HAL\footnote{Hardware Abstraction Layer for Symmetric MultiProcessing systems}). +\end{description} + +Note that C library functions such as \id{\_ftime} and \id{clock} are built on top of GSTAFT. + + +\section{Pitfalls} +\label{sec:pitfalls} + +What potential problems do applications face when using these functions? This discussion centers on the above APIs, but most issues are caused by hardware flaws and are therefore not specific to Windows. + +GTC and GSTAFT resolution is far too low -- the default 10 or 15~ms tick interval isn't enough to resolve individual frames in a game, not to mention far too coarse for profiling. + +TGT can fall behind over time due to delayed or lost clock interrupts\footnote{Interrupts can be lost during periods of heavy system load, which games tend to provoke.}. This is reported to have caused problems: +\begin{quote} +In retrospect, timeGetTime() slippage is almost certainly what is killing many networked games of StarTopia [..;] of course all our testing in the office was on mainly one or two very similar models of Dell, so we never saw this problem, even after many hours. Curse those hardware designers! + +\citet{tgtProb} +\end{quote} + +QPC has multiple potential issues, depending on which time source is in use: +\begin{description} + \item[PIT] Access latency is inconveniently high, causing undesirable overhead when used for profiling purposes. + \item[PMT] Timestamps can jump forward by several hundred ms during heavy PCI bus load. \citep{qpcJump} + \item[PMT] Results are undefined if the timer is not polled at least once every 4.6~seconds\footnote{The period of the underlying 24-bit counter with its 3.57~MHz frequency.}. This is caused by hardware bugs and/or incorrect software handling of counter overflow. + \item[TSC] \citet{msdnQPC} makes brief and vague mention of problems: +\begin{quote} +[Y]ou can get different results on different processors due to bugs in the basic input/output system (BIOS) or the hardware abstraction layer (HAL). +\end{quote} +This is because TSCs do not start counting at the same time (due to staggered boot-time processor initialization), nor do they run at the same rate (due to independent throttling of cores). Unfortunately, Windows apparently does not take the requisite measures to guarantee synchronization. +\end{description} + +None of the timer APIs are free of potential problems, so we must consider workarounds. + +\section{Workarounds} +\label{sec:workarounds} + +There are two principal ways to work around potentially incorrect timers. The first is to consult three or more independent timers and ensure they agree on the time. \citep{pcTimers} However, it is unclear what to do if the timers vote differently -- which one of them is to be considered correct? This problem is compounded by the fact that some timers may always return incorrect results (e.g.\ QPC using the TSC without proper safeguards). + +An alternative to consensus-based operation is to choose one single timer that is known to be safe on the current platform. This approach is preferable because it is more predictable and robust; however, it does require all potential problems to be known. For a full list of the issues that have been considered, see the extensive comments in the timer implementations' \id{IsSafe} routines. To choose the best possible safe timer, they are evaluated in order of finer resolution and lower measuring overhead. + +One additional measure must be taken: periodically polling the timer fixes the PMT wraparound problem mentioned above. As a bonus, this also allows frequency calibration (helpful to reduce the effects of thermal drift of the TSC timer). + +In summary, we rely on knowledge of existing bugs and limitations to choose a safe timer. + +\subsection{An unfortunate constellation} + +There exists one common combination of software and hardware where no safe high-resolution time source is available. Current dual-core systems fail to provide a synchronized TSC; capabilities such as an `invariant TSC' \citep{amdNote} and the RDTSCP instruction \citep{RdtscpPresentation} are coming into play, but not yet widespread. In the meantime, since Windows does not offer a ubiquitous software solution, the TSC is not reliable. In an unfortunate twist, it is precisely this timer that QPC uses on such dual-core platforms. One can force it to use the PMT by adding \id{/usepmtimer} to \id{boot.ini} \citep{qpcUsepmtimer}, but making changes to such a critical system file should not be asked of users. Finally, despite Microsoft having issued the HPET specification 5~years ago, support for it has not been patched into Windows XP and it is only available on Vista. + +These circumstances result in the moribund state of affairs that was previously described: on many systems today, only a mere millisecond-resolution timer is available. According to \citet{valveSurvey}, 93~\% of the participating systems are running Windows XP, and 22~\% have more than one processor or core. This large proportion cannot be ignored, so we will have to find a workaround for the above issue. + +\subsection{Solution: HPET} + +Instead of pursuing the very complex task of fixing all problems with the TSC, we take a step back and realize that dual-core systems are newer and often include support for the HPET. Developing a driver for it on Windows XP should resolve the above situation. Note that limited-permission user accounts have only become widespread with Windows Vista and this driver only needs to run on Windows XP. We can therefore preassume Administrator rights, which allow starting the driver at run-time to avoid the need for installation. + +Interfacing with the HPET only requires analyzing ACPI tables and accessing memory-mapped registers. It is thus sufficient to write a kernel-mode driver that maps physical memory to virtual addresses on behalf of the application. Since the remaining logic can run in user mode, the driver is simplified and the risk of a defect that crashes the entire OS is much reduced. + +\pagebreak +Since the \citet{hpetSpec} is quite clear, an additional description of its operation is deemed unnecessary. For further reference, see the straightforward implementation in \id{hpet.cpp}. + +\section{Implementation} +\label{sec:implementation} + +With the principles of our approach to safe high-resolution timing having been established, discussion now turns to various notes on its implementation. + +Recall that an update thread is required to prevent hardware counter overflow. This works by periodically latching the value and calculating the current time via ticks elapsed since then. How can these updates to the timer state be synchronized with calls to retrieve the time? It turns out that high-overhead and error-prone locks can be avoided with an approach similar to RCU. \citep{RCU} All timer state is maintained in a record and accessed via pointer. When the update thread becomes active, it linearizes\footnote{Makes an operation appear to happen in one instant, namely the linearization point.} the state change by first building a separate record and then atomically updating the pointer. State reads need only retrieve all fields and ensure an update did not occur during that time. Discarding previous state information is achieved by simply swapping the records every update; this avoids the thorny problem of freeing data that another thread may still be using. + +The timer interface is very simple. \id{whrt\_GetTime} returns the elapsed time since startup, conveniently given as double-precision floating-point values representing seconds. Assuming a reasonable timer frequency of 10~MHz (the minimum HPET tick rate), stored timestamps can span a continuously measured period of 28~years without any error, which indicates plenty of headroom. \id{whrt\_Resolution} gives the timer resolution, which allows choosing a minimum duration for calibration/delay loops (e.g.\ for measuring the CPU frequency) that will still provide a given accuracy. + +We note \id{DeviceIoControl}-based access to the PMT is much slower than \id{QueryPerformanceCounter} when it uses that source. The overhead is likely due to slower kernel entry (possibly not using \id{sysenter}) and a less direct path to the hardware. As a consequence, the PMT is only accessed directly if it is determined that QPC is unsafe. + + +\section{Conclusion} +\label{sec:conclusion} + +Timing on PCs is a surprisingly thorny task. Various known problems have been discussed and a serviceable solution found. The contribution of this work is a means of choosing and safely using the best available hardware timer, as well as to unlock the reliable HPET timer on Windows XP systems. It provides a stable time reference with a resolution of at least 0.1~$\mu$s. +Hopefully this discussion and the attached (Free) source code will help prevent further timing issues in games and elsewhere; pay it forward! + +Questions/comments/suggestions/bug reports are welcome.\\ +u9rkt@stud1.uni-karlsruhe.de (remove digits) + +\appendix + +\section{Synchronizing with time-of-day} + +\label{sec:syncUTC} + +The above discussion has yielded a precise high-resolution timer. Ideally, it should be accurate as well, i.e.\ disciplined to UTC: this would obviate separate timekeeping and synchronization schemes. + +One simple method of achieving this would be to let the timer free-run until it differs too much from the system time, and then bring them in line. However, this is unacceptable due to the possibility of observed time moving backwards -- timestamps must increase monotonically. + +A better method is to slew the timer frequency according to the current time difference with respect to UTC. The success of this method hinges on exact observations of the system time. Without OS support, the best we can do is rely on the assumption that GSTAFT and the scheduler are driven by the same clock, i.e.\ a high-priority thread wakes up immediately after an update to the system time.\footnote{Polling for the start of the next tick is unacceptable because it would incur worst-case delays of 10~ms.} Given the now hopefully exact system time, we must build a stable phase-lock loop that converges on it, and doesn't overshoot too much / bounce back and forth. \citep{precTime} The central task is finding an error correction function $h(\Delta) \mapsto \mathrm{slew}$. The simple method given in \citep{tclTimer} is a p-controller \footnote{Proportional: $\mathit{adjust} = \mathit{gain} \times \mathit{error}$. A typical example is a float regulator. Disadvantages: depending on gain, it either doesn't track the signal rapidly, or it is unstable, and diverges. Also, if slightly above/below the target value, it will never correct the difference, because its adjust goes to 0.} with clamped maximum adjustment. In my tests, its gain was way too high, and it was bouncing back and forth at the maximum allowed adjustment value. A PID controller \footnote{P, and Integral / Differential parts. I sums up previous error values, so that slight offsets can be corrected. D sees a `trend' early and adjusts for it, thereby tracking the signal more rapidly.} is more suitable: the timer can be kept within several $\mu$s (!) of the system time. + +In retrospect, however, it is unclear whether conjoining high-resolution timestamps and the time of day is actually desirable. Many uses of system time (e.g.\ recording file modification times) usually do not need to be high-resolution. Conversely, high-resolution time applications (e.g.\ profilers) do not require synchronization or freedom from long-term drift. In fact, saddling the timer with time-of-day anomalies may degrade the value of the timestamps due to non-uniform updates. Finally, it has been observed that the system time had not yet been updated after thread wakeup\footnote{Speculation: does this happen in a DPC?}, thus violating the central assumption above. Therefore, we keep the timer separate from UTC and transfer the responsibility of synchronizing clocks to users who actually need this feature. + +\phantomsection +\addcontentsline{toc}{section}{References} +\bibliographystyle{dinat} +\bibliography{references} + +\end{document}