Re: [PATCH v6 32/57] nouveau: adapt NV_DEBUG, NV_ATOMIC to use DRM.debug

From: jim . cromie
Date: Tue Mar 07 2023 - 00:11:29 EST


On Mon, Mar 6, 2023 at 11:50 AM Timur Tabi <timur@xxxxxxxxxx> wrote:
>
> On Sun, Sep 4, 2022 at 4:48 PM Jim Cromie <jim.cromie@xxxxxxxxx> wrote:
> >
> > These 2 macros used drm_debug_enabled() on DRM_UT_{DRIVER,ATOMIC}
> > respectively, replace those with drm_dbg_##cat invocations.
> >
> > this results in new class'd prdbg callsites:
> >
> > :#> grep nouveau /proc/dynamic_debug/control | grep class | wc
> > 116 1130 15584
> > :#> grep nouveau /proc/dynamic_debug/control | grep class | grep DRIVER | wc
> > 74 704 9709
> > :#> grep nouveau /proc/dynamic_debug/control | grep class | grep ATOMIC | wc
> > 31 307 4237
> > :#> grep nouveau /proc/dynamic_debug/control | grep class | grep KMS | wc
> > 11 119 1638
> >
> > the KMS entries are due to existing uses of drm_dbg_kms().
> >
> > Signed-off-by: Jim Cromie <jim.cromie@xxxxxxxxx>
>
> Has this patch set been forgotten? It was posted six months ago and
> there's no sign that it was picked up.

Not forgotten, but chicken-egg problems with initializing prdbgs/drm-dbgs
in drm.ko & dependent drivers pushed it down in priority.
I have a fix for them, which needs Jasons "lets use notifier-chain" patches,
which is now in Luis' modules-next.

After that fix lands, I can revisit this one.

> The changes to drm_debug_enabled have impacted NV_DEBUG and NV_ATOMIC
> and something needs to be fixed. I posted a simpler patch a few weeks
> ago, but maybe Jim's is better.

I couldnt find it on lore, can you post a link ?

But I do recall something about chatty logs, caused by

#define drm_debug_enabled_instrumented(category) \
({ \
pr_debug("todo: is this frequent enough to optimize ?\n"); \
drm_debug_enabled_raw(category); \
})

If thats the case, it does seem to be frequent enough to silence.

Before you do so, could you turn on the "mfl" flags,
and count occurrences of each callsite ?

echo module nouveau +mfl > /proc/dynamic_debug/control

the numbers and duration of enablement would inform any optimization,
including those available in the subject patchset.

thanks,
Jim