Re: [PATCH 08/19] ceph: address space operations

From: Sage Weil
Date: Fri Jul 24 2009 - 00:48:42 EST


On Thu, 23 Jul 2009, Andi Kleen wrote:
> > There are two other memory allocations during writeout: a vector of pages
> > to be written, and the message we're sending to the OSD. If I use a
> > mempool for those to guarantee as least some writeout will occur, how do I
> > safely defer when allocations do fail? Will pdflush (or it's replacement)
> > eventually come back and try ->writepages() again?
>
> mempool allocs should never fail, just block for a long time until
> someone else frees. This means you need to ensure of course you
> always make forward progress.

Oh, that avoids the issue reasonably well then.

Using mempools for the message passing is going to be a bit trickier (need
to avoid any deadlocks due to dependencies on other messages), but it's
doable. At least in the limited case of making writeback proceed.

sage
--
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/