Re: [RFC PATCH] shrink_dcache_parent() deadlock

From: Linus Torvalds
Date: Tue Jan 10 2012 - 11:34:25 EST


On Tue, Jan 10, 2012 at 8:22 AM, Miklos Szeredi <miklos@xxxxxxxxxx> wrote:
>
> You didn't quite get it right: the flag now needs to be set in
> select_parent() not prune_dcache_sb().

Ahhah.

> I think prune_dcache_sb() doesn't need this logic (although it
> wouldn't hurt either) because that one is called from the slab
> shrinkers and those are protected from being run multiple times in
> parallel, I hope.

Hmm. Even if they are never run in parallel, I think it would be much
nicer to do it in both, just so that there would be a conceptual
consistency of "when we remove the dentry from the LRU list and put it
on our pruning list, we set the bit". That cacheline will be dirty
anyway (due to the list move and getting the dentry lock), so setting
a bit is not expensive - but having odd inconsistent ad-hoc rules is
nasty.

Al?

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