Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752205AbbBVTZN (ORCPT ); Sun, 22 Feb 2015 14:25:13 -0500 Received: from mail-ob0-f178.google.com ([209.85.214.178]:32874 "EHLO mail-ob0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752006AbbBVTZK (ORCPT ); Sun, 22 Feb 2015 14:25:10 -0500 Message-ID: <54EA2D13.3070709@gmail.com> Date: Sun, 22 Feb 2015 11:25:07 -0800 From: Florian Fainelli User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: Brian Norris , "Rafael J. Wysocki" CC: Linux Kernel , linux-pm@vger.kernel.org, Len Brown , Pavel Machek , Kevin Cernekee , Chirantan Ekbote Subject: Re: [PATCH v2] PM / sleep: add configurable delay for pm_test References: <1409788535-28264-1-git-send-email-computersforpeace@gmail.com> <20150222082654.GB24441@norris-Latitude-E6410> In-Reply-To: <20150222082654.GB24441@norris-Latitude-E6410> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2975 Lines: 83 Le 22/02/2015 00:26, Brian Norris a ?crit : > When CONFIG_PM_DEBUG=y, we provide a sysfs file (/sys/power/pm_test) for > selecting one of a few suspend test modes, where rather than entering a > full suspend state, the kernel will perform some subset of suspend > steps, wait 5 seconds, and then resume back to normal operation. > > This mode is useful for (among other things) observing the state of the > system just before entering a sleep mode, for debugging or analysis > purposes. However, a constant 5 second wait is not sufficient for some > sorts of analysis; for example, on an SoC, one might want to use > external tools to probe the power states of various on-chip controllers > or clocks. > > This patch turns this 5 second delay into a configurable module > parameter, so users can determine how long to wait in this > pseudo-suspend state before resuming the system. > > Example (wait 30 seconds); > > # echo 30 > /sys/module/suspend/parameters/pm_test_delay > # echo core > /sys/power/pm_test > # time echo mem > /sys/power/state > ... > [ 17.583625] suspend debug: Waiting for 30 second(s). > ... > real 0m30.381s > user 0m0.017s > sys 0m0.080s > > Signed-off-by: Brian Norris Acked-by: Florian Fainelli > --- > v2: - make this a module param instead of an explicit sysfs file > - drop the for loop; mdelay() does the same loop internally > - decrease +36 lines of code and +2 lines of doc, to +6 lines of code and > +2 lines of doc > > kernel/power/suspend.c | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c > index c347e3ce3a55..aee23dab0a55 100644 > --- a/kernel/power/suspend.c > +++ b/kernel/power/suspend.c > @@ -28,6 +28,7 @@ > #include > #include > #include > +#include > > #include "power.h" > > @@ -204,12 +205,20 @@ static bool platform_suspend_again(suspend_state_t state) > suspend_ops->suspend_again() : false; > } > > +#ifdef CONFIG_PM_DEBUG > +static unsigned int pm_test_delay = 5; > +module_param(pm_test_delay, uint, 0644); > +MODULE_PARM_DESC(pm_test_delay, > + "Number of seconds to wait before resuming from suspend test"); > +#endif > + > static int suspend_test(int level) > { > #ifdef CONFIG_PM_DEBUG > if (pm_test_level == level) { > - printk(KERN_INFO "suspend debug: Waiting for 5 seconds.\n"); > - mdelay(5000); > + printk(KERN_INFO "suspend debug: Waiting for %d second(s).\n", > + pm_test_delay); > + mdelay(pm_test_delay * 1000); > return 1; > } > #endif /* !CONFIG_PM_DEBUG */ > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/