On Wed, 2 Apr 2025, Bernhard Beschow wrote:
Am 31. März 2025 09:18:05 UTC schrieb "Daniel P. Berrangé" 
<berra...@redhat.com>:
General conceptual question .....  I've never understood what the dividing
line is between use of 'qemu_log_mask' and trace points.

I *think* it's the perspective: If you want to see any issues, regardless of which device, use the -l option, i.e. qemu_log_mask(). If, however, you want to see what a particular device does, use tracepoints.

I'd say that traces are like debug printfs that you don't normally want to see but may be interesting for developers for debugging a specific device model or QEMU part so you can enable the relevant ones for that device or part. Logs are something you want to notify the user or admin about and is not tracing internal operation of a device. But there may be some overlap as some logs could be converted to traces but they are under log for historical reasons as previously there were debug printfs controlled by defines in devices that were later converted to traces and logs that could be controlled in run time which were used for some traces before trace points existed. Then were probably kept as logs just to not change the command line because it's easier to type -d in_asm then say -trace enable="tcg_in_asm" or something like that.

Regards,
BALATON Zoltan

The latter can be
optionally built to feed into qemu log, as well as the other dynamic trace
backends.

The use of qemu_log() in qemu_log_mask() seems like an implementation detail to 
me. Theoretically, qemu_log_mask() could use a different backend if this got 
implemented, and wouldn't require code changes throughout QEMU.

Best regards,
Bernhard


Is there a compelling reason to use 'qemu_log', that isn't acceptable for
trace probe points ?

This is an indirect way of asking whether qemu_log_mask should be exposed
to rust, or would exposing tracing be sufficient ?

With regards,
Daniel

Reply via email to