Re: Reduce timing overhead of EXPLAIN ANALYZE using rdtsc?
Hannu Krosing <hannuk@google.com>
From: Hannu Krosing <hannuk@google.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: David Geier <geidav.pg@gmail.com>, Lukas Fittl <lukas@fittl.com>, Andres Freund <andres@anarazel.de>, 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>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-12-04T21:21:29Z
Lists: pgsql-hackers
I have not looked at this patch series yet, but when I played around with using rdtsc (or actually some gcc/clang construct that compiled to rctsc on c86 and into time register reads on Arm and risc-v) then any extra step around it had noticeable overhead. I am not sure putting some if or function call around rdtsc call is a good idea. On Wed, Dec 3, 2025 at 3:15 PM Robert Haas <robertmhaas@gmail.com> wrote: > > On Wed, Dec 3, 2025 at 6:03 AM David Geier <geidav.pg@gmail.com> wrote: > > 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? > > huge_pages=on/off/try is one possible precedent. Perhaps for this > case, we might do something like > clock_source=auto/this/that/the_other_thing might be better. If you > set it to any value other than "auto", the named source must be > available, or startup fails. If you set it to auto, it picks what it > believes to be the best option available, and there is some other > read-only GUC (akin to huge_page_status) that tells you what it > picked. > > I'm open to other suggestions as to how this should work, but (1) all > of the existing enable_* GUCs are planner GUCs, and (2) I suspect it's > short-sighted to plan for only "fast" and "not fast". > > -- > Robert Haas > EDB: http://www.enterprisedb.com > >