Hi, This is the current state of my plugins tree. It has a few minor fixes to the headers as well as a bug I found in the cputlb which was triggered when a pci_config write via io_writex causes the memory regions to be reset and as a result a flush and potential re-sizing of the TLB entries. This meant when a plugin looked up details of the address later there was no TLB entry with the information which got flagged as an error on the plugins part.
I found the bug while I was looking around trying to figure out what was going wrong with my virtio code so I implemented a "hwprofile" plugin to track exactly what devices where seeing writes. There are some minor associated tweaks to the virtio PCI code to better name the MemoryRegions and a new helper API which exposes the region names to the plugin. The lockstep plugin is essentially unchanged from previous postings but hasn't seen any review. I'm minded to include it in the next PR anyway just so it isn't lost next time I need to do an A-B comparison on something that only diverges in behaviour several million instructions into an execution. The following need review: - .travis.yml: allow failure for unreliable hosts - plugins: new hwprofile plugin - plugins: add API to return a name for a IO device - hw/virtio/pci: include vdev name in registered PCI sections - cputlb: ensure we re-fill the TLB if it has reset - tests/plugin: correctly honour io_count - plugins: new lockstep plugin for debugging TCG changes Alex Bennée (7): plugins: new lockstep plugin for debugging TCG changes tests/plugin: correctly honour io_count cputlb: ensure we re-fill the TLB if it has reset hw/virtio/pci: include vdev name in registered PCI sections plugins: add API to return a name for a IO device plugins: new hwprofile plugin .travis.yml: allow failure for unreliable hosts Emilio G. Cota (1): qemu-plugin.h: add missing include <stddef.h> to define size_t Philippe Mathieu-Daudé (1): scripts/clean-includes: Mark 'qemu/qemu-plugin.h' as special header include/qemu/qemu-plugin.h | 6 + accel/tcg/cputlb.c | 14 ++ hw/virtio/virtio-pci.c | 21 ++- plugins/api.c | 18 ++ tests/plugin/hwprofile.c | 248 +++++++++++++++++++++++++++ tests/plugin/lockstep.c | 340 +++++++++++++++++++++++++++++++++++++ tests/plugin/mem.c | 2 +- .travis.yml | 5 + scripts/clean-includes | 1 + tests/plugin/Makefile | 2 + tests/tcg/Makefile.target | 2 +- 11 files changed, 649 insertions(+), 10 deletions(-) create mode 100644 tests/plugin/hwprofile.c create mode 100644 tests/plugin/lockstep.c -- 2.20.1