Re: [PATCH v2 05/10] percpu: Wire up cmpxchg128

From
Arnd Bergmann <arnd@arndb.de>
Date
2023-02-06 13:31:05
Also in
linux-arch, linux-doc, linux-iommu, linux-mm, linux-s390, lkml
Reply to
Peter Zijlstra, 2023-02-06
On Mon, Feb 6, 2023, at 13:48, Peter Zijlstra wrote:
On Mon, Feb 06, 2023 at 01:14:28PM +0100, Peter Zijlstra wrote:
quoted
On Mon, Feb 06, 2023 at 12:24:00PM +0100, Peter Zijlstra wrote:
Basically, using 64bit percpu ops on 32bit is already somewhat dangerous
-- wiring up native cmpxchg64 support in that case seemed an
improvement.

Anyway... let me get on with doing explicit
{raw,this}_cpu_cmpxchg{64,128}() thingies.
I only converted x86 and didn't do the automagic downgrade...

Opinions?
I think that's much better, it keeps the interface symmetric
between cmpxchg and this_cpu_cmp_cmpxchg, and makes it harder
to run into the subtle corner case on old x86 CPUs.

For the M486/M586/MK8/MPSC/MATOM/MCORE2 configs, I would
probably want to go with a compile-time check and have most
distro kernels build with at least M586TSC for 32-bit or
an upgraded CONFIG_GENERIC_CPU for x86_64 that assumes cmpxchg16b
(nehalem, second-geneneration k8, silverthorne, ...) in
order to turn system_has_cmpxchg* into a constant value on
all architectures. That can be a separate discussion though
and shouldn't block your series as you just keep the current
state.
-#ifdef system_has_freelist_aba
+#ifdef syste_has_freelist_aba
Typo

    Arnd
Thread (31 messages) 31 messages, 10 authors, last reply 2023-02-08
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help