Patch set restructured (thanks git add -p), patches should build if
applied incrementially.

Some of these changes are in preparation for the appearance of
odp_atomic_internal.h but these patch can be merged separately.

odp_atomic.h: Use struct for 32- and 64-bit atomic types, this prevents
non-atomic access to atomic variables. Emulated 64-bit atomic support for
functionally challenged 32-bit architectures (e.g. PPC32). Relaxed memory
model for atomic operations, this enhances performance on weakly ordered
architectures (e.g. most RISC). Use GCC __atomic builtins (previously
__sync builtins). Added missing atomic_add_u32, atomic_sub_u32 and
atomic_sub_64 operations. Removed 32- and 64-bit cmpset operations. Made
some 64-bit operations (e.g. load, store) atomic on 32-bit architectures.
odp_generator.c: updated to use odp_atomic.h functins with atomic types.
odp_spin_internal.h: removed odp_mem_barrier() which is a compiler only
barrier and basically useless and dangerous on all weakly ordered
architectures.
odp_barrier.c: updated to use odp_atomic.h types and functions. Made
the wrap-around atomic. Restored a missing line that was lost to a later
patch.
odp_buffer.c: updated to use odp_atomic.h functions (ref_count).
odp_ring.c: added missing release barriers. Updated to use GCC __atomic
cmpset facility (temporary fix).
odp_rwlock.c: updated to use odp_atomic.h. Updated to use GCC __atomic
facilities (temporary fix).
odp_ticketlock.c: updated to use odp_atomic.h. Updated to use GCC __atomic
facilities (temporary fix). Added missing barrier in ticketlock_lock().
odp_atomic_test.c: update to conform to latest odp_atomic.h syntax. Added
usage of odp_barrier_t instead of home grown thread barrier. Updated some
descriptions and help texts.

Ola Liljedahl (9):
  linux-generic: odp_ring.c use __atomic
  linux-generic: odp_rwlock.c use __atomic
  linux-generic: odp_buffer.c use odp_atomic.h
  linux-generic: odp_barrier.c use __atomic
  linux-generic: odp_generator.c use odp_atomic.h
  linux-generic: odp_ticketlock.c use odp_atomic.h and __atomic
  test: odp_atomic_test.c: use odp_barrier, fix descriptions
  api: odp_atomic.h: struct type, relaxed mm, missing funcs, use
    __atomic
  linux-generic: odp_spin_internal.h: remove odp_mem_barrier

 example/generator/odp_generator.c                  |  24 +-
 platform/linux-generic/include/api/odp_atomic.h    | 271 +++++++++++++--------
 platform/linux-generic/include/odp_spin_internal.h |   9 -
 platform/linux-generic/odp_barrier.c               |  17 +-
 platform/linux-generic/odp_buffer.c                |   3 +-
 platform/linux-generic/odp_ring.c                  |  28 ++-
 platform/linux-generic/odp_rwlock.c                |  24 +-
 platform/linux-generic/odp_ticketlock.c            |  14 +-
 test/api_test/odp_atomic_test.c                    |  48 ++--
 9 files changed, 260 insertions(+), 178 deletions(-)

-- 
1.9.1


_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to