* [PATCH 0/7] Suspend and hibernation code cleanups (rev. 2)
@ 2007-11-28 0:13 Rafael J. Wysocki
2007-11-28 0:15 ` [PATCH 1/7] Suspend: Fix compilation warning for CONFIG_SUSPEND unset Rafael J. Wysocki
` (6 more replies)
0 siblings, 7 replies; 12+ messages in thread
From: Rafael J. Wysocki @ 2007-11-28 0:13 UTC (permalink / raw)
To: pm list; +Cc: LKML, Pavel Machek
Hi,
This is the second revision of the series of suspend and hibernation cleanup
patches I sent yesterday.
The patches are on top of the suspend branch of the linux-acpi-2.6 tree.
Please review.
Greetings,
Rafael
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/7] Suspend: Fix compilation warning for CONFIG_SUSPEND unset
2007-11-28 0:13 [PATCH 0/7] Suspend and hibernation code cleanups (rev. 2) Rafael J. Wysocki
@ 2007-11-28 0:15 ` Rafael J. Wysocki
2007-11-28 0:26 ` [PATCH 2/7] Hibernation: Move low level resume to disk.c Rafael J. Wysocki
` (5 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Rafael J. Wysocki @ 2007-11-28 0:15 UTC (permalink / raw)
To: pm list; +Cc: LKML, Pavel Machek
From: Rafael J. Wysocki <rjw@sisk.pl>
Make the new suspend debug facility code depend on CONFIG_SUSPEND,
as appropriate, to remove the compiler warning printed when CONFIG_PM is set
and CONFIG_SUSPEND is not set.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
---
kernel/power/main.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
Index: linux-2.6/kernel/power/main.c
===================================================================
--- linux-2.6.orig/kernel/power/main.c
+++ linux-2.6/kernel/power/main.c
@@ -52,6 +52,8 @@ int pm_notifier_call_chain(unsigned long
#endif /* CONFIG_PM_SLEEP */
+#ifdef CONFIG_SUSPEND
+
#ifdef CONFIG_PM_DEBUG
int pm_test_level = TEST_NONE;
@@ -125,9 +127,6 @@ power_attr(pm_test);
static inline int suspend_test(int level) { return 0; }
#endif /* !CONFIG_PM_DEBUG */
-
-#ifdef CONFIG_SUSPEND
-
/* This is just an arbitrary number */
#define FREE_PAGE_NUMBER (100)
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/7] Hibernation: Move low level resume to disk.c
2007-11-28 0:13 [PATCH 0/7] Suspend and hibernation code cleanups (rev. 2) Rafael J. Wysocki
2007-11-28 0:15 ` [PATCH 1/7] Suspend: Fix compilation warning for CONFIG_SUSPEND unset Rafael J. Wysocki
@ 2007-11-28 0:26 ` Rafael J. Wysocki
2007-11-28 0:27 ` [PATCH 3/7] Suspend: Fix comment in main.c Rafael J. Wysocki
` (4 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Rafael J. Wysocki @ 2007-11-28 0:26 UTC (permalink / raw)
To: pm list; +Cc: LKML, Pavel Machek
From: Rafael J. Wysocki <rjw@sisk.pl>
Move the low level restore code to kernel/power/disk.c , since the
corresponding low level hibernation code is already there.
Make restore fail if device_power_down(PMSG_PRETHAW) returns an
error.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
---
kernel/power/disk.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++-
kernel/power/power.h | 1 -
kernel/power/swsusp.c | 35 -----------------------------------
3 files changed, 48 insertions(+), 37 deletions(-)
Index: linux-2.6/kernel/power/disk.c
===================================================================
--- linux-2.6.orig/kernel/power/disk.c
+++ linux-2.6/kernel/power/disk.c
@@ -275,6 +275,53 @@ int hibernation_snapshot(int platform_mo
}
/**
+ * resume_target_kernel - prepare devices that need to be suspended with
+ * interrupts off, restore the contents of highmem that have not been
+ * restored yet from the image and run the low level code that will restore
+ * the remaining contents of memory and switch to the just restored target
+ * kernel.
+ */
+
+static int resume_target_kernel(void)
+{
+ int error;
+
+ local_irq_disable();
+ error = device_power_down(PMSG_PRETHAW);
+ if (error) {
+ printk(KERN_ERR "Some devices failed to power down, "
+ "aborting resume\n");
+ goto Enable_irqs;
+ }
+ /* We'll ignore saved state, but this gets preempt count (etc) right */
+ save_processor_state();
+ error = restore_highmem();
+ if (!error) {
+ error = swsusp_arch_resume();
+ /*
+ * The code below is only ever reached in case of a failure.
+ * Otherwise execution continues at place where
+ * swsusp_arch_suspend() was called
+ */
+ BUG_ON(!error);
+ /* This call to restore_highmem() undos the previous one */
+ restore_highmem();
+ }
+ /*
+ * The only reason why swsusp_arch_resume() can fail is memory being
+ * very tight, so we have to free it as soon as we can to avoid
+ * subsequent failures
+ */
+ swsusp_free();
+ restore_processor_state();
+ touch_softlockup_watchdog();
+ device_power_up();
+ Enable_irqs:
+ local_irq_enable();
+ return error;
+}
+
+/**
* hibernation_restore - quiesce devices and restore the hibernation
* snapshot image. If successful, control returns in hibernation_snaphot()
* @platform_mode - if set, use the platform driver, if available, to
@@ -297,7 +344,7 @@ int hibernation_restore(int platform_mod
if (!error) {
error = disable_nonboot_cpus();
if (!error)
- error = swsusp_resume();
+ error = resume_target_kernel();
enable_nonboot_cpus();
}
platform_restore_cleanup(platform_mode);
Index: linux-2.6/kernel/power/swsusp.c
===================================================================
--- linux-2.6.orig/kernel/power/swsusp.c
+++ linux-2.6/kernel/power/swsusp.c
@@ -261,38 +261,3 @@ int swsusp_shrink_memory(void)
return 0;
}
-
-int swsusp_resume(void)
-{
- int error;
-
- local_irq_disable();
- /* NOTE: device_power_down() is just a suspend() with irqs off;
- * it has no special "power things down" semantics
- */
- if (device_power_down(PMSG_PRETHAW))
- printk(KERN_ERR "Some devices failed to power down, very bad\n");
- /* We'll ignore saved state, but this gets preempt count (etc) right */
- save_processor_state();
- error = restore_highmem();
- if (!error) {
- error = swsusp_arch_resume();
- /* The code below is only ever reached in case of a failure.
- * Otherwise execution continues at place where
- * swsusp_arch_suspend() was called
- */
- BUG_ON(!error);
- /* This call to restore_highmem() undos the previous one */
- restore_highmem();
- }
- /* The only reason why swsusp_arch_resume() can fail is memory being
- * very tight, so we have to free it as soon as we can to avoid
- * subsequent failures
- */
- swsusp_free();
- restore_processor_state();
- touch_softlockup_watchdog();
- device_power_up();
- local_irq_enable();
- return error;
-}
Index: linux-2.6/kernel/power/power.h
===================================================================
--- linux-2.6.orig/kernel/power/power.h
+++ linux-2.6/kernel/power/power.h
@@ -154,7 +154,6 @@ extern int swsusp_swap_in_use(void);
extern int swsusp_check(void);
extern int swsusp_shrink_memory(void);
extern void swsusp_free(void);
-extern int swsusp_resume(void);
extern int swsusp_read(unsigned int *flags_p);
extern int swsusp_write(unsigned int flags);
extern void swsusp_close(void);
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 3/7] Suspend: Fix comment in main.c
2007-11-28 0:13 [PATCH 0/7] Suspend and hibernation code cleanups (rev. 2) Rafael J. Wysocki
2007-11-28 0:15 ` [PATCH 1/7] Suspend: Fix compilation warning for CONFIG_SUSPEND unset Rafael J. Wysocki
2007-11-28 0:26 ` [PATCH 2/7] Hibernation: Move low level resume to disk.c Rafael J. Wysocki
@ 2007-11-28 0:27 ` Rafael J. Wysocki
2007-11-28 0:28 ` [PATCH 4/7] Hibernation: Fix comment in disk.c Rafael J. Wysocki
` (3 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Rafael J. Wysocki @ 2007-11-28 0:27 UTC (permalink / raw)
To: pm list; +Cc: LKML, Pavel Machek
From: Rafael J. Wysocki <rjw@sisk.pl>
Fix a comment in kernel/power/main.c so that it doesn't contain lines
longer that 80 characters.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
---
kernel/power/main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6/kernel/power/main.c
===================================================================
--- linux-2.6.orig/kernel/power/main.c
+++ linux-2.6/kernel/power/main.c
@@ -242,8 +242,8 @@ static int suspend_enter(suspend_state_t
}
/**
- * suspend_devices_and_enter - suspend devices and enter the desired system sleep
- * state.
+ * suspend_devices_and_enter - suspend devices and enter the desired system
+ * sleep state.
* @state: state to enter
*/
int suspend_devices_and_enter(suspend_state_t state)
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 4/7] Hibernation: Fix comment in disk.c
2007-11-28 0:13 [PATCH 0/7] Suspend and hibernation code cleanups (rev. 2) Rafael J. Wysocki
` (2 preceding siblings ...)
2007-11-28 0:27 ` [PATCH 3/7] Suspend: Fix comment in main.c Rafael J. Wysocki
@ 2007-11-28 0:28 ` Rafael J. Wysocki
2007-11-28 10:08 ` Pavel Machek
2007-11-28 0:29 ` [PATCH 5/7] Hibernation: Remove unnecessary variable declaration Rafael J. Wysocki
` (2 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Rafael J. Wysocki @ 2007-11-28 0:28 UTC (permalink / raw)
To: pm list; +Cc: LKML, Pavel Machek
From: Rafael J. Wysocki <rjw@sisk.pl>
Fix a comment in kernel/power/disk.c so that it doesn't contain lines
longer that 80 characters.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
kernel/power/disk.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6/kernel/power/disk.c
===================================================================
--- linux-2.6.orig/kernel/power/disk.c
+++ linux-2.6/kernel/power/disk.c
@@ -568,8 +568,8 @@ static int software_resume(void)
if (noresume) {
/**
- * FIXME: If noresume is specified, we need to find the partition
- * and reset it back to normal swap space.
+ * FIXME: If noresume is specified, we need to find the
+ * partition and reset it back to normal swap space.
*/
mutex_unlock(&pm_mutex);
return 0;
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 5/7] Hibernation: Remove unnecessary variable declaration
2007-11-28 0:13 [PATCH 0/7] Suspend and hibernation code cleanups (rev. 2) Rafael J. Wysocki
` (3 preceding siblings ...)
2007-11-28 0:28 ` [PATCH 4/7] Hibernation: Fix comment in disk.c Rafael J. Wysocki
@ 2007-11-28 0:29 ` Rafael J. Wysocki
2007-11-28 10:09 ` Pavel Machek
2007-11-28 0:30 ` [PATCH 6/7] Suspend: Use common prefix in messages Rafael J. Wysocki
2007-11-28 0:37 ` [PATCH 7/7] Hibernation: Update messages Rafael J. Wysocki
6 siblings, 1 reply; 12+ messages in thread
From: Rafael J. Wysocki @ 2007-11-28 0:29 UTC (permalink / raw)
To: pm list; +Cc: LKML, Pavel Machek
From: Rafael J. Wysocki <rjw@sisk.pl>
Remove the unnecessary extern declaration of resume_file[]
from kernel/power/swap.c .
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
kernel/power/swap.c | 2 --
1 file changed, 2 deletions(-)
Index: linux-2.6/kernel/power/swap.c
===================================================================
--- linux-2.6.orig/kernel/power/swap.c
+++ linux-2.6/kernel/power/swap.c
@@ -28,8 +28,6 @@
#include "power.h"
-extern char resume_file[];
-
#define SWSUSP_SIG "S1SUSPEND"
struct swsusp_header {
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 6/7] Suspend: Use common prefix in messages
2007-11-28 0:13 [PATCH 0/7] Suspend and hibernation code cleanups (rev. 2) Rafael J. Wysocki
` (4 preceding siblings ...)
2007-11-28 0:29 ` [PATCH 5/7] Hibernation: Remove unnecessary variable declaration Rafael J. Wysocki
@ 2007-11-28 0:30 ` Rafael J. Wysocki
2007-11-28 10:09 ` Pavel Machek
2007-11-28 0:37 ` [PATCH 7/7] Hibernation: Update messages Rafael J. Wysocki
6 siblings, 1 reply; 12+ messages in thread
From: Rafael J. Wysocki @ 2007-11-28 0:30 UTC (permalink / raw)
To: pm list; +Cc: LKML, Pavel Machek
From: Rafael J. Wysocki <rjw@sisk.pl>
Make suspend messages start with one common prefix "PM: ".
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
kernel/power/main.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Index: linux-2.6/kernel/power/main.c
===================================================================
--- linux-2.6.orig/kernel/power/main.c
+++ linux-2.6/kernel/power/main.c
@@ -227,7 +227,7 @@ static int suspend_enter(suspend_state_t
BUG_ON(!irqs_disabled());
if ((error = device_power_down(PMSG_SUSPEND))) {
- printk(KERN_ERR "Some devices failed to power down\n");
+ printk(KERN_ERR "PM: Some devices failed to power down\n");
goto Done;
}
@@ -261,7 +261,7 @@ int suspend_devices_and_enter(suspend_st
suspend_console();
error = device_suspend(PMSG_SUSPEND);
if (error) {
- printk(KERN_ERR "Some devices failed to suspend\n");
+ printk(KERN_ERR "PM: Some devices failed to suspend\n");
goto Resume_console;
}
@@ -344,7 +344,7 @@ static int enter_state(suspend_state_t s
if (!mutex_trylock(&pm_mutex))
return -EBUSY;
- printk("Syncing filesystems ... ");
+ printk(KERN_INFO "PM: Syncing filesystems ... ");
sys_sync();
printk("done.\n");
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 7/7] Hibernation: Update messages
2007-11-28 0:13 [PATCH 0/7] Suspend and hibernation code cleanups (rev. 2) Rafael J. Wysocki
` (5 preceding siblings ...)
2007-11-28 0:30 ` [PATCH 6/7] Suspend: Use common prefix in messages Rafael J. Wysocki
@ 2007-11-28 0:37 ` Rafael J. Wysocki
2007-11-28 10:14 ` Pavel Machek
6 siblings, 1 reply; 12+ messages in thread
From: Rafael J. Wysocki @ 2007-11-28 0:37 UTC (permalink / raw)
To: pm list; +Cc: LKML, Pavel Machek
From: Rafael J. Wysocki <rjw@sisk.pl>
Make hibernation messages start with one common prefix "PM: " and use
the word "hibernation" in messages as a synonym of "suspend to disk".
Turn some KERN_INFO messages into debug ones.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
kernel/power/disk.c | 28 +++++++++++++++-------------
kernel/power/snapshot.c | 23 ++++++++++++-----------
kernel/power/swap.c | 31 +++++++++++++++++--------------
kernel/power/swsusp.c | 5 +++--
4 files changed, 47 insertions(+), 40 deletions(-)
Index: linux-2.6/kernel/power/disk.c
===================================================================
--- linux-2.6.orig/kernel/power/disk.c
+++ linux-2.6/kernel/power/disk.c
@@ -191,8 +191,8 @@ int create_image(int platform_mode)
*/
error = device_power_down(PMSG_FREEZE);
if (error) {
- printk(KERN_ERR "Some devices failed to power down, "
- KERN_ERR "aborting suspend\n");
+ printk(KERN_ERR "PM: Some devices failed to power down, "
+ "aborting hibernation\n");
goto Enable_irqs;
}
@@ -203,7 +203,8 @@ int create_image(int platform_mode)
save_processor_state();
error = swsusp_arch_suspend();
if (error)
- printk(KERN_ERR "Error %d while creating the image\n", error);
+ printk(KERN_ERR "PM: Error %d creating hibernation image\n",
+ error);
/* Restore control flow magically appears here */
restore_processor_state();
if (!in_suspend)
@@ -289,7 +290,7 @@ static int resume_target_kernel(void)
local_irq_disable();
error = device_power_down(PMSG_PRETHAW);
if (error) {
- printk(KERN_ERR "Some devices failed to power down, "
+ printk(KERN_ERR "PM: Some devices failed to power down, "
"aborting resume\n");
goto Enable_irqs;
}
@@ -438,7 +439,7 @@ static void power_down(void)
* Valid image is on the disk, if we continue we risk serious data
* corruption after resume.
*/
- printk(KERN_CRIT "Please power me down manually\n");
+ printk(KERN_CRIT "PM: Please power down manually\n");
while(1);
}
@@ -484,7 +485,7 @@ int hibernate(void)
if (error)
goto Exit;
- printk("Syncing filesystems ... ");
+ printk(KERN_INFO "PM: Syncing filesystems ... ");
sys_sync();
printk("done.\n");
@@ -560,10 +561,11 @@ static int software_resume(void)
return -ENOENT;
}
swsusp_resume_device = name_to_dev_t(resume_file);
- pr_debug("swsusp: Resume From Partition %s\n", resume_file);
+ pr_debug("PM: Resume from partition %s\n", resume_file);
} else {
- pr_debug("swsusp: Resume From Partition %d:%d\n",
- MAJOR(swsusp_resume_device), MINOR(swsusp_resume_device));
+ pr_debug("PM: Resume from partition %d:%d\n",
+ MAJOR(swsusp_resume_device),
+ MINOR(swsusp_resume_device));
}
if (noresume) {
@@ -575,7 +577,7 @@ static int software_resume(void)
return 0;
}
- pr_debug("PM: Checking swsusp image.\n");
+ pr_debug("PM: Checking hibernation image.\n");
error = swsusp_check();
if (error)
goto Unlock;
@@ -601,7 +603,7 @@ static int software_resume(void)
goto Done;
}
- pr_debug("PM: Reading swsusp image.\n");
+ pr_debug("PM: Reading hibernation image.\n");
error = swsusp_read(&flags);
if (!error)
@@ -726,7 +728,7 @@ static ssize_t disk_store(struct kset *k
error = -EINVAL;
if (!error)
- pr_debug("PM: suspend-to-disk mode set to '%s'\n",
+ pr_debug("PM: Hibernation mode set to '%s'\n",
hibernation_modes[mode]);
mutex_unlock(&pm_mutex);
return error ? error : n;
@@ -756,7 +758,7 @@ static ssize_t resume_store(struct kset
mutex_lock(&pm_mutex);
swsusp_resume_device = res;
mutex_unlock(&pm_mutex);
- printk("Attempting manual resume\n");
+ printk(KERN_INFO "PM: Starting manual resume from disk\n");
noresume = 0;
software_resume();
ret = n;
Index: linux-2.6/kernel/power/snapshot.c
===================================================================
--- linux-2.6.orig/kernel/power/snapshot.c
+++ linux-2.6/kernel/power/snapshot.c
@@ -635,7 +635,7 @@ __register_nosave_region(unsigned long s
region->end_pfn = end_pfn;
list_add_tail(®ion->list, &nosave_regions);
Report:
- printk("swsusp: Registered nosave memory region: %016lx - %016lx\n",
+ printk(KERN_INFO "PM: Registered nosave memory: %016lx - %016lx\n",
start_pfn << PAGE_SHIFT, end_pfn << PAGE_SHIFT);
}
@@ -704,7 +704,7 @@ static void mark_nosave_pages(struct mem
list_for_each_entry(region, &nosave_regions, list) {
unsigned long pfn;
- printk("swsusp: Marking nosave pages: %016lx - %016lx\n",
+ pr_debug("PM: Marking nosave pages: %016lx - %016lx\n",
region->start_pfn << PAGE_SHIFT,
region->end_pfn << PAGE_SHIFT);
@@ -749,7 +749,7 @@ int create_basic_memory_bitmaps(void)
free_pages_map = bm2;
mark_nosave_pages(forbidden_pages_map);
- printk("swsusp: Basic memory bitmaps created\n");
+ pr_debug("PM: Basic memory bitmaps created\n");
return 0;
@@ -784,7 +784,7 @@ void free_basic_memory_bitmaps(void)
memory_bm_free(bm2, PG_UNSAFE_CLEAR);
kfree(bm2);
- printk("swsusp: Basic memory bitmaps freed\n");
+ pr_debug("PM: Basic memory bitmaps freed\n");
}
/**
@@ -1088,7 +1088,7 @@ static int enough_free_mem(unsigned int
}
nr_pages += count_pages_for_highmem(nr_highmem);
- pr_debug("swsusp: Normal pages needed: %u + %u + %u, available pages: %u\n",
+ pr_debug("PM: Normal pages needed: %u + %u + %u, available pages: %u\n",
nr_pages, PAGES_FOR_IO, meta, free);
return free > nr_pages + PAGES_FOR_IO + meta;
@@ -1201,20 +1201,20 @@ asmlinkage int swsusp_save(void)
{
unsigned int nr_pages, nr_highmem;
- printk("swsusp: critical section: \n");
+ printk(KERN_INFO "PM: Creating hibernation image: \n");
drain_local_pages();
nr_pages = count_data_pages();
nr_highmem = count_highmem_pages();
- printk("swsusp: Need to copy %u pages\n", nr_pages + nr_highmem);
+ printk(KERN_INFO "PM: Need to copy %u pages\n", nr_pages + nr_highmem);
if (!enough_free_mem(nr_pages, nr_highmem)) {
- printk(KERN_ERR "swsusp: Not enough free memory\n");
+ printk(KERN_ERR "PM: Not enough free memory\n");
return -ENOMEM;
}
if (swsusp_alloc(&orig_bm, ©_bm, nr_pages, nr_highmem)) {
- printk(KERN_ERR "swsusp: Memory allocation failed\n");
+ printk(KERN_ERR "PM: Memory allocation failed\n");
return -ENOMEM;
}
@@ -1234,7 +1234,8 @@ asmlinkage int swsusp_save(void)
nr_copy_pages = nr_pages;
nr_meta_pages = DIV_ROUND_UP(nr_pages * sizeof(long), PAGE_SIZE);
- printk("swsusp: critical section: done (%d pages copied)\n", nr_pages);
+ printk(KERN_INFO "PM: Hibernation image created (%d pages copied)\n",
+ nr_pages);
return 0;
}
@@ -1433,7 +1434,7 @@ static int check_header(struct swsusp_in
if (!reason && info->num_physpages != num_physpages)
reason = "memory size";
if (reason) {
- printk(KERN_ERR "swsusp: Resume mismatch: %s\n", reason);
+ printk(KERN_ERR "PM: Image mismatch: %s\n", reason);
return -EPERM;
}
return 0;
Index: linux-2.6/kernel/power/swap.c
===================================================================
--- linux-2.6.orig/kernel/power/swap.c
+++ linux-2.6/kernel/power/swap.c
@@ -71,7 +71,8 @@ static int submit(int rw, pgoff_t page_o
bio->bi_end_io = end_swap_bio_read;
if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) {
- printk("swsusp: ERROR: adding page to bio at %ld\n", page_off);
+ printk(KERN_ERR "PM: Adding page to bio failed at %ld\n",
+ page_off);
bio_put(bio);
return -EFAULT;
}
@@ -151,7 +152,7 @@ static int mark_swapfiles(sector_t start
error = bio_write_page(swsusp_resume_block,
swsusp_header, NULL);
} else {
- printk(KERN_ERR "swsusp: Swap header not found!\n");
+ printk(KERN_ERR "PM: Swap header not found!\n");
error = -ENODEV;
}
return error;
@@ -323,7 +324,8 @@ static int save_image(struct swap_map_ha
struct timeval start;
struct timeval stop;
- printk("Saving image data pages (%u pages) ... ", nr_to_write);
+ printk(KERN_INFO "PM: Saving image data pages (%u pages) ... ",
+ nr_to_write);
m = nr_to_write / 100;
if (!m)
m = 1;
@@ -363,7 +365,7 @@ static int enough_swap(unsigned int nr_p
{
unsigned int free_swap = count_swap_pages(root_swap, 1);
- pr_debug("swsusp: free swap pages: %u\n", free_swap);
+ pr_debug("PM: Free swap pages: %u\n", free_swap);
return free_swap > nr_pages + PAGES_FOR_IO;
}
@@ -386,7 +388,7 @@ int swsusp_write(unsigned int flags)
error = swsusp_swap_check();
if (error) {
- printk(KERN_ERR "swsusp: Cannot find swap device, try "
+ printk(KERN_ERR "PM: Cannot find swap device, try "
"swapon -a.\n");
return error;
}
@@ -400,7 +402,7 @@ int swsusp_write(unsigned int flags)
}
header = (struct swsusp_info *)data_of(snapshot);
if (!enough_swap(header->pages)) {
- printk(KERN_ERR "swsusp: Not enough free swap\n");
+ printk(KERN_ERR "PM: Not enough free swap\n");
error = -ENOSPC;
goto out;
}
@@ -415,7 +417,7 @@ int swsusp_write(unsigned int flags)
if (!error) {
flush_swap_writer(&handle);
- printk("S");
+ printk(KERN_INFO "PM: S");
error = mark_swapfiles(start, flags);
printk("|\n");
}
@@ -505,7 +507,8 @@ static int load_image(struct swap_map_ha
int err2;
unsigned nr_pages;
- printk("Loading image data pages (%u pages) ... ", nr_to_read);
+ printk(KERN_INFO "PM: Loading image data pages (%u pages) ... ",
+ nr_to_read);
m = nr_to_read / 100;
if (!m)
m = 1;
@@ -556,7 +559,7 @@ int swsusp_read(unsigned int *flags_p)
*flags_p = swsusp_header->flags;
if (IS_ERR(resume_bdev)) {
- pr_debug("swsusp: block device not initialised\n");
+ pr_debug("PM: Image device not initialised\n");
return PTR_ERR(resume_bdev);
}
@@ -575,9 +578,9 @@ int swsusp_read(unsigned int *flags_p)
blkdev_put(resume_bdev);
if (!error)
- pr_debug("swsusp: Reading resume file was successful\n");
+ pr_debug("PM: Image successfully loaded\n");
else
- pr_debug("swsusp: Error %d resuming\n", error);
+ pr_debug("PM: Error %d resuming\n", error);
return error;
}
@@ -609,13 +612,13 @@ int swsusp_check(void)
if (error)
blkdev_put(resume_bdev);
else
- pr_debug("swsusp: Signature found, resuming\n");
+ pr_debug("PM: Signature found, resuming\n");
} else {
error = PTR_ERR(resume_bdev);
}
if (error)
- pr_debug("swsusp: Error %d check for resume file\n", error);
+ pr_debug("PM: Error %d checking image file\n", error);
return error;
}
@@ -627,7 +630,7 @@ int swsusp_check(void)
void swsusp_close(void)
{
if (IS_ERR(resume_bdev)) {
- pr_debug("swsusp: block device not initialised\n");
+ pr_debug("PM: Image device not initialised\n");
return;
}
Index: linux-2.6/kernel/power/swsusp.c
===================================================================
--- linux-2.6.orig/kernel/power/swsusp.c
+++ linux-2.6/kernel/power/swsusp.c
@@ -188,7 +188,8 @@ void swsusp_show_speed(struct timeval *s
centisecs = 1; /* avoid div-by-zero */
k = nr_pages * (PAGE_SIZE / 1024);
kps = (k * 100) / centisecs;
- printk("%s %d kbytes in %d.%02d seconds (%d.%02d MB/s)\n", msg, k,
+ printk(KERN_INFO "PM: %s %d kbytes in %d.%02d seconds (%d.%02d MB/s)\n",
+ msg, k,
centisecs / 100, centisecs % 100,
kps / 1000, (kps % 1000) / 10);
}
@@ -219,7 +220,7 @@ int swsusp_shrink_memory(void)
char *p = "-\\|/";
struct timeval start, stop;
- printk("Shrinking memory... ");
+ printk(KERN_INFO "PM: Shrinking memory... ");
do_gettimeofday(&start);
do {
long size, highmem_size;
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/7] Hibernation: Fix comment in disk.c
2007-11-28 0:28 ` [PATCH 4/7] Hibernation: Fix comment in disk.c Rafael J. Wysocki
@ 2007-11-28 10:08 ` Pavel Machek
0 siblings, 0 replies; 12+ messages in thread
From: Pavel Machek @ 2007-11-28 10:08 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: pm list, LKML
On Wed 2007-11-28 01:28:18, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> Fix a comment in kernel/power/disk.c so that it doesn't contain lines
> longer that 80 characters.
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
ACK.
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 5/7] Hibernation: Remove unnecessary variable declaration
2007-11-28 0:29 ` [PATCH 5/7] Hibernation: Remove unnecessary variable declaration Rafael J. Wysocki
@ 2007-11-28 10:09 ` Pavel Machek
0 siblings, 0 replies; 12+ messages in thread
From: Pavel Machek @ 2007-11-28 10:09 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: pm list, LKML
On Wed 2007-11-28 01:29:21, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> Remove the unnecessary extern declaration of resume_file[]
> from kernel/power/swap.c .
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
ACK (and thanks).
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 6/7] Suspend: Use common prefix in messages
2007-11-28 0:30 ` [PATCH 6/7] Suspend: Use common prefix in messages Rafael J. Wysocki
@ 2007-11-28 10:09 ` Pavel Machek
0 siblings, 0 replies; 12+ messages in thread
From: Pavel Machek @ 2007-11-28 10:09 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: pm list, LKML
On Wed 2007-11-28 01:30:24, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> Make suspend messages start with one common prefix "PM: ".
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
ACK.
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 7/7] Hibernation: Update messages
2007-11-28 0:37 ` [PATCH 7/7] Hibernation: Update messages Rafael J. Wysocki
@ 2007-11-28 10:14 ` Pavel Machek
0 siblings, 0 replies; 12+ messages in thread
From: Pavel Machek @ 2007-11-28 10:14 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: pm list, LKML
Hi!
> Make hibernation messages start with one common prefix "PM: " and use
> the word "hibernation" in messages as a synonym of "suspend to disk".
>
> Turn some KERN_INFO messages into debug ones.
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
ACK. Whole series looks good.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2007-11-28 10:14 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-28 0:13 [PATCH 0/7] Suspend and hibernation code cleanups (rev. 2) Rafael J. Wysocki
2007-11-28 0:15 ` [PATCH 1/7] Suspend: Fix compilation warning for CONFIG_SUSPEND unset Rafael J. Wysocki
2007-11-28 0:26 ` [PATCH 2/7] Hibernation: Move low level resume to disk.c Rafael J. Wysocki
2007-11-28 0:27 ` [PATCH 3/7] Suspend: Fix comment in main.c Rafael J. Wysocki
2007-11-28 0:28 ` [PATCH 4/7] Hibernation: Fix comment in disk.c Rafael J. Wysocki
2007-11-28 10:08 ` Pavel Machek
2007-11-28 0:29 ` [PATCH 5/7] Hibernation: Remove unnecessary variable declaration Rafael J. Wysocki
2007-11-28 10:09 ` Pavel Machek
2007-11-28 0:30 ` [PATCH 6/7] Suspend: Use common prefix in messages Rafael J. Wysocki
2007-11-28 10:09 ` Pavel Machek
2007-11-28 0:37 ` [PATCH 7/7] Hibernation: Update messages Rafael J. Wysocki
2007-11-28 10:14 ` Pavel Machek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).