Re: [PATCH 10/10] mm: per device dirty threshold

From: Andrew Morton
Date: Sun Apr 22 2007 - 03:27:59 EST


On Sat, 21 Apr 2007 14:01:36 +0200 Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> wrote:

> On Sat, 2007-04-21 at 02:55 -0700, Andrew Morton wrote:
>
> > > +
> > > + __mod_bdi_stat64(bdi, BDI_WRITEOUT, -half);
> > > + bdi->cycles += cycle;
> > > + }
> > > + bdi->cycles = global_cycle;
> > > + spin_unlock_irqrestore(&bdi->lock, flags);
> > > +}
> >
> > Here we get to the real critical substance of the patchset, and I don't
> > have a clue what it's doing nor how it's doing it. And I bet nobody else
> > does either.
>
> I shall send a comment patch; but let me try to explain:
>
> I am trying to keep a floating proportion between the BDIs based on
> writeout events.

The term "writeout event" hasn't been defined. I assume that it refers to
something like "one call to balance_dirty_pages()". Or maybe "one pass
through balance_dirty_pages()'s inner loop". Or maybe something else.
This is important, because the reader is already a bit lost.

> That is, each device is given a share equal to its
> proportion of completed writebacks

In what units are "writebacks" measured? Pages?

> (writeback, we are in the process of
> writing vs. writeout, we have written). This proportion is measured in a
> 'time'-span measured itself in writeouts.

time is measured how? jiffies? Calls to balance_dirty_pages(), or passes
around its inner loop, or...

> Example:
>
> device A completes 4, device B completes 12 and, device C 16 writes.

writes of what? One page??

I think you get my point ;) Please start from the top. Define terms before
using them, always specify in what units all things are being measured,
assume *no* prior knowledge apart from general kernel-fu.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/