Re: [PATCH] locking/atomic: Make test_and_*_bit() ordered on failure

From: Linus Torvalds
Date: Tue Aug 16 2022 - 14:03:38 EST


On Tue, Aug 16, 2022 at 10:49 AM Jon Nettleton <jon@xxxxxxxxxxxxx> wrote:
>
> It is moot if Linus has already taken the patch, but with a stock
> kernel config I am
> still seeing a slight performance dip but only ~1-2% in the specific
> tests I was running.

It would be interesting to hear if you can pinpoint in the profiles
where the time is spent.

It might be some random place that really doesn't care about ordering
at all, and then we could easily rewrite _that_ particular case to do
the unordered test explicitly, ie something like

- if (test_and_set_bit()) ...
+ if (test_bit() || test_and_set_bit()) ...

or even introduce an explicitly unordered "test_and_set_bit_relaxed()" thing.

Linus