RDTSCP | IA32_TSC_AUX on x86-32

Sebastian Andrzej Siewior
2022-11-23T09:49:56Z

Hi,

the RDTSCP opcode is translated as "Read Time-Stamp Counter and
Processor ID". It does not read the Processor ID is merely returns the
value of IA32_TSC_AUX which has been previously written by the OS. This
is documented but is misleading if you never made it past the headline.

Now. On 64bit there is __vdso_getcpu and IA32_TSC_AUX is setup (it also
contains the node number but…) for its purpose.
On 32bit there is no __vdso_getcpu and IA32_TSC_AUX is not setup.
RDTSCP is not privileged and returns the proper timestamp but the "CPU"
field is always zero.

Is the format OS specific and not for user purpose or could IA32_TSC_AUX
be setup on 32bit?

Sebastian