On Mon, Sep 13, 2010 at 05:51:30PM +0800, Mel Gorman wrote: > On Sun, Sep 12, 2010 at 11:49:46PM +0800, Wu Fengguang wrote: > > The dirty_ratio was siliently 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. > > > > Let's rip the arbitrary internal bound. It may impact some very weird > > user space applications. However we are going to dynamicly sizing the > > dirty limits anyway, which may well break such applications, too. > > > > At the same time, fix balance_dirty_pages() to work with the > > dirty_thresh=0 case. This allows applications to proceed when > > dirty+writeback pages are all cleaned. > > > > And ">" fits with the name "exceeded" better than ">=" does. Neil > > think it is an aesthetic improvement as well as a functional one :) > > > > CC: Jan Kara <jack@xxxxxxx> > > Proposed-by: Con Kolivas <kernel@xxxxxxxxxxx> > > Acked-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> > > Reviewed-by: Rik van Riel <riel@xxxxxxxxxx> > > Reviewed-by: Neil Brown <neilb@xxxxxxx> > > Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> > > Signed-off-by: Wu Fengguang <fengguang.wu@xxxxxxxxx> > > --- > > fs/fs-writeback.c | 2 +- > > mm/page-writeback.c | 16 +++++----------- > > 2 files changed, 6 insertions(+), 12 deletions(-) > > > > --- linux-next.orig/mm/page-writeback.c 2010-08-29 08:10:30.000000000 +0800 > > +++ linux-next/mm/page-writeback.c 2010-08-29 08:12:08.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; > > > > What kernel is this? In a recent mainline kernel and on linux-next, this > is It applies to linux-next 20100903. > dirty = (dirty_ratio * available_memory) / 100; > > i.e. * instead of +. With +, the value for dirty is almost always going > to be simply 1%. Where's the "+" come from? Thanks, Fengguang -- 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>