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

Reply via email to