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 from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux