]> git.ipfire.org Git - thirdparty/postgresql.git/commit
pg_test_timing: Show additional TSC clock source debug info
authorAndres Freund <andres@anarazel.de>
Sat, 16 May 2026 15:51:34 +0000 (11:51 -0400)
committerAndres Freund <andres@anarazel.de>
Sat, 16 May 2026 15:51:34 +0000 (11:51 -0400)
commit5ba34f6dc838a1bc4415dc179be5bb2cf3b6d549
tree414ec1ccde93bddf622a04f3f4d13f277cd5b556
parentaa1f93a3387ad619c14cea2b8ed01e6f49cb6600
pg_test_timing: Show additional TSC clock source debug info

In some cases its necessary to understand whether TSC frequency data was
sourced from CPUID, and which of the registers. Show this debug info at
the end of pg_test_timing, and rework TSC functions to support that.

This would have helped debug the buildfarm report fixed in 7fc36c5db550
and is likely going to aid in any TSC-related issues reported during the
beta period or later.

Additionally, emit a warning if TSC frequency from calibration differs
by more than 10% from the TSC frequency in use, and suggest the use
of timing_clock_source = 'system'.

In passing, add an explicit early return in the output function if the
loop count is zero. This can't happen in practice, but coverity complained
because we unconditionally call output for the fast TSC measurement.

Author: Lukas Fittl <lukas@fittl.com>
Suggested-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Haibo Yan <tristan.yim@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> (coverity fix only)
Discussion: https://postgr.es/m/CAP53Pkw3Gzb+KTF5pu_o7tzbfZ7+qm2m6uDWuGtTJjZpV9yNpg@mail.gmail.com
doc/src/sgml/ref/pgtesttiming.sgml
src/bin/pg_test_timing/pg_test_timing.c
src/common/instr_time.c
src/include/port/pg_cpu.h
src/include/portability/instr_time.h
src/port/pg_cpu_x86.c
src/tools/pgindent/typedefs.list