Skip to contentSkip to conversation

mn10300: select generic atomic64_t support

PATCH In review Fengguang Wu 2 participants 2 messages Aug 14, 2012 – Dec 28, 2012

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mn10300: select generic atomic64_t support

Rationals from Eric:

So I just looked a little deeper and it appears architectures that do not support atomic64_t are broken.

The generic atomic64 support came in 2009 to support the perf subsystem with the expectation that all architectures would implement atomic64 support.

Furthermore upon inspection of the kernel atomic64_t is used in a fair number of places beyond the performance counters:

block/blk-cgroup.c
drivers/acpi/apei/
drivers/block/rbd.c
drivers/crypto/nx/nx.h
drivers/gpu/drm/radeon/radeon.h
drivers/infiniband/hw/ipath/
drivers/infiniband/hw/qib/
drivers/staging/octeon/
fs/xfs/
include/linux/perf_event.h
include/net/netfilter/nf_conntrack_acct.h
kernel/events/
kernel/trace/
net/mac80211/key.h
net/rds/

The block control group, infiniband, xfs, crypto, 802.11, netfilter. Nothing quite so fundamental as fs/namespace.c but definitely in multiplatform-code that should work, and is already broken on those architecutres.

Looking at the implementation of atomic64_add_return in lib/atomic64.c the code looks as efficient as these kinds of things get.

Which leads me to the conclusion that we need atomic64 support on all architectures.

CC "Eric W. Biederman" <[email protected]>
---
 arch/mn10300/Kconfig |    1 +
 1 file changed, 1 insertion(+)
arch/mn10300/Kconfig +1 -0
@@ -8,6 +8,7 @@ config MN10300
 	select HAVE_ARCH_KGDB
 	select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
 	select GENERIC_CLOCKEVENTS
+	select GENERIC_ATOMIC64
 
 config AM33_2
 	def_bool n
Acked-by on v1 1/1
#1 lore raw
Quoted 33 lines · Fengguang Wu

Rationals from Eric:

So I just looked a little deeper and it appears architectures that do not support atomic64_t are broken.

The generic atomic64 support came in 2009 to support the perf subsystem with the expectation that all architectures would implement atomic64 support.

Furthermore upon inspection of the kernel atomic64_t is used in a fair number of places beyond the performance counters:

block/blk-cgroup.c
drivers/acpi/apei/
drivers/block/rbd.c
drivers/crypto/nx/nx.h
drivers/gpu/drm/radeon/radeon.h
drivers/infiniband/hw/ipath/
drivers/infiniband/hw/qib/
drivers/staging/octeon/
fs/xfs/
include/linux/perf_event.h
include/net/netfilter/nf_conntrack_acct.h
kernel/events/
kernel/trace/
net/mac80211/key.h
net/rds/

The block control group, infiniband, xfs, crypto, 802.11, netfilter. Nothing quite so fundamental as fs/namespace.c but definitely in multiplatform-code that should work, and is already broken on those architecutres.

Quoted 8 lines

Looking at the implementation of atomic64_add_return in lib/atomic64.c the code looks as efficient as these kinds of things get.

Which leads me to the conclusion that we need atomic64 support on all architectures.

CC "Eric W. Biederman" <[email protected]>
Quoted 7 lines
---
 arch/mn10300/Kconfig |    1 +
 1 file changed, 1 insertion(+)

arch/mn10300/Kconfig 2012-08-14 22:53:14.751795832 +0800 config MN10300 · line 14

Quoted 7 lines
arch/mn10300/Kconfig 2012-08-14 22:53:14.751795832 +0800 renamed from arch/mn10300/Kconfig 2012-08-03 15:36:21.391560778 +0800 +1 -0
@@ -8,6 +8,7 @@ config MN10300
        select HAVE_ARCH_KGDB
        select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
        select GENERIC_CLOCKEVENTS
+       select GENERIC_ATOMIC64
 
 config AM33_2
        def_bool n

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds