The Cycles initialization gets stuck in infinite loop if rdtsc is not
implemented. This patch fixes the issue by quitting the initialization
if rtdsc fails.
The patch was cherry-picked from ubuntu patch by James Page, see
https://bugzilla.redhat.com/show_bug.cgi?id=
1222286
for more details on the patch.
Signed-off-by: James Page <james.page@ubuntu.com>
(cherry picked from commit
35c5fd0091fc4d63b21207fb94e46b343519fd56)
if (cycles_per_sec != 0)
return;
+ // Skip initialization if rtdsc is not implemented
+ if (rdtsc() == 0)
+ return;
+
// Compute the frequency of the fine-grained CPU timer: to do this,
// take parallel time readings using both rdtsc and gettimeofday.
// After 10ms have elapsed, take the ratio between these readings.