Mirror of the lttng-dev mailing list
 help / color / mirror / Atom feed
From: pbonzini@redhat.com (Paolo Bonzini)
Subject: [ltt-dev] [PATCH 00/11] Simplify system dependent URCU code
Date: Sat, 13 Feb 2010 18:16:20 +0100	[thread overview]
Message-ID: <1266081392-8732-1-git-send-email-pbonzini@redhat.com> (raw)

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.

Patches 1 and 2 are simple Makefile cleanups.

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





             reply	other threads:[~2010-02-13 17:16 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-13 17:16 Paolo Bonzini [this message]
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 ` [ltt-dev] [PATCH 00/11] Simplify system dependent URCU code Mathieu Desnoyers

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=1266081392-8732-1-git-send-email-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    /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