Check for __cpuidex and __get_cpuid_count separately
John Naylor <john.naylor@postgresql.org>
Author:
John Naylor <john.naylor@postgresql.org>
Date: 2026-04-02T12:39:57Z
Releases:
19 (unreleased)
Check for __cpuidex and __get_cpuid_count separately Previously we would only check for the availability of __cpuidex if the related __get_cpuid_count was not available on a platform. Future commits will need to access hypervisor information about the TSC frequency of x86 CPUs. For that case __cpuidex is the only viable option for accessing a high leaf (e.g. 0x40000000), since __get_cpuid_count does not allow that. __cpuidex is defined in cpuid.h for gcc/clang, but in intrin.h for MSVC, so adjust tests to suite. We also need to cast the array of unsigned ints to signed, since gcc (with -Wall) and clang emit warnings otherwise. Author: Lukas Fittl <lukas@fittl.com> Reviewed-by: Andres Freund <andres@anarazel.de> Reviewed-by: John Naylor <john.naylor@postgresql.org> Discussion: https://postgr.es/m/CAP53PkyooCeR8YV0BUD_xC7oTZESHz8OdA=tP7pBRHFVQ9xtKg@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| configure | modified | +12 −8 |
| configure.ac | modified | +17 −13 |
| meson.build | modified | +10 −3 |
| src/port/pg_cpu_x86.c | modified | +3 −5 |
Discussion
- Reduce timing overhead of EXPLAIN ANALYZE using rdtsc? 172 messages · 2020-06-12 → 2026-05-16