Received: by 2002:ac0:8c8e:0:0:0:0:0 with SMTP id r14csp761744ima; Wed, 6 Feb 2019 07:59:48 -0800 (PST) X-Google-Smtp-Source: AHgI3IaCNRTKXdofZD95KSFssqesOm6K75jpSppDDnjqnSncvUx+ESJNU245jcybMGxEPzoBYu7o X-Received: by 2002:a17:902:f64:: with SMTP id 91mr11349213ply.132.1549468788666; Wed, 06 Feb 2019 07:59:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549468788; cv=none; d=google.com; s=arc-20160816; b=mF0LCZqhL4uVKWWdHMOGHJqQERxxCAy5UemGnLS7H3cuzVpirh4T6VIoZltb0Ukiwa ec7yO6d6i0dBRBEne7Q3qwH+qN/RxPRtsTY1zQ4vByM+Fsn3P9qc4o1tPkFYlj/qn62C +zwWvpXCY5/I9pgyPcto865/uh6oskkOXp/4BapybRXLXcsgJ9+fSu/QLCfqgh5N5JOF Fj6pi+DTrpdzBE8qn3JZ7V8WbdF04L2Gk/26gkFa6acB8vnTjRZ7hXYH0iGWALTGBCDW OEcdeB0+BzCaplgbTQMeF/0k+3YN9zMF+Yhns0Jrdd4St2xcv6+D/+NIigv0qrnDtb16 6Fng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=vX1eTqhyISFwSh9E0t7KHKH91WZyswCPOokzwU1KVTI=; b=ENE8t9LZyXDXsF3mgw3rgAhlSi83Eg/GuUc0l8A9742wuK71aYbXUaOd3KDaVg5am0 ABeP/xjuYLeM1phJrmigKbZg415FjwgnBJ722ujBUaET8PE4HufU5RwK1OaaHoLVDdy3 VWV2Bzsf2/ieYr0ZuHQsG7gSxaNBBP4NRIx5Hh2xqRqDdlFThgeb0rHhqrK2NnI8Hid2 GE4P3Ma9A+Jb8NFnoB4nMllMT9CI8Gzx76HSx7n/L0eDdw0AkHW1uOe5RzIuH0+H1m1H DW9zGnhbZ7KuGRU5BwYHd2wE3eMKtVSmrO7jXKaY6B5e/9XqcsRa3TdKEfIQZqfLlVEe Gpjg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q207si5818911pgq.294.2019.02.06.07.59.32; Wed, 06 Feb 2019 07:59:48 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730577AbfBFP5e (ORCPT + 99 others); Wed, 6 Feb 2019 10:57:34 -0500 Received: from 36-231-43-191.dynamic-ip.hinet.net ([36.231.43.191]:58724 "EHLO E6440.gar.corp.intel.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726989AbfBFP5d (ORCPT ); Wed, 6 Feb 2019 10:57:33 -0500 Received: from E6440.gar.corp.intel.com (localhost [127.0.0.1]) by E6440.gar.corp.intel.com (Postfix) with ESMTP id 863E4C04FD; Wed, 6 Feb 2019 22:43:00 +0800 (CST) From: Harry Pan To: LKML Cc: gs0622@gmail.com, Harry Pan , rjw@rjwysocki.net, pavel@ucw.cz, len.brown@intel.com, linux-pm@vger.kernel.org Subject: [PATCH] PM / suspend: measure the time of filesystem syncing Date: Wed, 6 Feb 2019 22:42:57 +0800 Message-Id: <20190206144257.21464-1-harry.pan@intel.com> X-Mailer: git-send-email 2.18.1 In-Reply-To: <20190203052007.27392-1-harry.pan@intel.com> References: <20190203052007.27392-1-harry.pan@intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch gives the reader an intuitive metric of the time cost by the kernel issuing a filesystem sync during suspend; although developer can guess by the timestamp of next log or enable the ftrace power event for manual calculation, this manner is easier to read and benefits the automatic script. v2: simplify the variables, apply the simplest form of ktime API. Signed-off-by: Harry Pan --- kernel/power/suspend.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 0bd595a0b610..87c0073f0c9d 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c @@ -550,6 +550,8 @@ static void suspend_finish(void) static int enter_state(suspend_state_t state) { int error; + ktime_t start; + unsigned int elapsed_msecs; trace_suspend_resume(TPS("suspend_enter"), state, true); if (state == PM_SUSPEND_TO_IDLE) { @@ -570,9 +572,12 @@ static int enter_state(suspend_state_t state) #ifndef CONFIG_SUSPEND_SKIP_SYNC trace_suspend_resume(TPS("sync_filesystems"), 0, true); + start = ktime_get(); pr_info("Syncing filesystems ... "); ksys_sync(); - pr_cont("done.\n"); + elapsed_msecs = ktime_to_ms(ktime_sub(ktime_get(), start)); + pr_cont("(elapsed %d.%03d seconds) done.\n", elapsed_msecs / 1000, + elapsed_msecs % 1000); trace_suspend_resume(TPS("sync_filesystems"), 0, false); #endif -- 2.18.1