All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v4 00/14] tcg: Add support for fence generation
@ 2016-07-14 20:20 Pranith Kumar
  2016-07-14 20:20 ` [Qemu-devel] [PATCH v4 01/14] Introduce TCGOpcode for memory barrier Pranith Kumar
                   ` (16 more replies)
  0 siblings, 17 replies; 26+ messages in thread
From: Pranith Kumar @ 2016-07-14 20:20 UTC (permalink / raw)
  Cc: qemu-devel, alex.bennee, serge.fdrv, rth, pbonzini, peter.maydell

Hello,

The following series adds fence instruction generation support to
TCG. Based on feedback to the last series, I added the four
combinations of orderings modeled after Sparc membar.

This has been tested and confirmed to fix ordering issues on
x86/armv7/aarch64 hosts with MTTCG enabled for an ARMv7 guest using
KVM unit tests. It has also been tested with litmus tests provided by
Alex Bennée.

TODO:

* The acquire/release order is not utilized yet. Currently we generate
  SC barriers even for acquire/release barriers. The idea is to write
  a pass which combines acquire/release barrier with its corresponding
  load/store operation to generate the load acquire/store release
  instruction on hosts which have such instruction(aarch64 for
  now).

v4:

- Update with comments from v3
- Use 'lock orl' instead of mfence on x86. Remove sse2 checks.
- Rebase on qemu/master instead of MTTCG
- Rename acquire barrier to load-acquire and release to store-release
  to avoid confusion with prevailing terminology

v3:

- Create different types of barriers. The barrier tcg opcode now takes
  an argument to generate the appropriate barrier instruction.
- Also add acquire/release/sc ordering flag to argument.

v2:

- Rebase on Richard's patches generating fences for other
  architectures.

v1:

- Initial version: Introduce memory barrier tcg opcode.

Pranith Kumar (14):
  Introduce TCGOpcode for memory barrier
  tcg/i386: Add support for fence
  tcg/aarch64: Add support for fence
  tcg/arm: Add support for fence
  tcg/ia64: Add support for fence
  tcg/mips: Add support for fence
  tcg/ppc: Add support for fence
  tcg/s390: Add support for fence
  tcg/sparc: Add support for fence
  tcg/tci: Add support for fence
  target-arm: Generate fences in ARMv7 frontend
  target-alpha: Generate fence op
  target-aarch64: Generate fences for aarch64
  target-i386: Generate fences for x86

 target-alpha/translate.c     |  4 ++--
 target-arm/translate-a64.c   | 14 +++++++++++++-
 target-arm/translate.c       |  4 ++--
 target-i386/translate.c      |  8 ++++++++
 tcg/README                   | 17 +++++++++++++++++
 tcg/aarch64/tcg-target.inc.c | 26 ++++++++++++++++++++++++++
 tcg/arm/tcg-target.inc.c     | 18 ++++++++++++++++++
 tcg/i386/tcg-target.inc.c    | 18 ++++++++++++++++++
 tcg/ia64/tcg-target.inc.c    |  5 +++++
 tcg/mips/tcg-target.inc.c    |  6 ++++++
 tcg/ppc/tcg-target.inc.c     | 22 ++++++++++++++++++++++
 tcg/s390/tcg-target.inc.c    | 11 +++++++++++
 tcg/sparc/tcg-target.inc.c   | 25 +++++++++++++++++++++++++
 tcg/tcg-op.c                 | 17 +++++++++++++++++
 tcg/tcg-op.h                 |  2 ++
 tcg/tcg-opc.h                |  2 ++
 tcg/tcg.h                    | 19 +++++++++++++++++++
 tcg/tci/tcg-target.inc.c     |  3 +++
 tci.c                        |  4 ++++
 19 files changed, 220 insertions(+), 5 deletions(-)

-- 
2.9.0

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

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

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-14 20:20 [Qemu-devel] [PATCH v4 00/14] tcg: Add support for fence generation Pranith Kumar
2016-07-14 20:20 ` [Qemu-devel] [PATCH v4 01/14] Introduce TCGOpcode for memory barrier Pranith Kumar
2016-07-14 20:20 ` [Qemu-devel] [PATCH v4 02/14] tcg/i386: Add support for fence Pranith Kumar
2016-07-14 20:20 ` [PATCH v4 03/14] tcg/aarch64: " Pranith Kumar
2016-07-14 20:20   ` [Qemu-devel] " Pranith Kumar
2016-07-14 20:20 ` [PATCH v4 04/14] tcg/arm: " Pranith Kumar
2016-07-14 20:20   ` [Qemu-devel] " Pranith Kumar
2016-07-14 20:20 ` [Qemu-devel] [PATCH v4 05/14] tcg/ia64: " Pranith Kumar
2016-07-14 20:20 ` [Qemu-devel] [PATCH v4 06/14] tcg/mips: " Pranith Kumar
2016-07-14 20:20 ` [Qemu-devel] [PATCH v4 07/14] tcg/ppc: " Pranith Kumar
2016-07-14 20:20 ` [Qemu-devel] [PATCH v4 08/14] tcg/s390: " Pranith Kumar
2016-10-16  8:47   ` Stefan Hajnoczi
2016-10-16 16:17     ` Pranith Kumar
2016-07-14 20:20 ` [Qemu-devel] [PATCH v4 09/14] tcg/sparc: " Pranith Kumar
2016-07-14 20:20 ` [Qemu-devel] [PATCH v4 10/14] tcg/tci: " Pranith Kumar
2016-07-14 20:20 ` [PATCH v4 11/14] target-arm: Generate fences in ARMv7 frontend Pranith Kumar
2016-07-14 20:20   ` [Qemu-devel] " Pranith Kumar
2016-07-14 20:20 ` [Qemu-devel] [PATCH v4 12/14] target-alpha: Generate fence op Pranith Kumar
2016-07-14 20:20 ` [PATCH v4 13/14] target-aarch64: Generate fences for aarch64 Pranith Kumar
2016-07-14 20:20   ` [Qemu-devel] " Pranith Kumar
2016-07-14 20:20 ` [Qemu-devel] [PATCH v4 14/14] target-i386: Generate fences for x86 Pranith Kumar
2016-07-23 16:08 ` [Qemu-devel] [PATCH v4 00/14] tcg: Add support for fence generation Pranith Kumar
2016-07-23 17:34   ` Paolo Bonzini
2016-07-23 18:00     ` Pranith Kumar
2016-08-08 14:05 ` Pranith Kumar
2016-09-07 17:33 ` Richard Henderson

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.