On Fri, Nov 12, 2021 at 4:49 AM Vincent Whitchurch vincent.whitchurch@axis.com wrote:
On Thu, Nov 11, 2021 at 03:02:04PM -0700, Jim Cromie wrote:
Dynamic-Debug can do 2nd exceedingly well:
A- all work is behind jump-label's NOOP, zero off cost. B- exact site selectivity, precisely the useful traffic. can tailor enabled set interactively, at shell.
Since the tracefs interface is effective for drm (the threads suggest so), adding that interface to dynamic-debug has real potential for everyone including drm.
Add a new +T flag to enable tracing, independent of +p, and add and
I posted a patchset a while ago to do something very similar, but that got stalled for some reason and I unfortunately didn't follow it up:
https://lore.kernel.org/lkml/20200825153338.17061-1-vincent.whitchurch@axis....
A key difference between that patchset and this patch (besides that small fact that I used +x instead of +T) was that my patchset allowed the dyndbg trace to be emitted to the main buffer and did not force them to be in an instance-specific buffer.
That feature is quite important at least for my use case since I often use dyndbg combined with function tracing, and the latter doesn't work on non-main instances according to Documentation/trace/ftrace.rst.
For example, here's a random example of a bootargs from one of my recent debugging sessions:
trace_event=printk:* ftrace_filter=_mmc*,mmc*,sd*,dw_mci*,mci* ftrace=function trace_buf_size=20M dyndbg="file drivers/mmc/* +x"
Hi Vincent,
are you planning to dust this patchset off and resubmit it ?
Ive been playing with it and learning ftrace (decade+ late), I found your boot-line example very helpful as 1st steps (still havent even tried the filtering)
with these adjustments (voiced partly to test my understanding) I would support it, and rework my patchset to use it.
- change flag to -e, good mnemonics for event/trace-event T is good too, but uppercase, no need to go there.
- include/trace/events/dyndbg.h - separate file, not mixed with print.h dyndbg class, so trace_event=dyndbg:*
- 1 event type per pr_debug, dev_dbg, netdev_dbg ? ibdev_dbg ? with the extra args: descriptor that Steven wanted, probably also struct <|net|ib>dev
If youre too busy for a while, I'd eventually take a (slow) run at it.