From 35c5fd0091fc4d63b21207fb94e46b343519fd56 Mon Sep 17 00:00:00 2001 From: Boris Ranto Date: Wed, 3 Jun 2015 12:24:48 +0200 Subject: [PATCH] common/Cycles.cc: skip initialization if rdtsc is not implemented 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 --- src/common/Cycles.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/common/Cycles.cc b/src/common/Cycles.cc index a2efcf34b8f3a..b0b687e49d46b 100644 --- a/src/common/Cycles.cc +++ b/src/common/Cycles.cc @@ -52,6 +52,10 @@ void Cycles::init() 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. -- 2.39.5