All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v4 00/35] cmpxchg-based emulation of atomics
@ 2016-09-16 17:46 Richard Henderson
  2016-09-16 17:46 ` [Qemu-devel] [PATCH v4 01/35] atomics: add atomic_xor Richard Henderson
                   ` (35 more replies)
  0 siblings, 36 replies; 69+ messages in thread
From: Richard Henderson @ 2016-09-16 17:46 UTC (permalink / raw)
  To: qemu-devel

Rebased on top of Paolo's safe-work series, which means
that we now have cpu_exec_step_atomic for system mode as
well as linux-user.  This should fix the problems with
atomic access to notdirty pages that have been reported.

Folded in some feedback from Alex from v3.

A complete tree may be found at

  git://github.com/rth7680/qemu.git atomic-4


r~


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 (17):
  exec: Avoid direct references to Int128 parts
  int128: Use __int128 if available
  int128: Add int128_make128
  tcg: Add EXCP_ATOMIC
  HACK: Always enable parallel_cpus
  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              |   1 -
 Makefile.target            |   1 +
 atomic_template.h          | 211 +++++++++++++++++++++++++
 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      |  40 ++++-
 include/qemu/int128.h      | 171 +++++++++++++++++++-
 linux-user/main.c          | 312 ++++++------------------------------
 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     | 342 ++++++++++++++-------------------------
 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   | 181 +++++++++++++++++++++
 tests/test-int128.c        |  22 +--
 translate-all.c            |   1 +
 42 files changed, 2336 insertions(+), 1088 deletions(-)
 create mode 100644 atomic_template.h
 create mode 100644 tests/atomic_add-bench.c

-- 
2.5.5

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

end of thread, other threads:[~2016-10-05 18:17 UTC | newest]

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