From: compudj@krystal.dyndns.org (Mathieu Desnoyers)
Subject: [ltt-dev] [PATCH 00/11] Simplify system dependent URCU code
Date: Sun, 14 Feb 2010 09:25:08 -0500 [thread overview]
Message-ID: <20100214142508.GA5871@Krystal> (raw)
In-Reply-To: <1266081392-8732-1-git-send-email-pbonzini@redhat.com>
* Paolo Bonzini (pbonzini at redhat.com) wrote:
> This patch series simplifies the system dependent code in the
> userspace RCU library by removing redundant definitions and
> moving them to common code. The common code is then less
> subject to bitrotting because it can be tested on x86 too.
Hi Paolo,
I like the patchset in general. I have a few comments though. Once
addressed, please re-send the whole patchset, as there may be
dependencies between the individual patches.
I'll reply to the individual patches with comments.
Mathieu
>
>
> Patches 3 and 4 take care of urcu/arch_*. Definitions for
> rmb/wmb/mc/rmc/wmc can often be omitted, and even mb can
> for example defer to the compiler-provided __sync_synchronize.
>
> Patch 5 removes a redundant definition that is probably
> a residual of libatomicops, and so does patch 6.
>
> Patches 7 to 9 take care of urcu/uatomic_arch_*, by defining
> fallbacks using __sync_* builtins. S390 can use them completely
> without basically changing the generated code, while other
> architectures still require a little help.
>
> Patches 10 and 11 show how this helps by supporting
> compilation to unknown architectures that support GCC
> builtins (MIPS and IA64 are serviced nicely for example),
> and by supporting Alpha (obviously chosen as an example of
> read_barrier_depends) with ~20 lines of non-comment code.
>
> Patch 12 is not meant to be committed, but was used to test
> the atomic op implementations on x86_64. It is not counted
> in the diffstat below.
>
> HTH,
>
> Paolo
>
> Paolo Bonzini (11+1):
> use kernel style makefile output
> use autoconf symbolic linking
> add urcu/arch_defaults.h
> define sync_core for x86 PIC
> __SIZEOF_LONG__ is always defined by GCC
> remove compat_uatomic_cmpxchg #define from non-x86
> add uatomic_gcc.h, use it for default definitions
> use uatomic_gcc.h
> move whether atomic byte/short exists to uatomic_arch_*.h
> add Alpha support
> support compiling on unknown architectures
> test uatomic_gcc.h
>
> Makefile.am | 14 +-
> configure.ac | 15 ++-
> tests/test_uatomic.c | 15 +-
> urcu/arch_alpha.h | 49 +++++
> urcu/arch_defaults.h | 109 ++++++++++
> urcu/arch_ppc.h | 50 +-----
> urcu/arch_s390.h | 46 +----
> urcu/arch_sparc64.h | 51 +-----
> urcu/arch_x86.h | 68 +------
> urcu/uatomic_arch_alpha.h | 32 +++
> urcu/uatomic_arch_ppc.h | 143 +-------------
> urcu/uatomic_arch_s390.h | 193 +------------------
> urcu/uatomic_arch_sparc64.h | 109 +----------
> urcu/uatomic_arch_x86.h | 37 ++----
> urcu/uatomic_gcc.h | 293 +++++++++++++++++++++++++++++++++++++++++++
> 15 files changed, 538 insertions(+), 686 deletions(-)
> create mode 100644 urcu/arch_alpha.h
> create mode 100644 urcu/arch_defaults.h
> create mode 100644 urcu/uatomic_arch_alpha.h
> create mode 100644 urcu/uatomic_gcc.h
>
>
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
>
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
prev parent reply other threads:[~2010-02-14 14:25 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-13 17:16 Paolo Bonzini
2010-02-13 17:16 ` [ltt-dev] [PATCH 01/11] use kernel style makefile output Paolo Bonzini
2010-02-14 14:25 ` Mathieu Desnoyers
2010-02-13 17:16 ` [ltt-dev] [PATCH 02/11] use autoconf symbolic linking Paolo Bonzini
2010-02-14 14:25 ` Mathieu Desnoyers
2010-02-13 17:16 ` [ltt-dev] [PATCH 03/11] add urcu/arch_defaults.h Paolo Bonzini
2010-02-14 14:34 ` Mathieu Desnoyers
2010-02-15 7:53 ` Paolo Bonzini
2010-02-15 14:46 ` Mathieu Desnoyers
2010-02-13 17:16 ` [ltt-dev] [PATCH 04/11] define sync_core for x86 PIC Paolo Bonzini
2010-02-14 14:37 ` Mathieu Desnoyers
2010-02-15 8:10 ` Paolo Bonzini
2010-02-15 14:56 ` Mathieu Desnoyers
2010-02-13 17:16 ` [ltt-dev] [PATCH 05/11] __SIZEOF_LONG__ is always defined by GCC Paolo Bonzini
2010-02-14 14:38 ` Mathieu Desnoyers
2010-02-15 7:54 ` Paolo Bonzini
2010-02-13 17:16 ` [ltt-dev] [PATCH 06/11] remove compat_uatomic_cmpxchg #define from non-x86 Paolo Bonzini
2010-02-14 14:38 ` Mathieu Desnoyers
2010-02-13 17:16 ` [ltt-dev] [PATCH 07/11] add uatomic_gcc.h, use it for default definitions Paolo Bonzini
2010-02-14 14:45 ` Mathieu Desnoyers
2010-02-15 8:05 ` Paolo Bonzini
2010-02-15 14:55 ` Mathieu Desnoyers
2010-02-15 15:38 ` Paolo Bonzini
2010-02-15 16:23 ` Mathieu Desnoyers
2010-02-15 16:36 ` Paolo Bonzini
2010-02-15 16:51 ` Mathieu Desnoyers
2010-02-15 16:55 ` Paolo Bonzini
2010-02-15 17:13 ` Mathieu Desnoyers
2010-02-15 8:06 ` Paolo Bonzini
2010-02-13 17:16 ` [ltt-dev] [PATCH 08/11] use uatomic_gcc.h Paolo Bonzini
2010-02-13 17:16 ` [ltt-dev] [PATCH 09/11] move whether atomic byte/short exists to uatomic_arch_*.h Paolo Bonzini
2010-02-13 17:16 ` [ltt-dev] [PATCH 10/11] add Alpha support Paolo Bonzini
2010-02-13 17:16 ` [ltt-dev] [PATCH 11/11] support compiling on unknown architectures Paolo Bonzini
2010-02-13 17:16 ` [ltt-dev] [PATCH 12/11] test uatomic_gcc.h Paolo Bonzini
2010-02-14 14:25 ` Mathieu Desnoyers [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100214142508.GA5871@Krystal \
--to=compudj@krystal.dyndns.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox