From: "Alex Bennée" <alex.bennee@linaro.org>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org
Subject: Re: [PULL 00/18] tcg plugins (deprecations, mem apis, contrib plugins)
Date: Thu, 19 Sep 2024 14:11:50 +0100 [thread overview]
Message-ID: <875xqrg549.fsf@draig.linaro.org> (raw)
In-Reply-To: <CAFEAcA8tdyELui0=jYFObZO1=O_isJ-c1e0s4ZCbMVyfsrY=9A@mail.gmail.com> (Peter Maydell's message of "Thu, 19 Sep 2024 10:50:50 +0100")
Peter Maydell <peter.maydell@linaro.org> writes:
> On Wed, 18 Sept 2024 at 22:08, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> The following changes since commit 2b81c046252fbfb375ad30632362fc16e6e22bd5:
>>
>> Merge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu into staging (2024-09-17 14:02:18 +0100)
>>
>> are available in the Git repository at:
>>
>> https://gitlab.com/stsquad/qemu.git tags/pull-tcg-plugin-memory-180924-2
>>
>> for you to fetch changes up to a33f4871e0a0f4bf1cb037ab29fae7df7f2fc658:
>>
>> contrib/plugins: avoid hanging program (2024-09-18 21:02:36 +0100)
>>
>> ----------------------------------------------------------------
>> TCG plugin memory instrumentation updates
>>
>> - deprecate plugins on 32 bit hosts
>> - deprecate plugins with TCI
>> - extend memory API to save value
>> - add check-tcg tests to exercise new memory API
>> - fix timer deadlock with non-changing timer
>> - add basic block vector plugin to contrib
>> - add cflow plugin to contrib
>> - extend syscall plugin to dump write memory
>> - validate ips plugin arguments meet minimum slice value
>>
>> ----------------------------------------------------------------
>
> Fails to build on macos:
> https://gitlab.com/qemu-project/qemu/-/jobs/7865151156
>
> ../tests/tcg/plugins/mem.c:12:10: fatal error: 'endian.h' file not found
>
> endian.h is a Linuxism.
Doh - I'd written it off the failure as waiting for the MacOS bump and
didn't see the actual error. I'll see what we can do.
>
> While I'm looking at the code, this caught my eye:
>
> case QEMU_PLUGIN_MEM_VALUE_U64:
> {
> uint64_t *p = (uint64_t *) &ri->data[offset];
> uint64_t val = be ? htobe64(value.data.u64) : htole64(value.data.u64);
> if (is_store) {
> *p = val;
> } else if (*p != val) {
> unseen_data = true;
> }
> break;
> }
>
> Casting a random byte pointer to uint64_t* like that
> and dereferencing it isn't valid -- it can fault if
> it's not aligned correctly.
Hmm in the normal case of x86 hosts we will never hit this. I guess we
could do a memcpy step and then the byteswap?
> I suspect the plugin needs to define versions of at least some
> of the functionality in qemu's include/qemu/bswap.h.
Could it be included directly without bringing in the rest of QEMU's
include deps?
>
> thanks
> -- PMM
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
next prev parent reply other threads:[~2024-09-19 13:17 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-18 21:06 [PULL 00/18] tcg plugins (deprecations, mem apis, contrib plugins) Alex Bennée
2024-09-18 21:06 ` [PULL 01/18] deprecation: don't enable TCG plugins by default on 32 bit hosts Alex Bennée
2024-09-18 21:06 ` [PULL 02/18] deprecation: don't enable TCG plugins by default with TCI Alex Bennée
2026-02-27 23:17 ` Philippe Mathieu-Daudé
2024-09-18 21:06 ` [PULL 03/18] contrib/plugins: control flow plugin Alex Bennée
2024-09-18 21:06 ` [PULL 04/18] plugins: save value during memory accesses Alex Bennée
2024-09-18 21:06 ` [PULL 05/18] plugins: extend API to get latest memory value accessed Alex Bennée
2024-09-18 21:07 ` [PULL 06/18] tests/tcg: add mechanism to run specific tests with plugins Alex Bennée
2024-09-18 21:07 ` [PULL 07/18] tests/tcg: allow to check output of plugins Alex Bennée
2024-09-18 21:07 ` [PULL 08/18] tests/tcg/plugins/mem: add option to print memory accesses Alex Bennée
2024-09-18 21:07 ` [PULL 09/18] tests/tcg/multiarch: add test for plugin memory access Alex Bennée
2024-09-18 21:07 ` [PULL 10/18] tests/tcg: clean up output of memory system test Alex Bennée
2024-09-18 21:07 ` [PULL 11/18] tests/tcg: only read/write 64 bit words on 64 bit systems Alex Bennée
2024-09-18 21:07 ` [PULL 12/18] tests/tcg: ensure s390x-softmmu output redirected Alex Bennée
2024-09-18 21:07 ` [PULL 13/18] tests/tcg: add a system test to check memory instrumentation Alex Bennée
2024-09-18 21:07 ` [PULL 14/18] util/timer: avoid deadlock when shutting down Alex Bennée
2024-09-18 21:07 ` [PULL 15/18] contrib/plugins: Add a plugin to generate basic block vectors Alex Bennée
2024-09-18 21:07 ` [PULL 16/18] plugins: add plugin API to read guest memory Alex Bennée
2024-09-18 21:07 ` [PULL 17/18] plugins: add option to dump write argument to syscall plugin Alex Bennée
2024-09-18 21:07 ` [PULL 18/18] contrib/plugins: avoid hanging program Alex Bennée
2024-09-19 9:50 ` [PULL 00/18] tcg plugins (deprecations, mem apis, contrib plugins) Peter Maydell
2024-09-19 13:11 ` Alex Bennée [this message]
2024-09-19 13:14 ` Peter Maydell
2024-09-19 14:33 ` Alex Bennée
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=875xqrg549.fsf@draig.linaro.org \
--to=alex.bennee@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/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 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.