Re: [RFC PATCH] shrink_dcache_parent() deadlock

From: Christoph Hellwig
Date: Mon Jan 09 2012 - 14:05:01 EST


On Mon, Jan 09, 2012 at 10:46:22AM -0800, Linus Torvalds wrote:
> On Mon, Jan 9, 2012 at 10:30 AM, Linus Torvalds
> <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > Here's a TOTALLY UNTESTED rebase of just that single patch from Dave.
>
> Well, it boots, and the dentry cache shrinks under memory pressure. So
> it's not _totally_ untested now.
>
> But I don't really see why it would fix Miklos' case. I think
> select_parent() may still end up touching the d_lru list of something
> that is on the 'dispose' list. So the patch looks like a nice cleanup,
> but it seems to be independent of the issue Miklos found.
>
> What am I missing now?

After Dave's patch select_parent isolates dentries that are going to
be dropped directly to an on-stack list instead of abusing the LRU.

With that scheme the trylock and retry loop in __shrink_dcache_sb
goes away completely for this caller.
--
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/