Re: [PATCH] writeback: remove the internal 5% low bound on dirty_ratio
From: KOSAKI Motohiro <hidden>
Date: 2010-08-24 00:00:53
Also in:
linux-fsdevel, lkml
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 [off-list ref]
quoted hunk ↗ jump to hunk
CC: Jan Kara <jack@suse.cz> CC: Neil Brown <redacted> CC: Rik van Riel <redacted> CC: Con Kolivas <redacted> CC: Peter Zijlstra <redacted> CC: KOSAKI Motohiro <redacted> Signed-off-by: Wu Fengguang <redacted> --- 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@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>