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

Linus Torvalds torvalds at linux-foundation.org
Tue Aug 16 11:02:02 PDT 2022


On Tue, Aug 16, 2022 at 10:49 AM Jon Nettleton <jon at solid-run.com> 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



More information about the linux-arm-kernel mailing list