Re: [PATCH] vfs: Fix RCU path walk failiures due to uninitializednameidata seq number for root directory

From: Linus Torvalds
Date: Fri Apr 15 2011 - 17:55:23 EST


On Fri, Apr 15, 2011 at 2:09 PM, Andi Kleen <ak@xxxxxxxxxxxxxxx> wrote:
> On 4/15/2011 11:39 AM, Tim Chen wrote:
>>
>> During RCU walk in path_lookupat and path_openat, the rcu lookup
>> frequently failed because when root directory was looked up, seq number
>> was not properly set in nameidata.  We dropped out of RCU walk in
>> nameidata_drop_rcu due to mismatch in directory entry's seq number.  We
>> reverted to slow path walk that need to take references.
>
> Thanks Tim. Adding Andrew, Linus too. IMHO this fix is quite important to
> actually make the fabled RCU dcache work -- without it it's just slower
> because
> it will fallback nearly allways.

Well, only for absolute paths, but yes.

I think all my benchmarking was for thing like "git diff", which are
all about the relative paths and wouldn't have triggered this case.

So this patch does look correct, and yes, should also be stable material for 38.

And it's pretty fundamental. But I'd like to get a few more acks
exactly because it's so fundamental. Al and Nick sadly are both gone.
Anybody else feel like they know something about the path lookup code?

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/