All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v7 00/35] cmpxchg-based emulation of atomics
@ 2016-10-19 17:21 Richard Henderson
  2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 01/35] atomics: add atomic_xor Richard Henderson
                   ` (35 more replies)
  0 siblings, 36 replies; 39+ messages in thread
From: Richard Henderson @ 2016-10-19 17:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: alex.bennee, cota

I believe we're about ready for merge.

Changes since v6:
  * atomic_add-bench update (Emilio).
  * Use atomic_load(__nocheck) prior to the cmpxchg in the
    reverse-endian atomic addition routines (Emilio).
  * tcg temp free-after-free in arm32 load_exclusive (Alex).


r~


Alex Bennée (1):
  linux-user: enable parallel code generation on clone

Emilio G. Cota (18):
  atomics: add atomic_xor
  atomics: add atomic_op_fetch variants
  target-i386: emulate LOCK'ed cmpxchg using cmpxchg helpers
  target-i386: emulate LOCK'ed OP instructions using atomic helpers
  target-i386: emulate LOCK'ed INC using atomic helper
  target-i386: emulate LOCK'ed NOT using atomic helper
  target-i386: emulate LOCK'ed NEG using cmpxchg helper
  target-i386: emulate LOCK'ed XADD using atomic helper
  target-i386: emulate LOCK'ed BTX ops using atomic helpers
  target-i386: emulate XCHG using atomic helper
  target-i386: remove helper_lock()
  tests: add atomic_add-bench
  target-arm: emulate LL/SC using cmpxchg helpers
  target-arm: emulate SWP with atomic_xchg helper
  target-arm: emulate aarch64's LL/SC using cmpxchg helpers
  linux-user: remove handling of ARM's EXCP_STREX
  linux-user: remove handling of aarch64's EXCP_STREX
  target-arm: remove EXCP_STREX + cpu_exclusive_{test, info}

Richard Henderson (16):
  exec: Avoid direct references to Int128 parts
  int128: Use __int128 if available
  int128: Add int128_make128
  tcg: Add EXCP_ATOMIC
  cputlb: Replace SHIFT with DATA_SIZE
  cputlb: Move probe_write out of softmmu_template.h
  cputlb: Remove includes from softmmu_template.h
  cputlb: Move most of iotlb code out of line
  cputlb: Tidy some macros
  tcg: Add atomic helpers
  tcg: Add atomic128 helpers
  tcg: Add CONFIG_ATOMIC64
  tcg: Emit barriers with parallel_cpus
  target-arm: Rearrange aa32 load and store functions
  target-alpha: Introduce MMU_PHYS_IDX
  target-alpha: Emulate LL/SC using cmpxchg helpers

 Makefile.objs              |   2 +-
 Makefile.target            |   1 +
 atomic_template.h          | 215 +++++++++++++++++++++++++
 configure                  |  62 +++++++-
 cpu-exec-common.c          |   6 +
 cpu-exec.c                 |  30 ++++
 cpus.c                     |   2 +
 cputlb.c                   | 203 ++++++++++++++++++++++--
 exec.c                     |   4 +-
 include/exec/cpu-all.h     |   1 +
 include/exec/exec-all.h    |   1 +
 include/qemu-common.h      |   1 +
 include/qemu/atomic.h      |  67 ++++++--
 include/qemu/int128.h      | 171 +++++++++++++++++++-
 linux-user/main.c          | 312 ++++++------------------------------
 linux-user/syscall.c       |   8 +
 softmmu_template.h         | 104 ++----------
 target-alpha/cpu.h         |  22 +--
 target-alpha/helper.c      |  14 +-
 target-alpha/helper.h      |   9 --
 target-alpha/machine.c     |   2 -
 target-alpha/mem_helper.c  |  73 ---------
 target-alpha/translate.c   | 148 +++++++++--------
 target-arm/cpu.h           |  17 +-
 target-arm/helper-a64.c    | 113 +++++++++++++
 target-arm/helper-a64.h    |   2 +
 target-arm/internals.h     |   4 +-
 target-arm/translate-a64.c | 106 ++++++-------
 target-arm/translate.c     | 344 +++++++++++++++-------------------------
 target-arm/translate.h     |   4 -
 target-i386/helper.h       |   4 +-
 target-i386/mem_helper.c   | 153 ++++++++++++------
 target-i386/translate.c    | 386 +++++++++++++++++++++++++++++----------------
 tcg-runtime.c              |  74 +++++++--
 tcg/tcg-op.c               | 354 +++++++++++++++++++++++++++++++++++++++--
 tcg/tcg-op.h               |  44 ++++++
 tcg/tcg-runtime.h          | 109 +++++++++++++
 tcg/tcg.h                  |  85 ++++++++++
 tests/.gitignore           |   1 +
 tests/Makefile.include     |   4 +-
 tests/atomic_add-bench.c   | 163 +++++++++++++++++++
 tests/test-int128.c        |  22 +--
 translate-all.c            |   1 +
 43 files changed, 2353 insertions(+), 1095 deletions(-)
 create mode 100644 atomic_template.h
 create mode 100644 tests/atomic_add-bench.c

-- 
2.7.4

^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2016-10-20 14:38 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-19 17:21 [Qemu-devel] [PATCH v7 00/35] cmpxchg-based emulation of atomics Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 01/35] atomics: add atomic_xor Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 02/35] atomics: add atomic_op_fetch variants Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 03/35] exec: Avoid direct references to Int128 parts Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 04/35] int128: Use __int128 if available Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 05/35] int128: Add int128_make128 Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 07/35] linux-user: enable parallel code generation on clone Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 08/35] cputlb: Replace SHIFT with DATA_SIZE Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 09/35] cputlb: Move probe_write out of softmmu_template.h Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 10/35] cputlb: Remove includes from softmmu_template.h Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 11/35] cputlb: Move most of iotlb code out of line Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 12/35] cputlb: Tidy some macros Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 13/35] tcg: Add atomic helpers Richard Henderson
2016-10-20 10:49   ` Alex Bennée
2016-10-20 14:38     ` Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 14/35] tcg: Add atomic128 helpers Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 15/35] tcg: Add CONFIG_ATOMIC64 Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 16/35] tcg: Emit barriers with parallel_cpus Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 17/35] target-i386: emulate LOCK'ed cmpxchg using cmpxchg helpers Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 18/35] target-i386: emulate LOCK'ed OP instructions using atomic helpers Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 19/35] target-i386: emulate LOCK'ed INC using atomic helper Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 20/35] target-i386: emulate LOCK'ed NOT " Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 21/35] target-i386: emulate LOCK'ed NEG using cmpxchg helper Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 22/35] target-i386: emulate LOCK'ed XADD using atomic helper Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 23/35] target-i386: emulate LOCK'ed BTX ops using atomic helpers Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 24/35] target-i386: emulate XCHG using atomic helper Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 25/35] target-i386: remove helper_lock() Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 26/35] tests: add atomic_add-bench Richard Henderson
2016-10-19 17:21 ` [Qemu-devel] [PATCH v7 27/35] target-arm: Rearrange aa32 load and store functions Richard Henderson
2016-10-19 17:22 ` [Qemu-devel] [PATCH v7 28/35] target-arm: emulate LL/SC using cmpxchg helpers Richard Henderson
2016-10-19 17:22 ` [Qemu-devel] [PATCH v7 29/35] target-arm: emulate SWP with atomic_xchg helper Richard Henderson
2016-10-19 17:22 ` [Qemu-devel] [PATCH v7 30/35] target-arm: emulate aarch64's LL/SC using cmpxchg helpers Richard Henderson
2016-10-19 17:22 ` [Qemu-devel] [PATCH v7 31/35] linux-user: remove handling of ARM's EXCP_STREX Richard Henderson
2016-10-19 17:22 ` [Qemu-devel] [PATCH v7 32/35] linux-user: remove handling of aarch64's EXCP_STREX Richard Henderson
2016-10-19 17:22 ` [Qemu-devel] [PATCH v7 33/35] target-arm: remove EXCP_STREX + cpu_exclusive_{test, info} Richard Henderson
2016-10-19 17:22 ` [Qemu-devel] [PATCH v7 34/35] target-alpha: Introduce MMU_PHYS_IDX Richard Henderson
2016-10-19 17:22 ` [Qemu-devel] [PATCH v7 35/35] target-alpha: Emulate LL/SC using cmpxchg helpers Richard Henderson
2016-10-19 18:05 ` [Qemu-devel] [PATCH v7 06/35] tcg: Add EXCP_ATOMIC Richard Henderson
2016-10-20  8:50 ` [Qemu-devel] [PATCH v7 00/35] cmpxchg-based emulation of atomics Alex Bennée

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.