Re: [patch 2.6.26-rc4-git] PM: boot time suspend selftest

From: David Brownell
Date: Mon Jul 07 2008 - 00:12:52 EST


Address some of Andrew's comments on the patch now in
MMOTM with name "pm-boot-time-suspend-selftest.patch".

Signed-off-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx>
---
kernel/power/main.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)

--- a/kernel/power/main.c 2008-07-06 21:06:35.000000000 -0700
+++ b/kernel/power/main.c 2008-07-06 21:06:35.000000000 -0700
@@ -160,10 +160,19 @@ static void suspend_test_finish(const ch
long nj = jiffies - suspend_test_start_time;
unsigned msec;

- msec = jiffies_to_msecs((nj >= 0) ? nj : -nj);
+ msec = jiffies_to_msecs(abs(nj));
pr_info("PM: %s took %d.%03d seconds\n", label,
msec / 1000, msec % 1000);
- WARN_ON_ONCE(msec > (TEST_SUSPEND_SECONDS * 1000));
+
+ /* Warning on suspend means the RTC alarm period needs to be
+ * larger -- the system was sooo slooowwww to suspend that the
+ * alarm (should have) fired before the system went to sleep!
+ *
+ * Warning on either suspend or resume also means the system
+ * has some performance issues. The stack dump of a WARN_ON
+ * is more likely to get the right attention than a printk...
+ */
+ WARN_ON(msec > (TEST_SUSPEND_SECONDS * 1000));
}

#else
@@ -579,13 +588,13 @@ core_initcall(pm_init);

static void __init test_wakealarm(struct rtc_device *rtc, suspend_state_t state)
{
- static char err_readtime [] __initdata =
+ static char err_readtime[] __initdata =
KERN_ERR "PM: can't read %s time, err %d\n";
- static char err_wakealarm [] __initdata =
+ static char err_wakealarm [] __initdata =
KERN_ERR "PM: can't set %s wakealarm, err %d\n";
- static char err_suspend [] __initdata =
+ static char err_suspend[] __initdata =
KERN_ERR "PM: suspend test failed, error %d\n";
- static char info_test [] __initdata =
+ static char info_test[] __initdata =
KERN_INFO "PM: test RTC wakeup from '%s' suspend\n";

unsigned long now;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/