On Fri, Nov 12, 2021 at 4:49 AM Vincent Whitchurch <vincent.whitchurch@xxxxxxxx> 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@xxxxxxxx/ > > 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.