Re: [PATCH v2 00/33] locking/atomic: convert all architectures to ARCH_ATOMIC

From: Randy Dunlap
Date: Sun Jun 27 2021 - 17:48:19 EST


On 6/18/21 1:48 AM, Mark Rutland wrote:
> On Fri, Jun 04, 2021 at 10:56:16PM -0700, Randy Dunlap wrote:
>> On 5/25/21 7:01 AM, Mark Rutland wrote:
>>> This series (based on v5.13-rc2) converts all architectures to
>>> ARCH_ATOMIC. This will allow the use of instrumented atomics on all
>>> architectures (e.g. for KASAN and similar), and simplifies the core
>>> atomic code (which should allow for easier rework of the fallbacks and
>>> other bits in future).
>
> [...]
>
>> Hi Mark,
>> Sorry for the late reply.
>
> Hi Randy,
>
> Likewise, apologies in the delay in getting to this!
>
>> I was just trying to update a patch
>> to arch/sh/include/asm/cmpxchg.h, in its xchg() macro:
>>
>> https://lore.kernel.org/lkml/20210602231443.4670-2-rdunlap@xxxxxxxxxxxxx/
>>
>> The patch simply converts xchg() to a GCC statement expression to
>> eliminate a build warning.

Hm, with your locking/atomic patch series applied (in linux-next), I can
no longer make arch/sh/ get this build warning:

../fs/ocfs2/file.c: In function 'ocfs2_file_write_iter':
../arch/sh/include/asm/cmpxchg.h:49:3: warning: value computed is not used [-Wunused-value]
49 | ((__typeof__(*(ptr)))__xchg((ptr),(unsigned long)(x), sizeof(*(ptr))))


so I will go ahead with the rest of my arch/sh/ patches and then contemplate
what to do about this one.


>> Arnd has done this for m68k and I have done it for sparc in the past.
>>
>> Is there any (good) reason that all versions of arch_xchg() are not
>> statement expressions? In this patch series, they seem to be quite
>> mixed (as they were before this patch series). I count 11 arches
>> that use a statement expression and 4 that do not (including arch/sh/).
>
> Largely I tried to make the minimal change from what was there before,
> and I didn't have any specific reason to either use or avoid statement
> expressions.
>
> This series has been queued in the tip tree's locking/core branch for a
> while now, but we could spin a patch atop. Do you want to spin a patch
> to convert the remaining 4 architectures in one go?

I'll look at the 4 remaining arches later..

thanks.
--
~Randy