[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20100415154328.D18F.A69D9226@jp.fujitsu.com>
Date: Thu, 15 Apr 2010 15:44:50 +0900 (JST)
From: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>
To: Dave Chinner <david@...morbit.com>
Cc: kosaki.motohiro@...fujitsu.com, Mel Gorman <mel@....ul.ie>,
Chris Mason <chris.mason@...cle.com>,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
linux-fsdevel@...r.kernel.org
Subject: Re: [PATCH] mm: disallow direct reclaim page writeback
> On Thu, Apr 15, 2010 at 01:35:17PM +0900, KOSAKI Motohiro wrote:
> > > Hi
> > >
> > > > How about this? For now, we stop direct reclaim from doing writeback
> > > > only on order zero allocations, but allow it for higher order
> > > > allocations. That will prevent the majority of situations where
> > > > direct reclaim blows the stack and interferes with background
> > > > writeout, but won't cause lumpy reclaim to change behaviour.
> > > > This reduces the scope of impact and hence testing and validation
> > > > the needs to be done.
> > >
> > > Tend to agree. but I would proposed slightly different algorithm for
> > > avoind incorrect oom.
> > >
> > > for high order allocation
> > > allow to use lumpy reclaim and pageout() for both kswapd and direct reclaim
> > >
> > > for low order allocation
> > > - kswapd: always delegate io to flusher thread
> > > - direct reclaim: delegate io to flusher thread only if vm pressure is low
> > >
> > > This seems more safely. I mean Who want see incorrect oom regression?
> > > I've made some pathes for this. I'll post it as another mail.
> >
> > Now, kernel compile and/or backup operation seems keep nr_vmscan_write==0.
> > Dave, can you please try to run your pageout annoying workload?
>
> It's just as easy for you to run and observe the effects. Start with a VM
> with 1GB RAM and a 10GB scratch block device:
>
> # mkfs.xfs -f /dev/<blah>
> # mount -o logbsize=262144,nobarrier /dev/<blah> /mnt/scratch
>
> in one shell:
>
> # while [ 1 ]; do dd if=/dev/zero of=/mnt/scratch/foo bs=1024k ; done
>
> in another shell, if you have fs_mark installed, run:
>
> # ./fs_mark -S0 -n 100000 -F -s 0 -d /mnt/scratch/0 -d /mnt/scratch/1 -d /mnt/scratch/3 -d /mnt/scratch/2 &
>
> otherwise run a couple of these in parallel on different directories:
>
> # for i in `seq 1 1 100000`; do echo > /mnt/scratch/0/foo.$i ; done
Thanks.
Unfortunately, I don't have unused disks. So, I'll try it at (probably)
next week.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists