Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc?

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Lukas Fittl <lukas@fittl.com>
Cc: Andres Freund <andres@anarazel.de>, pgsql-hackers <pgsql-hackers@postgresql.org>, David Geier <geidav.pg@gmail.com>, Pavel Stehule <pavel.stehule@gmail.com>, vignesh C <vignesh21@gmail.com>, Ibrar Ahmed <ibrar.ahmad@gmail.com>, Maciek Sakrejda <m.sakrejda@gmail.com>, Tomas Vondra <tomas@vondra.me>
Date: 2025-07-28T06:38:20Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. pg_test_timing: Also test RDTSC[P] timing, report time source, TSC frequency

  2. Allow retrieving x86 TSC frequency/flags from CPUID

  3. instrumentation: Standardize ticks to nanosecond conversion method

  4. instrumentation: Use Time-Stamp Counter on x86-64 to lower overhead

  5. Zero initialize uses of instr_time about to trigger compiler warnings

  6. instr_time: Represent time as an int64 on all platforms

  7. Add 250c8ee07ed to git-blame-ignore-revs

On Sun, Jul 27, 2025 at 12:50:54PM -0700, Lukas Fittl wrote:
> 0001 - Improve the __cpuidex check added for a different purpose
> in 792752af4eb5 to:
> 
> - Fix a typo (configure was incorrectly checking for "__get_cpuidex", vs
> meson.build was doing it correctly)

It seems to me that this is an independent issue that had better be
backpatched down to where this configure check has been introduced,
no?

> - Adds support for non-MSVC compilers as well (e.g. GCC 11+), where
> __cpuidex is defined in cpuid.h, not intrin.h

This one should be a HEAD-only change.
--
Michael