linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative
@ 2011-11-04  7:36 Barry Song
  2011-11-04 22:29 ` Rafael J. Wysocki
  2011-11-05 18:22 ` Pavel Machek
  0 siblings, 2 replies; 9+ messages in thread
From: Barry Song @ 2011-11-04  7:36 UTC (permalink / raw)
  To: linux-arm-kernel

From: Barry Song <Baohua.Song@csr.com>

Current swsusp requires swap partitions even larger than real saved pages
due to the worst compress ratio:
but for an embedded system, which has limited storage space, then it might
can't give the big size partition to save snapshot.
In the another way, some embedded systems can definitely know the most size
needed for snapshot since they run some specific application lists.
So this patch provides the possibility for bootloader to tell kernel even
the system has a little snapshot partition, but it is still enough.
For example, if the system need to save 120MB memory, origin swsusp will require
a 130MB partition to save snapshot. but if users know 30MB is enough for them(
compressed image will be less than 30MB), they just make a 30MB partition.

Signed-off-by: Barry Song <Baohua.Song@csr.com>
Cc: Xiangzhen Ye <Xiangzhen.Ye@csr.com>
---
 this is another patch after I provide resumewait/resumedelay kernel params
 to make swsusp support embedded systems better.
 This patch is tested on CSR SiRFprimaII platform.

 Documentation/kernel-parameters.txt |    7 +++++++
 kernel/power/swap.c                 |   13 +++++++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index a0c5c5f..2ad2e9c 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -2277,6 +2277,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 			in <PAGE_SIZE> units (needed only for swap files).
 			See  Documentation/power/swsusp-and-swap-files.txt
 
+	swapenough	[SWSUSP]
+			Tell kernel the swap partition size is enough and let kernel
+			skip checking whether the swap partition has enough size to
+			save snapshot.
+			It is used for embedded systems, typically using NAND and SD
+			card, which have not large space.
+
 	resumedelay=	[HIBERNATION] Delay (in seconds) to pause before attempting to
 			read the resume files
 
diff --git a/kernel/power/swap.c b/kernel/power/swap.c
index 11a594c..97c30b5 100644
--- a/kernel/power/swap.c
+++ b/kernel/power/swap.c
@@ -36,6 +36,8 @@
 
 #define HIBERNATE_SIG	"S1SUSPEND"
 
+static int swapenough;
+
 /*
  *	The swap map is a data structure used for keeping track of each page
  *	written to a swap partition.  It consists of many swap_map_page
@@ -772,6 +774,9 @@ static int enough_swap(unsigned int nr_pages, unsigned int flags)
 	unsigned int free_swap = count_swap_pages(root_swap, 1);
 	unsigned int required;
 
+	if (swapenough)
+		return 1;
+
 	pr_debug("PM: Free swap pages: %u\n", free_swap);
 
 	required = PAGES_FOR_IO + ((flags & SF_NOCOMPRESS_MODE) ?
@@ -1449,3 +1454,11 @@ static int swsusp_header_init(void)
 }
 
 core_initcall(swsusp_header_init);
+
+static int __init swapenough_setup(char *str)
+{
+	swapenough = 1;
+	return 1;
+}
+
+__setup("swapenough", swapenough_setup);
-- 
1.7.1



Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
More information can be found at www.csr.com. Follow CSR on Twitter at http://twitter.com/CSR_PLC and read our blog at www.csr.com/blog

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative
@ 2011-11-04  7:37 Barry Song
  0 siblings, 0 replies; 9+ messages in thread
From: Barry Song @ 2011-11-04  7:37 UTC (permalink / raw)
  To: linux-arm-kernel

From: Barry Song <Baohua.Song@csr.com>

Current swsusp requires swap partitions even larger than real saved pages
due to the worst compress ratio:
but for an embedded system, which has limited storage space, then it might
can't give the big size partition to save snapshot.
In the another way, some embedded systems can definitely know the most size
needed for snapshot since they run some specific application lists.
So this patch provides the possibility for bootloader to tell kernel even
the system has a little snapshot partition, but it is still enough.
For example, if the system need to save 120MB memory, origin swsusp will require
a 130MB partition to save snapshot. but if users know 30MB is enough for them(
compressed image will be less than 30MB), they just make a 30MB partition.

Signed-off-by: Barry Song <Baohua.Song@csr.com>
Cc: Xiangzhen Ye <Xiangzhen.Ye@csr.com>
---
 this is another patch after I provide resumewait/resumedelay kernel params
 to make swsusp support embedded systems better.
 This patch is tested on CSR SiRFprimaII platform.

 Documentation/kernel-parameters.txt |    7 +++++++
 kernel/power/swap.c                 |   13 +++++++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index a0c5c5f..2ad2e9c 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -2277,6 +2277,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 			in <PAGE_SIZE> units (needed only for swap files).
 			See  Documentation/power/swsusp-and-swap-files.txt
 
+	swapenough	[SWSUSP]
+			Tell kernel the swap partition size is enough and let kernel
+			skip checking whether the swap partition has enough size to
+			save snapshot.
+			It is used for embedded systems, typically using NAND and SD
+			card, which have not large space.
+
 	resumedelay=	[HIBERNATION] Delay (in seconds) to pause before attempting to
 			read the resume files
 
diff --git a/kernel/power/swap.c b/kernel/power/swap.c
index 11a594c..97c30b5 100644
--- a/kernel/power/swap.c
+++ b/kernel/power/swap.c
@@ -36,6 +36,8 @@
 
 #define HIBERNATE_SIG	"S1SUSPEND"
 
+static int swapenough;
+
 /*
  *	The swap map is a data structure used for keeping track of each page
  *	written to a swap partition.  It consists of many swap_map_page
@@ -772,6 +774,9 @@ static int enough_swap(unsigned int nr_pages, unsigned int flags)
 	unsigned int free_swap = count_swap_pages(root_swap, 1);
 	unsigned int required;
 
+	if (swapenough)
+		return 1;
+
 	pr_debug("PM: Free swap pages: %u\n", free_swap);
 
 	required = PAGES_FOR_IO + ((flags & SF_NOCOMPRESS_MODE) ?
@@ -1449,3 +1454,11 @@ static int swsusp_header_init(void)
 }
 
 core_initcall(swsusp_header_init);
+
+static int __init swapenough_setup(char *str)
+{
+	swapenough = 1;
+	return 1;
+}
+
+__setup("swapenough", swapenough_setup);
-- 
1.7.1



Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
More information can be found at www.csr.com. Follow CSR on Twitter at http://twitter.com/CSR_PLC and read our blog at www.csr.com/blog

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative
  2011-11-04  7:36 [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative Barry Song
@ 2011-11-04 22:29 ` Rafael J. Wysocki
  2011-11-05  1:51   ` [linux-pm] " Barry Song
  2011-11-05 18:22 ` Pavel Machek
  1 sibling, 1 reply; 9+ messages in thread
From: Rafael J. Wysocki @ 2011-11-04 22:29 UTC (permalink / raw)
  To: linux-arm-kernel

On Friday, November 04, 2011, Barry Song wrote:
> From: Barry Song <Baohua.Song@csr.com>
> 
> Current swsusp requires swap partitions even larger than real saved pages
> due to the worst compress ratio:
> but for an embedded system, which has limited storage space, then it might
> can't give the big size partition to save snapshot.
> In the another way, some embedded systems can definitely know the most size
> needed for snapshot since they run some specific application lists.
> So this patch provides the possibility for bootloader to tell kernel even
> the system has a little snapshot partition, but it is still enough.
> For example, if the system need to save 120MB memory, origin swsusp will require
> a 130MB partition to save snapshot. but if users know 30MB is enough for them(
> compressed image will be less than 30MB), they just make a 30MB partition.
> 
> Signed-off-by: Barry Song <Baohua.Song@csr.com>
> Cc: Xiangzhen Ye <Xiangzhen.Ye@csr.com>

I'm considering this as 3.3 material, so I'll take care of it after the current
merge window closes.

Thanks,
Rafael


> ---
>  this is another patch after I provide resumewait/resumedelay kernel params
>  to make swsusp support embedded systems better.
>  This patch is tested on CSR SiRFprimaII platform.
> 
>  Documentation/kernel-parameters.txt |    7 +++++++
>  kernel/power/swap.c                 |   13 +++++++++++++
>  2 files changed, 20 insertions(+), 0 deletions(-)
> 
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index a0c5c5f..2ad2e9c 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -2277,6 +2277,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
>  			in <PAGE_SIZE> units (needed only for swap files).
>  			See  Documentation/power/swsusp-and-swap-files.txt
>  
> +	swapenough	[SWSUSP]
> +			Tell kernel the swap partition size is enough and let kernel
> +			skip checking whether the swap partition has enough size to
> +			save snapshot.
> +			It is used for embedded systems, typically using NAND and SD
> +			card, which have not large space.
> +
>  	resumedelay=	[HIBERNATION] Delay (in seconds) to pause before attempting to
>  			read the resume files
>  
> diff --git a/kernel/power/swap.c b/kernel/power/swap.c
> index 11a594c..97c30b5 100644
> --- a/kernel/power/swap.c
> +++ b/kernel/power/swap.c
> @@ -36,6 +36,8 @@
>  
>  #define HIBERNATE_SIG	"S1SUSPEND"
>  
> +static int swapenough;
> +
>  /*
>   *	The swap map is a data structure used for keeping track of each page
>   *	written to a swap partition.  It consists of many swap_map_page
> @@ -772,6 +774,9 @@ static int enough_swap(unsigned int nr_pages, unsigned int flags)
>  	unsigned int free_swap = count_swap_pages(root_swap, 1);
>  	unsigned int required;
>  
> +	if (swapenough)
> +		return 1;
> +
>  	pr_debug("PM: Free swap pages: %u\n", free_swap);
>  
>  	required = PAGES_FOR_IO + ((flags & SF_NOCOMPRESS_MODE) ?
> @@ -1449,3 +1454,11 @@ static int swsusp_header_init(void)
>  }
>  
>  core_initcall(swsusp_header_init);
> +
> +static int __init swapenough_setup(char *str)
> +{
> +	swapenough = 1;
> +	return 1;
> +}
> +
> +__setup("swapenough", swapenough_setup);
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [linux-pm] [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative
  2011-11-04 22:29 ` Rafael J. Wysocki
@ 2011-11-05  1:51   ` Barry Song
  0 siblings, 0 replies; 9+ messages in thread
From: Barry Song @ 2011-11-05  1:51 UTC (permalink / raw)
  To: linux-arm-kernel

2011/11/5 Rafael J. Wysocki <rjw@sisk.pl>:
> On Friday, November 04, 2011, Barry Song wrote:
>> From: Barry Song <Baohua.Song@csr.com>
>>
>> Current swsusp requires swap partitions even larger than real saved pages
>> due to the worst compress ratio:
>> but for an embedded system, which has limited storage space, then it might
>> can't give the big size partition to save snapshot.
>> In the another way, some embedded systems can definitely know the most size
>> needed for snapshot since they run some specific application lists.
>> So this patch provides the possibility for bootloader to tell kernel even
>> the system has a little snapshot partition, but it is still enough.
>> For example, if the system need to save 120MB memory, origin swsusp will require
>> a 130MB partition to save snapshot. but if users know 30MB is enough for them(
>> compressed image will be less than 30MB), they just make a 30MB partition.
>>
>> Signed-off-by: Barry Song <Baohua.Song@csr.com>
>> Cc: Xiangzhen Ye <Xiangzhen.Ye@csr.com>
>
> I'm considering this as 3.3 material, so I'll take care of it after the current
> merge window closes.
>

ok. thanks. the idea is making swsusp support embedded systems with
limited resources better.
we can get into details after the current merge window.

> Thanks,
> Rafael
>
>
>> ---
>> ?this is another patch after I provide resumewait/resumedelay kernel params
>> ?to make swsusp support embedded systems better.
>> ?This patch is tested on CSR SiRFprimaII platform.
>>
>> ?Documentation/kernel-parameters.txt | ? ?7 +++++++
>> ?kernel/power/swap.c ? ? ? ? ? ? ? ? | ? 13 +++++++++++++
>> ?2 files changed, 20 insertions(+), 0 deletions(-)
>>
>> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
>> index a0c5c5f..2ad2e9c 100644
>> --- a/Documentation/kernel-parameters.txt
>> +++ b/Documentation/kernel-parameters.txt
>> @@ -2277,6 +2277,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
>> ? ? ? ? ? ? ? ? ? ? ? in <PAGE_SIZE> units (needed only for swap files).
>> ? ? ? ? ? ? ? ? ? ? ? See ?Documentation/power/swsusp-and-swap-files.txt
>>
>> + ? ? swapenough ? ? ?[SWSUSP]
>> + ? ? ? ? ? ? ? ? ? ? Tell kernel the swap partition size is enough and let kernel
>> + ? ? ? ? ? ? ? ? ? ? skip checking whether the swap partition has enough size to
>> + ? ? ? ? ? ? ? ? ? ? save snapshot.
>> + ? ? ? ? ? ? ? ? ? ? It is used for embedded systems, typically using NAND and SD
>> + ? ? ? ? ? ? ? ? ? ? card, which have not large space.
>> +
>> ? ? ? resumedelay= ? ?[HIBERNATION] Delay (in seconds) to pause before attempting to
>> ? ? ? ? ? ? ? ? ? ? ? read the resume files
>>
>> diff --git a/kernel/power/swap.c b/kernel/power/swap.c
>> index 11a594c..97c30b5 100644
>> --- a/kernel/power/swap.c
>> +++ b/kernel/power/swap.c
>> @@ -36,6 +36,8 @@
>>
>> ?#define HIBERNATE_SIG ? ? ? ?"S1SUSPEND"
>>
>> +static int swapenough;
>> +
>> ?/*
>> ? * ? The swap map is a data structure used for keeping track of each page
>> ? * ? written to a swap partition. ?It consists of many swap_map_page
>> @@ -772,6 +774,9 @@ static int enough_swap(unsigned int nr_pages, unsigned int flags)
>> ? ? ? unsigned int free_swap = count_swap_pages(root_swap, 1);
>> ? ? ? unsigned int required;
>>
>> + ? ? if (swapenough)
>> + ? ? ? ? ? ? return 1;
>> +
>> ? ? ? pr_debug("PM: Free swap pages: %u\n", free_swap);
>>
>> ? ? ? required = PAGES_FOR_IO + ((flags & SF_NOCOMPRESS_MODE) ?
>> @@ -1449,3 +1454,11 @@ static int swsusp_header_init(void)
>> ?}
>>
>> ?core_initcall(swsusp_header_init);
>> +
>> +static int __init swapenough_setup(char *str)
>> +{
>> + ? ? swapenough = 1;
>> + ? ? return 1;
>> +}
>> +
>> +__setup("swapenough", swapenough_setup);
>>
-barry

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative
  2011-11-04  7:36 [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative Barry Song
  2011-11-04 22:29 ` Rafael J. Wysocki
@ 2011-11-05 18:22 ` Pavel Machek
  2011-11-06  3:24   ` [linux-pm] " Barry Song
  1 sibling, 1 reply; 9+ messages in thread
From: Pavel Machek @ 2011-11-05 18:22 UTC (permalink / raw)
  To: linux-arm-kernel

Hi!

> From: Barry Song <Baohua.Song@csr.com>
> 
> Current swsusp requires swap partitions even larger than real saved pages
> due to the worst compress ratio:
> but for an embedded system, which has limited storage space, then it might
> can't give the big size partition to save snapshot.
> In the another way, some embedded systems can definitely know the most size
> needed for snapshot since they run some specific application lists.
> So this patch provides the possibility for bootloader to tell kernel even
> the system has a little snapshot partition, but it is still enough.
> For example, if the system need to save 120MB memory, origin swsusp will require
> a 130MB partition to save snapshot. but if users know 30MB is enough for them(
> compressed image will be less than 30MB), they just make a 30MB
> partition.

Would it be better to have /sys/power/... entry which would allow
configuring expected compression ratio at runtime?
								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] 9+ messages in thread

* [linux-pm] [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative
  2011-11-05 18:22 ` Pavel Machek
@ 2011-11-06  3:24   ` Barry Song
  2011-11-07  1:31     ` Barry Song
  0 siblings, 1 reply; 9+ messages in thread
From: Barry Song @ 2011-11-06  3:24 UTC (permalink / raw)
  To: linux-arm-kernel

2011/11/6 Pavel Machek <pavel@ucw.cz>:
> Hi!
>
>> From: Barry Song <Baohua.Song@csr.com>
>>
>> Current swsusp requires swap partitions even larger than real saved pages
>> due to the worst compress ratio:
>> but for an embedded system, which has limited storage space, then it might
>> can't give the big size partition to save snapshot.
>> In the another way, some embedded systems can definitely know the most size
>> needed for snapshot since they run some specific application lists.
>> So this patch provides the possibility for bootloader to tell kernel even
>> the system has a little snapshot partition, but it is still enough.
>> For example, if the system need to save 120MB memory, origin swsusp will require
>> a 130MB partition to save snapshot. but if users know 30MB is enough for them(
>> compressed image will be less than 30MB), they just make a 30MB
>> partition.
>
> Would it be better to have /sys/power/... entry which would allow
> configuring expected compression ratio at runtime?

i think it is better to have a sys node than add another kernel param.
but the point is i only care about the final image size but not
compression ratio. i don't care how well lzo will do for me since i
only have limited disk space and know how many pages want to be saved.
there has been a image_size node, will we have a expected_image_size node?
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Pavel
>
> --
Thanks
barry

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [linux-pm] [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative
  2011-11-06  3:24   ` [linux-pm] " Barry Song
@ 2011-11-07  1:31     ` Barry Song
  2011-11-18 19:02       ` Pavel Machek
  0 siblings, 1 reply; 9+ messages in thread
From: Barry Song @ 2011-11-07  1:31 UTC (permalink / raw)
  To: linux-arm-kernel

2011/11/6 Barry Song <21cnbao@gmail.com>:
> 2011/11/6 Pavel Machek <pavel@ucw.cz>:
>> Hi!
>>
>>> From: Barry Song <Baohua.Song@csr.com>
>>>
>>> Current swsusp requires swap partitions even larger than real saved pages
>>> due to the worst compress ratio:
>>> but for an embedded system, which has limited storage space, then it might
>>> can't give the big size partition to save snapshot.
>>> In the another way, some embedded systems can definitely know the most size
>>> needed for snapshot since they run some specific application lists.
>>> So this patch provides the possibility for bootloader to tell kernel even
>>> the system has a little snapshot partition, but it is still enough.
>>> For example, if the system need to save 120MB memory, origin swsusp will require
>>> a 130MB partition to save snapshot. but if users know 30MB is enough for them(
>>> compressed image will be less than 30MB), they just make a 30MB
>>> partition.
>>
>> Would it be better to have /sys/power/... entry which would allow
>> configuring expected compression ratio at runtime?
>
> i think it is better to have a sys node than add another kernel param.
> but the point is i only care about the final image size but not
> compression ratio. i don't care how well lzo will do for me since i
> only have limited disk space and know how many pages want to be saved.
> there has been a image_size node, will we have a expected_image_size node?

or will we have just a node named /sys/power/check_size, if
1(default), check, otherwise(0 set by users), skip checking?

>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Pavel

-barry

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [linux-pm] [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative
  2011-11-07  1:31     ` Barry Song
@ 2011-11-18 19:02       ` Pavel Machek
  2011-11-19 11:17         ` Barry Song
  0 siblings, 1 reply; 9+ messages in thread
From: Pavel Machek @ 2011-11-18 19:02 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon 2011-11-07 09:31:10, Barry Song wrote:
> 2011/11/6 Barry Song <21cnbao@gmail.com>:
> > 2011/11/6 Pavel Machek <pavel@ucw.cz>:
> >> Hi!
> >>
> >>> From: Barry Song <Baohua.Song@csr.com>
> >>>
> >>> Current swsusp requires swap partitions even larger than real saved pages
> >>> due to the worst compress ratio:
> >>> but for an embedded system, which has limited storage space, then it might
> >>> can't give the big size partition to save snapshot.
> >>> In the another way, some embedded systems can definitely know the most size
> >>> needed for snapshot since they run some specific application lists.
> >>> So this patch provides the possibility for bootloader to tell kernel even
> >>> the system has a little snapshot partition, but it is still enough.
> >>> For example, if the system need to save 120MB memory, origin swsusp will require
> >>> a 130MB partition to save snapshot. but if users know 30MB is enough for them(
> >>> compressed image will be less than 30MB), they just make a 30MB
> >>> partition.
> >>
> >> Would it be better to have /sys/power/... entry which would allow
> >> configuring expected compression ratio at runtime?
> >
> > i think it is better to have a sys node than add another kernel param.
> > but the point is i only care about the final image size but not
> > compression ratio. i don't care how well lzo will do for me since i
> > only have limited disk space and know how many pages want to be saved.
> > there has been a image_size node, will we have a expected_image_size node?
> 
> or will we have just a node named /sys/power/check_size, if
> 1(default), check, otherwise(0 set by users), skip checking?

Or just avoid the check at all, since it no longer makes sense with
compression?

What is the failure scenario? Hibernation still fails, but it takes
longer to fail?

									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] 9+ messages in thread

* [linux-pm] [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative
  2011-11-18 19:02       ` Pavel Machek
@ 2011-11-19 11:17         ` Barry Song
  0 siblings, 0 replies; 9+ messages in thread
From: Barry Song @ 2011-11-19 11:17 UTC (permalink / raw)
  To: linux-arm-kernel

2011/11/19 Pavel Machek <pavel@ucw.cz>:
> On Mon 2011-11-07 09:31:10, Barry Song wrote:
>> 2011/11/6 Barry Song <21cnbao@gmail.com>:
>> > 2011/11/6 Pavel Machek <pavel@ucw.cz>:
>> >> Hi!
>> >>
>> >>> From: Barry Song <Baohua.Song@csr.com>
>> >>>
>> >>> Current swsusp requires swap partitions even larger than real saved pages
>> >>> due to the worst compress ratio:
>> >>> but for an embedded system, which has limited storage space, then it might
>> >>> can't give the big size partition to save snapshot.
>> >>> In the another way, some embedded systems can definitely know the most size
>> >>> needed for snapshot since they run some specific application lists.
>> >>> So this patch provides the possibility for bootloader to tell kernel even
>> >>> the system has a little snapshot partition, but it is still enough.
>> >>> For example, if the system need to save 120MB memory, origin swsusp will require
>> >>> a 130MB partition to save snapshot. but if users know 30MB is enough for them(
>> >>> compressed image will be less than 30MB), they just make a 30MB
>> >>> partition.
>> >>
>> >> Would it be better to have /sys/power/... entry which would allow
>> >> configuring expected compression ratio at runtime?
>> >
>> > i think it is better to have a sys node than add another kernel param.
>> > but the point is i only care about the final image size but not
>> > compression ratio. i don't care how well lzo will do for me since i
>> > only have limited disk space and know how many pages want to be saved.
>> > there has been a image_size node, will we have a expected_image_size node?
>>
>> or will we have just a node named /sys/power/check_size, if
>> 1(default), check, otherwise(0 set by users), skip checking?
>
> Or just avoid the check at all, since it no longer makes sense with
> compression?

current early check just makes the failure happen earier. in the
check, it requires more space than uncompressed data due to the worst
compress ratio. some users might have big space and complex scenerios,
they might want the earlier check. but it is really a big waste
considering text, data sections of programs are actually data which
can be compressed in a big ratio.

but for some other embedded system users, they have limited storage
and known sw list, then they know their little space is enough for
compressed image.

i think we can make the function as a option for users. provide a node
/sys/power/check_swap_size, if users set it to 0, ignore the check.
otherwise, check by the worst compress ratio.

>
> What is the failure scenario? Hibernation still fails, but it takes
> longer to fail?

it will fail some later. but i still expect the system can restore to
be normal even it fails in the saving stage. i can give a test.

>
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Pavel
> --
-barry

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-11-19 11:17 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-04  7:36 [PATCH] PM: HIBERNATION: skip the swap size check if the snapshot image size is anticipative Barry Song
2011-11-04 22:29 ` Rafael J. Wysocki
2011-11-05  1:51   ` [linux-pm] " Barry Song
2011-11-05 18:22 ` Pavel Machek
2011-11-06  3:24   ` [linux-pm] " Barry Song
2011-11-07  1:31     ` Barry Song
2011-11-18 19:02       ` Pavel Machek
2011-11-19 11:17         ` Barry Song
  -- strict thread matches above, loose matches on Subject: below --
2011-11-04  7:37 Barry Song

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).