qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: kuhn.chenqun@huawei.com, aaron@os.amperecomputing.com,
	cota@braap.org, "Alex Bennée" <alex.bennee@linaro.org>,
	robhenry@microsoft.com
Subject: [PATCH  v1 00/12] fix plugins double counting with mmio, cleanup CF_ flags
Date: Tue,  9 Feb 2021 18:27:36 +0000	[thread overview]
Message-ID: <20210209182749.31323-1-alex.bennee@linaro.org> (raw)

Hi,

Aaron reported an issue with TCG plugins when interacting with the
cpu_io_recompile code during icount. The ultimate fix was to avoid
instrumenting the re-executed block but along the way we clean-up a
bunch of the code by getting rid of CF_NOCACHE. I've also included
Richard's recently posted recompile hook cleanups at the start of the
series because it makes the improves the diffstat by pushing more arch
specific black magic to the targets. In fact without the additional
tests this removes more code than it adds ;-)

I've added some acceptance tests to detect the failure mode as well as
manually testing with a test Peter had lying around that exercises the
trixy "executing out of MMIO" code path which I've touched.

Please test and review.

Alex Bennée (8):
  tests/plugin: expand insn test to detect duplicate instructions
  tests/acceptance: add a new set of tests to exercise plugins
  accel/tcg: actually cache our partial icount TB
  accel/tcg: cache single instruction TB on pending replay exception
  accel/tcg: re-factor non-RAM execution code
  accel/tcg: remove CF_NOCACHE and special cases
  accel/tcg: allow plugin instrumentation to be disable via cflags
  tests/acceptance: add a new tests to detect counting errors

Richard Henderson (4):
  exec: Move TranslationBlock typedef to qemu/typedefs.h
  accel/tcg: Create io_recompile_replay_branch hook
  target/mips: Create mips_io_recompile_replay_branch
  target/sh4: Create superh_io_recompile_replay_branch

 include/exec/exec-all.h         |   6 +-
 include/exec/tb-context.h       |   1 -
 include/hw/core/cpu.h           |   4 +-
 include/hw/core/tcg-cpu-ops.h   |  13 +++-
 include/qemu/typedefs.h         |   1 +
 target/arm/internals.h          |   3 +-
 accel/tcg/cpu-exec.c            |  62 ++++-----------
 accel/tcg/translate-all.c       | 128 +++++++++++-------------------
 accel/tcg/translator.c          |   2 +-
 target/cris/translate.c         |   2 +-
 target/lm32/translate.c         |   2 +-
 target/mips/cpu.c               |  18 +++++
 target/moxie/translate.c        |   2 +-
 target/sh4/cpu.c                |  18 +++++
 target/unicore32/translate.c    |   2 +-
 tests/plugin/insn.c             |  12 ++-
 tests/acceptance/tcg_plugins.py | 134 ++++++++++++++++++++++++++++++++
 17 files changed, 263 insertions(+), 147 deletions(-)
 create mode 100644 tests/acceptance/tcg_plugins.py

-- 
2.20.1



             reply	other threads:[~2021-02-09 18:29 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-09 18:27 Alex Bennée [this message]
2021-02-09 18:27 ` [PATCH v1 01/12] exec: Move TranslationBlock typedef to qemu/typedefs.h Alex Bennée
2021-02-09 18:27 ` [PATCH v1 02/12] accel/tcg: Create io_recompile_replay_branch hook Alex Bennée
2021-02-09 18:27 ` [PATCH v1 03/12] target/mips: Create mips_io_recompile_replay_branch Alex Bennée
2021-02-09 18:27 ` [PATCH v1 04/12] target/sh4: Create superh_io_recompile_replay_branch Alex Bennée
2021-02-09 18:27 ` [PATCH v1 05/12] tests/plugin: expand insn test to detect duplicate instructions Alex Bennée
2021-02-09 18:34   ` Richard Henderson
2021-02-09 20:48     ` Alex Bennée
2021-02-09 18:27 ` [PATCH v1 06/12] tests/acceptance: add a new set of tests to exercise plugins Alex Bennée
2021-02-09 18:27 ` [PATCH v1 07/12] accel/tcg: actually cache our partial icount TB Alex Bennée
2021-02-09 18:41   ` Richard Henderson
2021-02-09 20:49     ` Alex Bennée
2021-02-09 18:27 ` [PATCH v1 08/12] accel/tcg: cache single instruction TB on pending replay exception Alex Bennée
2021-02-09 18:27 ` [PATCH v1 09/12] accel/tcg: re-factor non-RAM execution code Alex Bennée
2021-02-09 18:27 ` [PATCH v1 10/12] accel/tcg: remove CF_NOCACHE and special cases Alex Bennée
2021-02-09 21:03   ` Richard Henderson
2021-02-09 18:27 ` [PATCH v1 11/12] accel/tcg: allow plugin instrumentation to be disable via cflags Alex Bennée
2021-02-09 21:05   ` Richard Henderson
2021-02-09 18:27 ` [PATCH v1 12/12] tests/acceptance: add a new tests to detect counting errors Alex Bennée
2021-02-11 11:28 ` [PATCH v1 00/12] fix plugins double counting with mmio, cleanup CF_ flags no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210209182749.31323-1-alex.bennee@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=aaron@os.amperecomputing.com \
    --cc=cota@braap.org \
    --cc=kuhn.chenqun@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=robhenry@microsoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).