On Fri, Dec 14, 2018 at 12:08:22 -0500, Emilio G. Cota wrote: > On Fri, Dec 14, 2018 at 15:57:32 +0000, Aaron Lindsay wrote: (snip) > > I added a function to the user-facing plugin API in my own version of > > Pavel's plugin patchset to clear all existing plugin instrumentation, (snip) > I think the following API call would do what you need: > > typedef int (*qemu_plugin_reset_cb_t)(qemu_plugin_id_t id); > void qemu_plugin_reset(qemu_plugin_id_t id, qemu_plugin_reset_cb_t cb); > > (or maybe qemu_plugin_reinstall?)
An alternative is to track the TBs that a plugin has inserted instrumentation into, and only flush those. This would require us to do an additional hash table insert when adding a direct callback, but it allow us to avoid exporting tb_flush indirectly to plugins, which could be abused by malicious plugins to perform a DoS attack. I'll look into this. E.