[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 00/18] tcg plugins (deprecations, mem apis, contrib plugins)
From: |
Peter Maydell |
Subject: |
Re: [PULL 00/18] tcg plugins (deprecations, mem apis, contrib plugins) |
Date: |
Thu, 19 Sep 2024 10:50:50 +0100 |
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.
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.
I suspect the plugin needs to define versions of at least some
of the functionality in qemu's include/qemu/bswap.h.
thanks
-- PMM
- [PULL 10/18] tests/tcg: clean up output of memory system test, (continued)
- [PULL 10/18] tests/tcg: clean up output of memory system test, Alex Bennée, 2024/09/18
- [PULL 12/18] tests/tcg: ensure s390x-softmmu output redirected, Alex Bennée, 2024/09/18
- [PULL 09/18] tests/tcg/multiarch: add test for plugin memory access, Alex Bennée, 2024/09/18
- [PULL 11/18] tests/tcg: only read/write 64 bit words on 64 bit systems, Alex Bennée, 2024/09/18
- [PULL 17/18] plugins: add option to dump write argument to syscall plugin, Alex Bennée, 2024/09/18
- [PULL 15/18] contrib/plugins: Add a plugin to generate basic block vectors, Alex Bennée, 2024/09/18
- [PULL 18/18] contrib/plugins: avoid hanging program, Alex Bennée, 2024/09/18
- [PULL 13/18] tests/tcg: add a system test to check memory instrumentation, Alex Bennée, 2024/09/18
- [PULL 16/18] plugins: add plugin API to read guest memory, Alex Bennée, 2024/09/18
- [PULL 14/18] util/timer: avoid deadlock when shutting down, Alex Bennée, 2024/09/18
- Re: [PULL 00/18] tcg plugins (deprecations, mem apis, contrib plugins),
Peter Maydell <=