[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation |
Date: |
Mon, 18 Sep 2017 18:42:55 +0100 |
On 18 September 2017 at 18:09, Lluís Vilanova <address@hidden> wrote:
> Peter Maydell writes:
>> It's also exposing internal QEMU implementation detail.
>> What if in future we decide to switch from our current
>> setup to always interpreting guest instructions as a
>> first pass with JITting done only in the background for
>> hot code?
>
> TCI still has a separation of translation-time (translate.c) and
> execution-time
> (interpreting the TCG opcodes), and I don't think that's gonna go away anytime
> soon.
I didn't mean TCI, which is nothing like what you'd use for
this if you did it (TCI is slower than just JITting.)
> Even if it did, I think there still will be a translation/execution separation
> easy enough to hook into (even if it's a "fake" one for the cold-path
> interpreted instructions).
But what would it mean? You don't have basic blocks any more.
>> Sticking to instrumentation events that correspond exactly to guest
>> execution events means they won't break or expose internals.
>
> It also means we won't be able to "conditionally" instrument instructions
> (e.g.,
> based on their opcode, address range, etc.).
You can still do that, it's just less efficient (your
condition-check happens in the callout to the instrumentation
plugin). We can add "filter" options later if we need them
(which I would rather do than have translate-time callbacks).
> Of course we can add the translation/execution differentiation later if we
> find
> it necessary for performance, but I would rather avoid leaving "historical"
> instrumentation points behind on the API.
>
> What are the use-cases you're aiming for?
* I want to be able to point the small stream of people who come
into qemu-devel asking "how do I trace all my guest's memory
accesses" at a clean API for it.
* I want to be able to have less ugly and confusing tracing
than our current -d output (and perhaps emit tracing in formats
that other analysis tools want as input)
* I want to keep this initial tracing API simple enough that
we can agree on it and get a first working useful version.
thanks
-- PMM
- [Qemu-devel] [PATCH v6 00/22] instrument: Add basic event instrumentation, Lluís Vilanova, 2017/09/13
- [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Lluís Vilanova, 2017/09/13
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Peter Maydell, 2017/09/14
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Lluís Vilanova, 2017/09/15
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Peter Maydell, 2017/09/18
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Lluís Vilanova, 2017/09/18
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation,
Peter Maydell <=
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Emilio G. Cota, 2017/09/19
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Lluís Vilanova, 2017/09/25
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Emilio G. Cota, 2017/09/25
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Lluís Vilanova, 2017/09/26
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Lluís Vilanova, 2017/09/29
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Emilio G. Cota, 2017/09/29
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Lluís Vilanova, 2017/09/29
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Emilio G. Cota, 2017/09/30
- Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Peter Maydell, 2017/09/19
Re: [Qemu-devel] [PATCH v6 01/22] instrument: Add documentation, Stefan Hajnoczi, 2017/09/18