From 87de9cfefddfeef9b139e90adf372e3566be3afc Mon Sep 17 00:00:00 2001 From: Serguei Katkov Date: Mon, 1 Aug 2016 17:47:04 +0700 Subject: [PATCH] ART: Fix JIT profile saver We miss the case when jit activity notification count exceeds the threshold. Fix it. Bug: 30583550 Test: manual test in master Change-Id: Ib10a34d3c2f5d3cf674b1c4d7a3c1204784865d3 Signed-off-by: Serguei Katkov --- runtime/jit/profile_saver.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/runtime/jit/profile_saver.cc b/runtime/jit/profile_saver.cc index 5a469e51b..b35c958b0 100644 --- a/runtime/jit/profile_saver.cc +++ b/runtime/jit/profile_saver.cc @@ -176,14 +176,13 @@ void ProfileSaver::NotifyJitActivityInternal() { MutexLock wait_mutex(Thread::Current(), wait_lock_); if ((NanoTime() - last_time_ns_saver_woke_up_) > MsToNs(options_.GetMinSavePeriodMs())) { WakeUpSaver(); + } else if (jit_activity_notifications_ > options_.GetMaxNotificationBeforeWake()) { + // Make sure to wake up the saver if we see a spike in the number of notifications. + // This is a precaution to avoid losing a big number of methods in case + // this is a spike with no jit after. + total_number_of_hot_spikes_++; + WakeUpSaver(); } - } else if (jit_activity_notifications_ > options_.GetMaxNotificationBeforeWake()) { - // Make sure to wake up the saver if we see a spike in the number of notifications. - // This is a precaution to avoid "loosing" a big number of methods in case - // this is a spike with no jit after. - total_number_of_hot_spikes_++; - MutexLock wait_mutex(Thread::Current(), wait_lock_); - WakeUpSaver(); } } -- 2.11.0