Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
13 Views

Obtain time stamp disable (TSD) flag in user-mode

I need to check if the rdtsc instruction is supported by the processor and the operating system. The processor part is easy been done, but I have problem to check if the operation system is supporting this in other privileges than 0.

The general way is to read bit 2 from the control register CR4, but I cannot do this in PL3. Is there any workaround? I don't want to cause a Privileged Instruction exception.
0 Kudos
1 Reply
Highlighted
Beginner
13 Views

If you are on Linux, you can use something like the following:

#include
#include

bool
is_rdtsc_supported(void)
{
int tsc_supported = PR_TSC_SIGSEGV;

if (prctl(PR_GET_TSC, &tsc_supported) < 0)
return false;

return tsc_supported == PR_TSC_ENABLE;
}
0 Kudos