From patchwork Fri Jun 14 16:33:45 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shuah Khan X-Patchwork-Id: 2722491 Return-Path: X-Original-To: patchwork-linux-pm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 8C152C0AB1 for ; Fri, 14 Jun 2013 16:43:31 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 6B7B220398 for ; Fri, 14 Jun 2013 16:43:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C74AD20391 for ; Fri, 14 Jun 2013 16:43:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752883Ab3FNQnO (ORCPT ); Fri, 14 Jun 2013 12:43:14 -0400 Received: from qmta13.emeryville.ca.mail.comcast.net ([76.96.27.243]:39562 "EHLO qmta13.emeryville.ca.mail.comcast.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751834Ab3FNQlD (ORCPT ); Fri, 14 Jun 2013 12:41:03 -0400 X-Greylist: delayed 426 seconds by postgrey-1.27 at vger.kernel.org; Fri, 14 Jun 2013 12:41:03 EDT Received: from omta21.emeryville.ca.mail.comcast.net ([76.96.30.88]) by qmta13.emeryville.ca.mail.comcast.net with comcast id oFJg1l0021u4NiLADGZxvE; Fri, 14 Jun 2013 16:33:57 +0000 Received: from mail.gonehiking.org ([75.71.126.216]) by omta21.emeryville.ca.mail.comcast.net with comcast id oGZv1l0024gFXnP8hGZvjh; Fri, 14 Jun 2013 16:33:56 +0000 Received: from orthanc.internal (orthanc.internal [192.168.1.24]) by mail.gonehiking.org (Postfix) with ESMTP id A9E1B801D7; Fri, 14 Jun 2013 10:34:00 -0600 (MDT) From: Shuah Khan To: pavel@ucw.cz, rjw@sisk.pl, len.brown@intel.com, gregkh@linuxfoundation.org Cc: Shuah Khan , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, shuahkhan@gmail.com Subject: [PATCH] power: Include additional information in pm_print_times Date: Fri, 14 Jun 2013 10:33:45 -0600 Message-Id: <1371227625-3141-1-git-send-email-shuah.kh@samsung.com> X-Mailer: git-send-email 1.7.10.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1371227637; bh=okMS78utRXhdLsGlIQrEfnt/APCWZZ8aEIu5G8iJzmg=; h=Received:Received:Received:From:To:Subject:Date:Message-Id; b=LAsmo+3/ElPTEr6RvRXmRU25TYIEq/ZRpv9TW7nprZFOCdtup8Hr+fwIfMV9RAe3l mirb9bFRdcXdUxm3XRGvaKqZQ7dO3JEJLBii3L+Ph9k8vHGd0ZAa6+OOFu+4wI+BFm 69jlsW8r0sMVytymQljQzJbT/ZY0cs46Q7b+xqqncxDnUu7GBxW4nx8i6ZwcwFcPLm SEgmZTU5urm7UgIhtSZuJmnobCNVDRQG7Iyxe9WvAH8WuP2SLXR7pAKUuK5EZbBIG+ GpcBDENkesDC8HILVrtSNRohicZ4tJ4bPQeLyC6wJ1WWgti+TYGQuSfUDVes/BaS4n XCFUvmoXMKt+w== Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Change __device_suspend() path to include driver name and the ops that get run for a device. This additional information helps associate driver and the type of pm_ops the device uses in suspend path very quickly and aid in debugging problems in suspend and resume paths. Added the additional information at the end of the original message. dmesg output before the change: [ 164.390032] calling 1-1+ @ 69, parent: usb1 [ 164.390035] call 1-1+ returned 0 after 0 usecs [ 164.390352] calling 00:0a+ @ 2457, parent: pnp0 [ 164.390357] call 00:0a+ returned 0 after 3 usecs [ 164.390361] calling 00:09+ @ 2457, parent: pnp0 [ 164.496458] call 00:09+ returned 0 after 103500 usecs [ 164.496494] calling 00:05+ @ 2457, parent: pnp0 [ 164.496511] call 00:05+ returned 0 after 14 usecs dmesg output after the change: [ 317.295499] calling 1-1+ @ 71, parent: usb1 driver: usb type pm ops [ 317.297671] call 1-1+ returned 0 after 2117 usecs [ 318.134469] calling 00:0a+ @ 2941, parent: pnp0 driver: system legacy bus [ 318.134476] call 00:0a+ returned 0 after 5 usecs [ 317.292894] calling 00:09+ @ 2941, parent: pnp0 driver: tpm_tis legacy bus pm ops [ 317.397315] call 00:09+ returned 0 after 101967 usecs [ 317.397353] calling 00:05+ @ 2941, parent: pnp0 driver: rtc_cmos legacy bus pm ops [ 317.397369] call 00:05+ returned 0 after 13 usecs Signed-off-by: Shuah Khan CC: Shuah Khan --- drivers/base/power/main.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index 5a9b656..900266d 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c @@ -157,14 +157,15 @@ void device_pm_move_last(struct device *dev) list_move_tail(&dev->power.entry, &dpm_list); } -static ktime_t initcall_debug_start(struct device *dev) +static ktime_t initcall_debug_start(struct device *dev, char *info) { ktime_t calltime = ktime_set(0, 0); if (pm_print_times_enabled) { - pr_info("calling %s+ @ %i, parent: %s\n", + pr_info("calling %s+ @ %i, parent: %s driver: %s %s\n", dev_name(dev), task_pid_nr(current), - dev->parent ? dev_name(dev->parent) : "none"); + dev->parent ? dev_name(dev->parent) : "none", + dev_driver_string(dev), info); calltime = ktime_get(); } @@ -373,7 +374,7 @@ static int dpm_run_callback(pm_callback_t cb, struct device *dev, if (!cb) return 0; - calltime = initcall_debug_start(dev); + calltime = initcall_debug_start(dev, info); pm_dev_dbg(dev, state, info); error = cb(dev); @@ -1027,13 +1028,15 @@ EXPORT_SYMBOL_GPL(dpm_suspend_end); * @cb: Suspend callback to execute. */ static int legacy_suspend(struct device *dev, pm_message_t state, - int (*cb)(struct device *dev, pm_message_t state)) + int (*cb)(struct device *dev, pm_message_t state), + char *info) { int error; ktime_t calltime; - calltime = initcall_debug_start(dev); + calltime = initcall_debug_start(dev, info); + pm_dev_dbg(dev, state, info); error = cb(dev, state); suspend_report_result(cb, error); @@ -1079,43 +1082,45 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async) device_lock(dev); if (dev->pm_domain) { - info = "power domain "; + info = "power domain pm ops "; callback = pm_op(&dev->pm_domain->ops, state); goto Run; } if (dev->type && dev->type->pm) { - info = "type "; + info = "type pm ops "; callback = pm_op(dev->type->pm, state); goto Run; } if (dev->class) { if (dev->class->pm) { - info = "class "; + info = "class pm ops "; callback = pm_op(dev->class->pm, state); goto Run; } else if (dev->class->suspend) { - pm_dev_dbg(dev, state, "legacy class "); - error = legacy_suspend(dev, state, dev->class->suspend); + info = "legacy class pm ops "; + error = legacy_suspend(dev, state, dev->class->suspend, + info); goto End; } } if (dev->bus) { if (dev->bus->pm) { - info = "bus "; + info = "bus pm ops "; callback = pm_op(dev->bus->pm, state); } else if (dev->bus->suspend) { - pm_dev_dbg(dev, state, "legacy bus "); - error = legacy_suspend(dev, state, dev->bus->suspend); + info = "legacy bus pm ops "; + error = legacy_suspend(dev, state, dev->bus->suspend, + info); goto End; } } Run: if (!callback && dev->driver && dev->driver->pm) { - info = "driver "; + info = "driver pm ops "; callback = pm_op(dev->driver->pm, state); }