[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
plugins: Missing Store Exclusive Memory Accesses
From: |
Aaron Lindsay |
Subject: |
plugins: Missing Store Exclusive Memory Accesses |
Date: |
Thu, 16 Sep 2021 16:44:32 -0400 |
Hello,
I recently noticed that the plugin interface does not appear to be
emitting callbacks to functions registered via
`qemu_plugin_register_vcpu_mem_cb` for AArch64 store exclusives. This
would include instructions like `stxp w16, x2, x3, [x4]` (encoding:
0xc8300c82). Seeing as how I'm only running with a single CPU, I don't
see how this could be due to losing exclusivity after the preceding
`ldxp`.
In looking at QEMU's source, I *think* this is because the
`gen_store_exclusive` function in translate-a64.c is not making the same
calls to `plugin_gen_mem_callbacks` & company that are being made by
"normal" stores handled by functions like `tcg_gen_qemu_st_i64` (at
least in my case; I do see some code paths under `gen_store_exclusive`
call down into `tcg_gen_qemu_st_i64` eventually, but it appears not all
of them do?).
Does my initial guess check out? And, if so, does anyone have insight
into how to fix this issue most cleanly/generically? I suspect if/when I
debug my particular case I can discover one code path to fix, but I'm
wondering if my discovery may be part of a larger class of cases which
fell through the cracks and ought to be fixed together.
Thanks for any help,
Aaron
- plugins: Missing Store Exclusive Memory Accesses,
Aaron Lindsay <=