Re: [RFC 0/3] Recursive reclaim (on __PF_MEMALLOC)

Mike Snitzer
2007-09-08T05:12:34Z

On 9/5/07, Daniel Phillips <phillips@phunq.net> wrote:
> On Wednesday 05 September 2007 03:42, Christoph Lameter wrote:
> > On Wed, 5 Sep 2007, Daniel Phillips wrote:
> > > If we remove our anti-deadlock measures, including the
> > > ddsnap.vm.fixes (a roll-up of Peter's patch set) and the request
> > > throttling code in dm-ddsnap.c, and apply your patch set instead,
> > > we hit deadlock on the socket write path after a few hours
> > > (traceback tomorrow). So your patch set by itself is a stability
> > > regression.
> >
> > Na, that cannot be the case since it only activates when an OOM
> > condition would otherwise result.
>
> I did not express myself clearly then. Compared to our current
> anti-deadlock patch set, you patch set is a regression. Because
> without help from some of our other patches, it does deadlock.
> Obviously, we cannot have that.

Can you be specific about which changes to existing mainline code were
needed to make recursive reclaim "work" in your tests (albeit less
ideally than peterz's patchset in your view)?

Also, in a previous post you stated:

> Just to recap, we have identified two essential ingredients in the
> recipe for writeout deadlock prevention:
>
> 1) Throttle block IO traffic to a bounded maximum memory use.
>
> 2) Guarantee availability of the required amount of memory.

Which changes allowed you to address 1? I had a look at the various
patches you provided (via svn) and it wasn't clear which subset
fulfilled 1 for you. Does it work for all Block IO and not just
specially tuned drivers like ddsnap et al?

regards,
Mike