[Autistic] pdflush
Nick Leverton
nick at leverton.org
Thu May 25 19:41:07 BST 2006
On Thu, May 25, 2006 at 05:20:17PM +0100, Stephen Parkes wrote:
> The problem is when the two processes are competing for the disc they
> both get i/o bound and bugger all good comes of it. Even though ps
> shows plenty of spare cpu time available no other processes can make
> good use of it because the processor itself is waiting on i/o a lot of
> the time. When I hit the dirty page limit and flushing starts it's
> like the machine is running through treacle not at all good and it
> often takes several minutes to get back to it's normal self.
>
> Is there any way to tell the kernel that one pdflush process is enough
> and any more will have a negative effect?
On a very quick look at pdflush.c, it seems to be hard coded to sart
between two and eight pdflush threads, with a lock to prevent two
threads from trying to access the same filesystem at the same time.
A comment mentions that it should be one thread per disk spindle but
that the topology is hard to work out.
I think your quickest solution may be to change MIN_PDFLUSH_THREADS and
MAX_PDFLUSH_THREADS in mm/pdflush.c and rebuild the kernel.
Alternatively, it sounds like a problem the embedded linux people would
probably have had to tackle, if you fancy a lot of googling ? :)
Nick
More information about the Autistic
mailing list