Re: [PATCH] writeback: remove the internal 5% low bound on dirty_ratio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> writeback: remove the internal 5% low bound on dirty_ratio
> 
> The dirty_ratio was silently limited in global_dirty_limits() to >= 5%. This
> is not a user expected behavior. And it's inconsistent with calc_period_shift(),
> which uses the plain vm_dirty_ratio value. So let's rip the internal bound.
> 
> At the same time, force a user visible low bound of 1% for the vm.dirty_ratio
> interface. Applications trying to write 0 will be rejected with -EINVAL. This
> will break user space applications if they
> 1) try to write 0 to vm.dirty_ratio
> 2) and check the return value
> That is very weird combination, so the risk of breaking user space is low.

I'm ok this one too. because I bet nobody use 0% dirty ratio on their production
server and/or their own desktop. (i.e. I don't mind lab machine crash)

	Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>

> 
> CC: Jan Kara <jack@xxxxxxx>
> CC: Neil Brown <neilb@xxxxxxx>
> CC: Rik van Riel <riel@xxxxxxxxxx>
> CC: Con Kolivas <kernel@xxxxxxxxxxx>
> CC: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> CC: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>
> Signed-off-by: Wu Fengguang <fengguang.wu@xxxxxxxxx>
> ---
>  kernel/sysctl.c     |    2 +-
>  mm/page-writeback.c |   10 ++--------
>  2 files changed, 3 insertions(+), 9 deletions(-)
> 
> --- linux-next.orig/mm/page-writeback.c	2010-08-20 20:14:11.000000000 +0800
> +++ linux-next/mm/page-writeback.c	2010-08-23 10:31:01.000000000 +0800
> @@ -415,14 +415,8 @@ void global_dirty_limits(unsigned long *
>  
>  	if (vm_dirty_bytes)
>  		dirty = DIV_ROUND_UP(vm_dirty_bytes, PAGE_SIZE);
> -	else {
> -		int dirty_ratio;
> -
> -		dirty_ratio = vm_dirty_ratio;
> -		if (dirty_ratio < 5)
> -			dirty_ratio = 5;
> -		dirty = (dirty_ratio * available_memory) / 100;
> -	}
> +	else
> +		dirty = (vm_dirty_ratio * available_memory) / 100;
>  
>  	if (dirty_background_bytes)
>  		background = DIV_ROUND_UP(dirty_background_bytes, PAGE_SIZE);
> --- linux-next.orig/kernel/sysctl.c	2010-08-23 14:06:11.000000000 +0800
> +++ linux-next/kernel/sysctl.c	2010-08-23 14:07:30.000000000 +0800
> @@ -1029,7 +1029,7 @@ static struct ctl_table vm_table[] = {
>  		.maxlen		= sizeof(vm_dirty_ratio),
>  		.mode		= 0644,
>  		.proc_handler	= dirty_ratio_handler,
> -		.extra1		= &zero,
> +		.extra1		= &one,
>  		.extra2		= &one_hundred,
>  	},
>  	{



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]