Re: [RFC] using writepage to start io

Stephen C. Tweedie
2001-08-07T11:03:02Z

Hi,

On Mon, Aug 06, 2001 at 11:18:26PM +0200, Daniel Phillips wrote:
> > On Monday, August 06, 2001 09:45:12 PM +0200 Daniel Phillips
> >
> > Grin, we're talking in circles. My point is that by having two
> > threads, bdflush is allowed to skip over older buffers in favor of
> > younger ones because somebody else is responsible for writing the
> > older ones out.
>
> Yes, and you can't imagine an algorithm that could do that with *one*
> thread?

FWIW, we've seen big performance degradations in the past when testing
different ext3 checkpointing modes. You can't reuse a disk block in
the journal without making sure that the data in it has been flushed
to disk, so ext3 does regular checkpointing to flush journaled blocks
out. That can interact very badly with normal VM writeback if you're
not careful: having two threads doing the same thing at the same time
can just thrash the disk.

Parallel sync() calls from multiple processes has shown up the same
behaviour on ext2 in the past. I'd definitely like to see at most one
thread of writeback per disk to avoid that.

Cheers,
Stephen