Le 20/11/2019 à 05:48, Taylor Simpson a écrit :
> For the general DEBUG_HEX messages, I think the trace infrastructure isn't 
> quite what I'm looking for.
> 
> Here's a sample of what it prints
> Start packet: pc = 0x4002f0
> Packet committed: pc = 0x4002f0
> Regs written
>         r18 = -69420 (0xfffef0d4)
>         r19 = -69412 (0xfffef0dc)
> Stores
>         memd[0xfffef0b0] = 0 (0x0000000000000000)
> Next PC = 0x4002f8
> Exec counters: pkt = 17, insn = 24, hvx = 0
> 
> For performance, I'd like a way to disable them completely when 
> --enable-debug isn't passed to configure.  It looks like #ifdef 
> CONFIG_DEBUG_TCG will work for this.  Then, I'd like a command-line option to 
> turn them on.  The "-d exec" seems like a reasonable place.  So, the code 
> will look like this
> 
> #ifdef CONFIG_DEBUG_TCG
>     if (qemu_loglevel_maks(CPU_LOG_EXEC)) {
>         qemu_log(...);
>     }
> #endif
> 
> Please let me know if I'm on the right track here.
> 

I'm not sure CONFIG_DEBUG_TCG is the good choice (Richard should
know...), you should keep your DEBUG_HEX in this case.

But the performance impact should not be big without the #ifdef as
qemu_loglevel_maks() is a simple test and the rest of the code is not
executed (Perhaps an "unlikely(qemu_loglevel_maks(CPU_LOG_EXEC))" could
help).

Thanks,
Laurent

Reply via email to