[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