From 1f9d5406b3e4e86724248b71a3bd68a1440169e2 Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Thu, 15 Mar 2018 10:22:40 -0700 Subject: init: add timers around sync() during shutdown It seems that these sync() calls may take a long time in some occasions, so we add these logs to check. Bug: 74817735 Test: tree hugger Change-Id: Id3635f6c7a6618b20c7caf93b05e50cc50ef99de --- init/reboot.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'init') diff --git a/init/reboot.cpp b/init/reboot.cpp index 03ed55a1b..bb87f1292 100644 --- a/init/reboot.cpp +++ b/init/reboot.cpp @@ -429,10 +429,20 @@ void RebootThread(unsigned int cmd, std::chrono::milliseconds shutdown_timeout, if (kill_after_apps.count(s->name())) s->Stop(); } // 4. sync, try umount, and optionally run fsck for user shutdown - sync(); + { + Timer sync_timer; + LOG(INFO) << "sync() before umount..."; + sync(); + LOG(INFO) << "sync() before umount took" << sync_timer; + } UmountStat stat = TryUmountAndFsck(runFsck, shutdown_timeout - t.duration()); // Follow what linux shutdown is doing: one more sync with little bit delay - sync(); + { + Timer sync_timer; + LOG(INFO) << "sync() after umount..."; + sync(); + LOG(INFO) << "sync() after umount took" << sync_timer; + } if (cmd != ANDROID_RB_THERMOFF) std::this_thread::sleep_for(100ms); LogShutdownTime(stat, &t); -- cgit v1.2.3