On Thu, Sep 07, 2017 at 12:58:05 +0200, Markus Armbruster wrote: > Lluís Vilanova <vilan...@ac.upc.edu> writes: > > > This series adds an API to add instrumentation events. > > > > It also provides additional APIs for: > > * Controlling tracing events > > * Peek/poke guest memory > > > > There's still missing APIs for (can be added in later series?): > > * Provide something like tracing's per-vCPU trace states (i.e., so that each > > vCPU can have different instrumentation code). It's still not clear to me > > if > > we should extend the per-vCPU bitmap with instrumentation events, or > > otherwise > > somehow reuse the bits in tracing events (since they're currently > > limited). > > * Peek/poke guest registers > > > > The instrumentation code is dynamically loaded as a library into QEMU either > > when it starts or later using its remote control interfaces. > > > > Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu> > > Taking a step back. > > This looks like a way to dynamically load arbitrary code. What > interfaces can this code use? Your cover letter should answer this. > > As long as the answer is "everything the dynamic linker is willing to > resolve", this series heading nowhere. We can talk about an interface > for plugins, but "anything goes" is not on the menu.
A simple solution to this is to only export the API symbols by passing --dynamic-file to the linker -- see patch 2 of the following series for an example (ELF-only, although I'm pretty sure this can be achieved on Windows as well): https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg01446.html Thanks, Emilio