Re: [RFC] [PATCH] A clean approach to writeout throttling

Daniel Phillips
2007-12-06T21:28:22Z

On Thursday 06 December 2007 12:27, Andrew Morton wrote:
> On Thu, 6 Dec 2007 12:04:14 -0800
>
> Daniel Phillips <phillips@phunq.net> wrote:
> > Any idea
> > how to extend the accounting idea to all tasks involved in a
> > particular block device stack?
>
> SMOP, I'd have thought.

Agreed, which I realized as soon as the post was one minute old. Sure,
each helper for the device registers as a helper which puts a pointer
in the task struct, which points to the accounting info so only one new
field in task struct. The more I ponder, the more doable it seems.

> As long as each piece of code which handles
> data for this stack knows that it's handling data for that stack it
> should be able to account its memory allocations.

Don't forget that we do not actually have a usable notion of "block
device stack" yet. Perhaps you are just assuming that is
easy/imminent?

> The tricky part will be networking allocations because a NIC can of
> course handle data for all sorts of consumers. But I expect this can
> be greatly simplified with a few heuristics - work out how much
> memory your typical networking stack will allocate for a frame and
> tack that onto the total. Couple of pages worst case..

Actually, the same pattern that Peter and I developed for handling
network deadlock extends to this accounting concept. As you say, it's
a SMOP.

Daniel