Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc? - Mailing list pgsql-hackers

From David Geier
Subject Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc?
Date
Msg-id c84b9cd8-1e1d-4d1c-991b-2063331f1385@gmail.com
Whole thread Raw
In response to Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc?  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc?
List pgsql-hackers
On 19.11.2025 20:36, Robert Haas wrote:
> On Wed, Nov 19, 2025 at 11:55 AM Lukas Fittl <lukas@fittl.com> wrote:
>> Overall, I'm still thinking a GUC might be the way to go, but I don't think anyone else was enthusiastic about that
idea:)
 
> 
> Reliable feature auto-detection is the best option, but if that's not
> possible, I think the choices are add a GUC or give up on the project
> altogether. Using a GUC to deal with platform dependencies is a pretty
> reasonable concept -- see, e.g. dynamic_shared_memory_type or
> huge_pages or io_method. If we can't autodetect it reliably and we
> aren't willing to add a GUC, we're basically saying there's not enough
> value here to justify adding a configuration parameter. That's often a
> totally reasonable conclusion -- it can easily happen that the
> benefits of a platform-specific optimization are too small to make it
> worth configuring. But I would have thought that in this case the
> benefits might be quite large.

I'm also in favor of adding a GUC. Even if we could 100% reliably detect
if using TSC is giving correct results, it could be that it's slow in
some virtualized environment and hence the user wants to disable it.

I'm wondering how to best do a GUC for something that is potentially
unavailable on the system. In that case the GUC would be superfluous.
Maybe a boolean "enable_try_fast_clocksource" GUC or a "clocksource"
enum GUC which can be "default" and "try_rdtsc", where we only include
the "try_rdtsc" enum value on x86 systems?

Any other ideas?

--
David Geier



pgsql-hackers by date:

Previous
From: "Zhijie Hou (Fujitsu)"
Date:
Subject: RE: Fix START_REPLICATION failure with publication names containing backslashes
Next
From: Bertrand Drouvot
Date:
Subject: Re: Safer hash table initialization macro