mn10300: select generic atomic64_t support
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.cdrivers/acpi/apei/drivers/block/rbd.cdrivers/crypto/nx/nx.hdrivers/gpu/drm/radeon/radeon.hdrivers/infiniband/hw/ipath/drivers/infiniband/hw/qib/drivers/staging/octeon/fs/xfs/include/linux/perf_event.hinclude/net/netfilter/nf_conntrack_acct.hkernel/events/kernel/trace/net/mac80211/key.hnet/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.
--- 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
Quoted 33 lines · Fengguang Wu
Rationals from Eric:
So I just looked a little deeper and it appears architectures that do not support
atomic64_tare 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_tis used in a fair number of places beyond the performance counters:
block/blk-cgroup.cdrivers/acpi/apei/drivers/block/rbd.cdrivers/crypto/nx/nx.hdrivers/gpu/drm/radeon/radeon.hdrivers/infiniband/hw/ipath/drivers/infiniband/hw/qib/drivers/staging/octeon/fs/xfs/include/linux/perf_event.hinclude/net/netfilter/nf_conntrack_acct.hkernel/events/kernel/trace/net/mac80211/key.hnet/rds/The block control group, infiniband, xfs, crypto, 802.11, netfilter. Nothing quite so fundamental as
fs/namespace.cbut definitely in multiplatform-code that should work, and is already broken on those architecutres.
Quoted 8 lines
Looking at the implementation of
atomic64_add_returninlib/atomic64.cthe 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]>Signed-off-by Fengguang Wu <[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