Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-29 Thread Peter Maydell
On 26 August 2017 at 01:02, Emilio G. Cota wrote: > An additional "nice to have" would be: > > * Allow inlining of TCG code by the instrumenter. Example use case: > the instrumenter wants to increment a counter every time a > basic block is executed. Instead of calling a

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-25 Thread Emilio G. Cota
On Thu, Aug 03, 2017 at 12:54:57 +0100, Stefan Hajnoczi wrote: > > > Please post an example of the API you'd like. > > > > In my opinion, the instrumentation support in this series provides an API > > that > > works in the opposite way you're suggesting (let's ignore the fact that it's > > built

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-25 Thread Emilio G. Cota
On Fri, Jul 28, 2017 at 19:05:43 +0300, Lluís Vilanova wrote: > As for the (minimum) requirements I've collected: > > * Peek at register values and guest memory. > * Enumerate guest cpus. > * Control when events are raised to minimize overheads (e.g., avoid generating > TCG code to trace a

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-03 Thread Stefan Hajnoczi
On Wed, Aug 02, 2017 at 06:19:29PM +0300, Lluís Vilanova wrote: > Stefan Hajnoczi writes: > > > On Wed, Aug 02, 2017 at 12:10:14PM +0100, Peter Maydell wrote: > >> On 2 August 2017 at 12:04, Stefan Hajnoczi wrote: > >> > On Tue, Aug 01, 2017 at 02:54:29PM +0100, Peter

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-02 Thread Lluís Vilanova
Stefan Hajnoczi writes: > On Wed, Aug 02, 2017 at 12:10:14PM +0100, Peter Maydell wrote: >> On 2 August 2017 at 12:04, Stefan Hajnoczi wrote: >> > On Tue, Aug 01, 2017 at 02:54:29PM +0100, Peter Maydell wrote: >> >> and I don't need the TCG engine to be a library to do

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-02 Thread Stefan Hajnoczi
On Wed, Aug 02, 2017 at 12:10:14PM +0100, Peter Maydell wrote: > On 2 August 2017 at 12:04, Stefan Hajnoczi wrote: > > On Tue, Aug 01, 2017 at 02:54:29PM +0100, Peter Maydell wrote: > >> and I don't need the TCG engine to be a library to do that... > > > > You do need TCG

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-02 Thread Peter Maydell
On 2 August 2017 at 12:04, Stefan Hajnoczi wrote: > On Tue, Aug 01, 2017 at 02:54:29PM +0100, Peter Maydell wrote: >> and I don't need the TCG engine to be a library to do that... > > You do need TCG APIs if you want TCG-level instrumentation, tuning > options, callbacks,

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-02 Thread Stefan Hajnoczi
On Fri, Jul 28, 2017 at 07:21:04PM +0300, Lluís Vilanova wrote: > Stefan Hajnoczi writes: > > > On Thu, Jul 27, 2017 at 11:40:17AM +0100, Peter Maydell wrote: > >> On 27 July 2017 at 11:32, Stefan Hajnoczi wrote: > >> > On Wed, Jul 26, 2017 at 03:44:39PM +0300, Lluís

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-02 Thread Stefan Hajnoczi
On Tue, Aug 01, 2017 at 02:54:29PM +0100, Peter Maydell wrote: > On 1 August 2017 at 14:48, Stefan Hajnoczi wrote: > > Thanks for sharing the requirements. A stable API is necessary for > > providing these features. > > > > We're essentially talking about libqemu. That means

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-01 Thread Peter Maydell
On 1 August 2017 at 14:48, Stefan Hajnoczi wrote: > Thanks for sharing the requirements. A stable API is necessary for > providing these features. > > We're essentially talking about libqemu. That means QEMU in library > form with an API for JIT engine, reverse engineering,

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-01 Thread Stefan Hajnoczi
On Fri, Jul 28, 2017 at 07:05:43PM +0300, Lluís Vilanova wrote: > Daniel P Berrange writes: > > > On Fri, Jul 28, 2017 at 02:41:19PM +0100, Peter Maydell wrote: > >> On 28 July 2017 at 14:34, Stefan Hajnoczi wrote: > >> > Lluís/Peter: What are the requirements for

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-08-01 Thread Stefan Hajnoczi
On Fri, Jul 28, 2017 at 07:14:33PM +0300, Lluís Vilanova wrote: > Daniel P Berrange writes: > > > On Fri, Jul 28, 2017 at 02:34:30PM +0100, Stefan Hajnoczi wrote: > >> On Thu, Jul 27, 2017 at 04:45:35PM +0100, Daniel P. Berrange wrote: > >> > On Thu, Jul 27, 2017 at 04:33:01PM +0100, Peter

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-28 Thread Lluís Vilanova
Stefan Hajnoczi writes: > On Thu, Jul 27, 2017 at 11:40:17AM +0100, Peter Maydell wrote: >> On 27 July 2017 at 11:32, Stefan Hajnoczi wrote: >> > On Wed, Jul 26, 2017 at 03:44:39PM +0300, Lluís Vilanova wrote: >> >> And why exactly is this a threat? Because it can be used to

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-28 Thread Lluís Vilanova
Daniel P Berrange writes: > On Fri, Jul 28, 2017 at 02:34:30PM +0100, Stefan Hajnoczi wrote: >> On Thu, Jul 27, 2017 at 04:45:35PM +0100, Daniel P. Berrange wrote: >> > On Thu, Jul 27, 2017 at 04:33:01PM +0100, Peter Maydell wrote: >> > > On 27 July 2017 at 16:21, Daniel P. Berrange

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-28 Thread Lluís Vilanova
Daniel P Berrange writes: > On Fri, Jul 28, 2017 at 02:41:19PM +0100, Peter Maydell wrote: >> On 28 July 2017 at 14:34, Stefan Hajnoczi wrote: >> > Lluís/Peter: What are the requirements for instrumentation code >> > interacting with the running QEMU instance? simpletrace

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-28 Thread Lluís Vilanova
Stefan Hajnoczi writes: > On Thu, Jul 27, 2017 at 04:45:35PM +0100, Daniel P. Berrange wrote: >> On Thu, Jul 27, 2017 at 04:33:01PM +0100, Peter Maydell wrote: >> > On 27 July 2017 at 16:21, Daniel P. Berrange wrote: >> > > On Thu, Jul 27, 2017 at 11:54:29AM +0100, Peter

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-28 Thread Daniel P. Berrange
On Fri, Jul 28, 2017 at 02:41:19PM +0100, Peter Maydell wrote: > On 28 July 2017 at 14:34, Stefan Hajnoczi wrote: > > Lluís/Peter: What are the requirements for instrumentation code > > interacting with the running QEMU instance? simpletrace is > > asynchronous, meaning it

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-28 Thread Daniel P. Berrange
On Fri, Jul 28, 2017 at 02:34:30PM +0100, Stefan Hajnoczi wrote: > On Thu, Jul 27, 2017 at 04:45:35PM +0100, Daniel P. Berrange wrote: > > On Thu, Jul 27, 2017 at 04:33:01PM +0100, Peter Maydell wrote: > > > On 27 July 2017 at 16:21, Daniel P. Berrange wrote: > > > > On Thu,

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-28 Thread Stefan Hajnoczi
On Thu, Jul 27, 2017 at 11:40:17AM +0100, Peter Maydell wrote: > On 27 July 2017 at 11:32, Stefan Hajnoczi wrote: > > On Wed, Jul 26, 2017 at 03:44:39PM +0300, Lluís Vilanova wrote: > >> And why exactly is this a threat? Because it can be used to "extend" QEMU > >> without

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-28 Thread Peter Maydell
On 28 July 2017 at 14:34, Stefan Hajnoczi wrote: > Lluís/Peter: What are the requirements for instrumentation code > interacting with the running QEMU instance? simpletrace is > asynchronous, meaning it does not wait for anyone handle the trace event > before continuing

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-28 Thread Stefan Hajnoczi
On Thu, Jul 27, 2017 at 04:45:35PM +0100, Daniel P. Berrange wrote: > On Thu, Jul 27, 2017 at 04:33:01PM +0100, Peter Maydell wrote: > > On 27 July 2017 at 16:21, Daniel P. Berrange wrote: > > > On Thu, Jul 27, 2017 at 11:54:29AM +0100, Peter Maydell wrote: > > >> That said,

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-27 Thread Lluís Vilanova
Daniel P Berrange writes: > On Thu, Jul 27, 2017 at 11:54:29AM +0100, Peter Maydell wrote: >> On 27 July 2017 at 11:43, Daniel P. Berrange wrote: >> > Maybe I'm missing something, but aren't all these things >> > already possible via either the statically defined tracepoints

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-27 Thread Daniel P. Berrange
On Thu, Jul 27, 2017 at 04:33:01PM +0100, Peter Maydell wrote: > On 27 July 2017 at 16:21, Daniel P. Berrange wrote: > > On Thu, Jul 27, 2017 at 11:54:29AM +0100, Peter Maydell wrote: > >> That said, yes, I was going to ask if we could do this via > >> leveraging the

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-27 Thread Peter Maydell
On 27 July 2017 at 16:21, Daniel P. Berrange wrote: > On Thu, Jul 27, 2017 at 11:54:29AM +0100, Peter Maydell wrote: >> That said, yes, I was going to ask if we could do this via >> leveraging the tracepoint infrastructure and whatever scripting >> facilities it provides. Are

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-27 Thread Daniel P. Berrange
On Thu, Jul 27, 2017 at 11:54:29AM +0100, Peter Maydell wrote: > On 27 July 2017 at 11:43, Daniel P. Berrange wrote: > > Maybe I'm missing something, but aren't all these things > > already possible via either the statically defined tracepoints > > QEMU exposes, or by placing

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-27 Thread Lluís Vilanova
Peter Maydell writes: > On 27 July 2017 at 11:43, Daniel P. Berrange wrote: >> Maybe I'm missing something, but aren't all these things >> already possible via either the statically defined tracepoints >> QEMU exposes, or by placing dynamic tracepoints on arbitrary >> code

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-27 Thread Peter Maydell
On 27 July 2017 at 11:43, Daniel P. Berrange wrote: > Maybe I'm missing something, but aren't all these things > already possible via either the statically defined tracepoints > QEMU exposes, or by placing dynamic tracepoints on arbitrary > code locations using

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-27 Thread Daniel P. Berrange
On Wed, Jul 26, 2017 at 12:49:00PM +0100, Peter Maydell wrote: > On 26 July 2017 at 12:26, Stefan Hajnoczi wrote: > > On Tue, Jul 25, 2017 at 02:30:06PM +0100, Peter Maydell wrote: > >> Is your proposal that my-instrumentation.c gets compiled into > >> QEMU at this point?

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-27 Thread Peter Maydell
On 27 July 2017 at 11:32, Stefan Hajnoczi wrote: > On Wed, Jul 26, 2017 at 03:44:39PM +0300, Lluís Vilanova wrote: >> And why exactly is this a threat? Because it can be used to "extend" QEMU >> without touching its sources? Is this a realistic threat? (it's a rather >>

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-27 Thread Stefan Hajnoczi
On Wed, Jul 26, 2017 at 03:44:39PM +0300, Lluís Vilanova wrote: > Stefan Hajnoczi writes: > > > On Tue, Jul 25, 2017 at 06:11:43PM +0300, Lluís Vilanova wrote: > >> Peter Maydell writes: > >> > >> > On 25 July 2017 at 14:19, Stefan Hajnoczi wrote: > >> >> Instead I suggest

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-26 Thread Lluís Vilanova
Stefan Hajnoczi writes: > On Tue, Jul 25, 2017 at 06:11:43PM +0300, Lluís Vilanova wrote: >> Peter Maydell writes: >> >> > On 25 July 2017 at 14:19, Stefan Hajnoczi wrote: >> >> Instead I suggest adding a trace backend generates calls to registered >> >> "callback"

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-26 Thread Lluís Vilanova
Stefan Hajnoczi writes: > On Tue, Jul 25, 2017 at 05:47:08PM +0300, Lluís Vilanova wrote: >> Stefan Hajnoczi writes: >> >> > On Mon, Jul 24, 2017 at 08:02:24PM +0300, Lluís Vilanova wrote: >> >> This series adds a basic interface to instrument tracing events and >> >> control >> >> their

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-26 Thread Lluís Vilanova
Peter Maydell writes: > On 26 July 2017 at 12:26, Stefan Hajnoczi wrote: >> On Tue, Jul 25, 2017 at 02:30:06PM +0100, Peter Maydell wrote: >>> Is your proposal that my-instrumentation.c gets compiled into >>> QEMU at this point? That doesn't seem like a great idea to >>> me,

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-26 Thread Peter Maydell
On 26 July 2017 at 12:26, Stefan Hajnoczi wrote: > On Tue, Jul 25, 2017 at 02:30:06PM +0100, Peter Maydell wrote: >> Is your proposal that my-instrumentation.c gets compiled into >> QEMU at this point? That doesn't seem like a great idea to >> me, because it means you can

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-26 Thread Stefan Hajnoczi
On Tue, Jul 25, 2017 at 05:47:08PM +0300, Lluís Vilanova wrote: > Stefan Hajnoczi writes: > > > On Mon, Jul 24, 2017 at 08:02:24PM +0300, Lluís Vilanova wrote: > >> This series adds a basic interface to instrument tracing events and control > >> their tracing state. > >> > >> The instrumentation

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-26 Thread Stefan Hajnoczi
On Tue, Jul 25, 2017 at 02:30:06PM +0100, Peter Maydell wrote: > On 25 July 2017 at 14:19, Stefan Hajnoczi wrote: > > Instead I suggest adding a trace backend generates calls to registered > > "callback" functions: > > > > $ cat >my-instrumentation.c > > #include

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-26 Thread Stefan Hajnoczi
On Tue, Jul 25, 2017 at 06:11:43PM +0300, Lluís Vilanova wrote: > Peter Maydell writes: > > > On 25 July 2017 at 14:19, Stefan Hajnoczi wrote: > >> Instead I suggest adding a trace backend generates calls to registered > >> "callback" functions: > >> > >> $ cat

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-25 Thread Lluís Vilanova
Peter Maydell writes: > On 25 July 2017 at 14:19, Stefan Hajnoczi wrote: >> Instead I suggest adding a trace backend generates calls to registered >> "callback" functions: >> >> $ cat >my-instrumentation.c >> #include "trace/control.h" >> >> static void my_cpu_in(unsigned

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-25 Thread Lluís Vilanova
Stefan Hajnoczi writes: > On Mon, Jul 24, 2017 at 08:02:24PM +0300, Lluís Vilanova wrote: >> This series adds a basic interface to instrument tracing events and control >> their tracing state. >> >> The instrumentation code is dynamically loaded into QEMU (either when it >> starts >> or later

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-25 Thread Peter Maydell
On 25 July 2017 at 14:19, Stefan Hajnoczi wrote: > Instead I suggest adding a trace backend generates calls to registered > "callback" functions: > > $ cat >my-instrumentation.c > #include "trace/control.h" > > static void my_cpu_in(unsigned int addr, char size, unsigned

Re: [Qemu-devel] [PATCH 00/13] instrument: Add basic event instrumentation

2017-07-25 Thread Stefan Hajnoczi
On Mon, Jul 24, 2017 at 08:02:24PM +0300, Lluís Vilanova wrote: > This series adds a basic interface to instrument tracing events and control > their tracing state. > > The instrumentation code is dynamically loaded into QEMU (either when it > starts > or later using its remote control