Our supported XenServer build environments lack proper atomic
libraries, which makes recent OVS techiques (ovs-rcu, cmap) painfully
slow.  This series adds native atomic implementations for i586 and
x86_64 when compiled with GCC.  This makes the atomic operations on
older GCC versions as fast as on newer versions.

Jarno Rajahalme (7):
  Fix strict aliasing violations with GCC 4.1 and 4.4.
  lib/ovs-atomic: Elaborate memory_order documentation.
  lib/ovs-atomic: Require memory_order be constant.
  lib/ovs-atomic-gcc4+: Use 'volatile' to enforce memory access.
  tests/test-atomic: Cover more of the atomic API.
  lib/ovs-atomic: Native support for x86_64 with GCC.
  lib/ovs-atomic: Native support for 32-bit 586 with GCC.

 lib/automake.mk               |    2 +
 lib/cmap.c                    |   18 +-
 lib/ovs-atomic-gcc4+.h        |   14 +-
 lib/ovs-atomic-i586.h         |  452 +++++++++++++++++++++++++++++++++++++++++
 lib/ovs-atomic-x86_64.h       |  345 +++++++++++++++++++++++++++++++
 lib/ovs-atomic.h              |   54 ++++-
 lib/ovs-rcu.h                 |   57 ++++--
 ofproto/connmgr.c             |   12 +-
 ofproto/ofproto-dpif-sflow.c  |   12 +-
 ofproto/ofproto-dpif-upcall.c |    7 +-
 tests/test-atomic.c           |  291 +++++++++++++++++++++++++-
 vswitchd/bridge.c             |   11 +-
 12 files changed, 1221 insertions(+), 54 deletions(-)
 create mode 100644 lib/ovs-atomic-i586.h
 create mode 100644 lib/ovs-atomic-x86_64.h

-- 
1.7.10.4

_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to