Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc?

David Geier <geidav.pg@gmail.com>

From: David Geier <geidav.pg@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>, Álvaro Herrera <alvherre@kurilemu.de>
Cc: Lukas Fittl <lukas@fittl.com>, Andres Freund <andres@anarazel.de>, pgsql-hackers <pgsql-hackers@postgresql.org>, Pavel Stehule <pavel.stehule@gmail.com>, vignesh C <vignesh21@gmail.com>, Michael Paquier <michael@paquier.xyz>, Ibrar Ahmed <ibrar.ahmad@gmail.com>, Maciek Sakrejda <m.sakrejda@gmail.com>, Tomas Vondra <tomas@vondra.me>
Date: 2025-12-03T09:50:15Z
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

Attachments

On 19.11.2025 08:20, David Geier wrote:
> 
> On 20.10.2025 21:59, Robert Haas wrote:
>> On Sun, Oct 19, 2025 at 2:16 PM Álvaro Herrera <alvherre@kurilemu.de> wrote:
>>> If I were
>>> a consultant trying to understand a customer's system, I would have to
>>> ask them to run it twice just in case 'fast' is supported, and I don't
>>> think that's very helpful.
>>
>> Big +1 from me.
>>
> 
> That makes sense. I'm planning to rebase the patch the next days. Then
> I'll also take care of that.

The attached patched is rebased on latest master and pg_test_timing now
always tests the normal and the fast timing code. If no fast clock
source is available the fast timing code is skipped.

--
David Geier