On Tue, 9 Nov 2021 17:38:21 +0530 Sai Prakash Ranjan <quic_saipraka@xxxxxxxxxxx> wrote: > Debugging a specific driver or subsystem can be a lot easier if we can > trace events specific to that driver or subsystem. This type of > filtering can be achieved using existing dynamic debug library which > provides a way to filter based on files, functions and modules. > > Using this, provide an additional flag 'e' to filter event tracing to > specified input. > > For example, tracing all MMIO read/write can be overwhelming and of no > use when debugging a specific driver or a subsystem. So switch to > dynamic event tracing for register accesses. > > Example: Tracing register accesses for all drivers in drivers/soc/qcom/* > and the trace output is given below: > > # dyndbg="file drivers/soc/qcom/* +e" trace_event=rwmmio > or > # echo "file drivers/soc/qcom/* +e" > /sys/kernel/debug/dynamic_debug/control > # cat /sys/kernel/debug/tracing/trace FYI, it's best to use /sys/kernel/tracing, as the debug/tracing is only there for backward compatibility. > rwmmio_read: rpmh_rsc_probe+0x35c/0x410 readl addr=0xffff80001071000c > rwmmio_read: rpmh_rsc_probe+0x3d0/0x410 readl addr=0xffff800010710004 > rwmmio_write: rpmh_rsc_probe+0x3b0/0x410 writel addr=0xffff800010710d00 val=0x3 > rwmmio_write: write_tcs_cmd+0x6c/0x78 writel addr=0xffff800010710d30 val=0x10108 I'd much rather have a module name or something attached to the event that ca be filtered on via the trace event filters, than having it determined by some side effect done in another directory. -- Steve