[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHk-=wgVzKtRnvDXAzueJTbgfo1o12Lw6DH97PzRe1cGA_b1oA@mail.gmail.com>
Date: Tue, 2 Jul 2024 10:28:04 -0700
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Mateusz Guzik <mjguzik@...il.com>
Cc: Christian Brauner <brauner@...nel.org>, kernel test robot <oliver.sang@...el.com>, oe-lkp@...ts.linux.dev,
lkp@...el.com, Linux Memory Management List <linux-mm@...ck.org>, linux-kernel@...r.kernel.org,
ying.huang@...el.com, feng.tang@...el.com, fengwei.yin@...el.com
Subject: Re: [linux-next:master] [lockref] d042dae6ad: unixbench.throughput
-33.7% regression
On Tue, 2 Jul 2024 at 10:03, Mateusz Guzik <mjguzik@...il.com> wrote:
>
> I was thinking a different approach.
>
> A lookup variant which resolves everything and returns the dentry + an
> information whether this is rcu mode.
That would work equally.
But the end result ends up being very similar: you need to hook into
that final complete_walk() -> try_to_unlazy() -> legitimize_path() and
check a flag whether you actually then do "get_lockref_or_dead()" or
not.
It really *shouldn't* be too bad, but this is just so subtle code that
it just takes a lot of care. Even if the patch itself ends up not
necessarily being very large.
As mentioned, I've looked at it, but it always ended up being _just_
scary enough that I never really started doing it.
Linus
Powered by blists - more mailing lists