Alex Bennée writes:

> Lluís Vilanova <vilan...@ac.upc.edu> writes:

>> Alex Bennée writes:
>> 
>>> Peter Maydell <peter.mayd...@linaro.org> writes:
>> 
>>>> On 20 June 2017 at 12:02, Lluís Vilanova <vilan...@ac.upc.edu> wrote:
>>>>> Jayanto Minocha writes:
>>>>>> But that is only used to instrument the cpu_ld/cpu_st macros, which is 
>>>>>> only
>>>>>> called in the case of a tlb miss.
>>>>> 
>>>>>> I've been going over the archives, and it looks like I need to instrument
>>>>>> tcg_out_tlb_load. Am I on the right path ?
>>>>> 
>>>>> That event should trace all guest memory accesses performed by the CPU. 
>>>>> If you
>>>>> found any case where this does not hold, it is likely a bug and I'd 
>>>>> appreciate
>>>>> it if you can point me to the smallest possible failing example.
>>>> 
>>>> Does it catch memory accesses that are performed via helper functions,
>>>> or only ones done by inline TCG code?
>> 
>>> AFAICT it inserts a helper call on the TCG ld/st ops. I wonder why not
>>> just ensure we always take the slow path and put the helpers in the
>>> access functions there? You could even apply an address mask if you only
>>> want to look at certain address ranges.
>> 
>> It also catches accesses performed by helpers.

> Don't helper accesses also pass through the SoftMMU? Or are we talking
> about user-space access as well here?

There's two places where memory access tracing is triggered:

* tcg_gen_qemu_ld/st_...
* ld/st templates (both softmmu and user)

AFAIK, helpers use the ld/st templates to access guest memory.

You can check for calls to trace_guest_mem_before_exec and
trace_guest_mem_before_tcg.


Thanks,
  Lluis

Reply via email to