From: Boris Ranto Date: Wed, 3 Jun 2015 10:24:48 +0000 (+0200) Subject: common/Cycles.cc: skip initialization if rdtsc is not implemented X-Git-Tag: v9.0.2~50^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=35c5fd0091fc4d63b21207fb94e46b343519fd56;p=ceph.git 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 --- diff --git a/src/common/Cycles.cc b/src/common/Cycles.cc index a2efcf34b8f3..b0b687e49d46 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.