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 canFYI, it's best to use /sys/kernel/tracing, as the debug/tracing is only
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
there for backward compatibility.
rwmmio_read: rpmh_rsc_probe+0x35c/0x410 readl addr=0xffff80001071000cI'd much rather have a module name or something attached to the event that
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
ca be filtered on via the trace event filters, than having it determined by
some side effect done in another directory.
-- Steve