Re: [RFC] changes to buffer.c (was Test12 ll_rw_block error)

Rik van Riel
2001-01-05T20:30:05Z

On Fri, 5 Jan 2001, Marcelo Tosatti wrote:
> On Fri, 5 Jan 2001, Chris Mason wrote:
> > On Friday, January 05, 2001 01:43:07 PM -0200 Marcelo Tosatti
> > <marcelo@conectiva.com.br> wrote:
> > > On Fri, 5 Jan 2001, Chris Mason wrote:
> > >
> > >>
> > >> Here's the latest version of the patch, against 2.4.0. The
> > >> biggest open issues are what to do with bdflush, since
> > >> page_launder could do everything bdflush does.
> > >
> > > I think we want to remove flush_dirty_buffers() from bdflush.
> > >
> >
> > Whoops. If bdflush doesn't balance the dirty list, who does?
>
> Who marks buffers dirty.
>
> Linus changed mark_buffer_dirty() to use flush_dirty_buffers() in case
> there are too many dirty buffers.
>
> Also, I think in practice page_launder will help on balancing.

Chris is right. It is possible (not very likely, but possible
notheless) that the majority of the dirty pages are _active_
pages ... in that case page_launder() won't help one bit and
only flush_dirty_buffers() can do the job.

Also, you do not want the writer to block on writing out buffers
if bdflush could write them out asynchronously while the dirty
buffer producer can work on in the background.

regards,

Rik
--
Virtual memory is like a game you can't win;
However, without VM there's truly nothing to loose...

http://www.surriel.com/
http://www.conectiva.com/ http://distro.conectiva.com.br/