On Mon, Sep 6, 2021 at 6:26 AM Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxxxxxxxx <mailto:tvrtko.ursulin@xxxxxxxxxxxxxxx>> wrote:
>
>
> On 03/09/2021 20:22, jim.cromie@xxxxxxxxx <mailto:jim.cromie@xxxxxxxxx> wrote:
> > On Fri, Sep 3, 2021 at 5:07 AM Tvrtko Ursulin
> > <tvrtko.ursulin@xxxxxxxxxxxxxxx <mailto:tvrtko.ursulin@xxxxxxxxxxxxxxx>> wrote:
> >>
> >>
> >> On 31/08/2021 21:21, Jim Cromie wrote:
> >>> The gvt component of this driver has ~120 pr_debugs, in 9 categories
> >>> quite similar to those in DRM. Following the interface model of
> >>> drm.debug, add a parameter to map bits to these categorizations.
> >>>
> >>> DEFINE_DYNAMIC_DEBUG_CATEGORIES(debug_gvt, __gvt_debug,
> >>> "dyndbg bitmap desc",
> >>> { "gvt:cmd: ", "command processing" },
> >>> v7:
> >>> . move ccflags addition up to i915/Makefile from i915/gvt
> >>> ---
> >>> drivers/gpu/drm/i915/Makefile | 4 ++++
> >>> drivers/gpu/drm/i915/i915_params.c | 35 ++++++++++++++++++++++++++++++
> >>
> >> Can this work if put under gvt/ or at least intel_gvt.h|c?
I tried this.
I moved the code block into gvt/debug.c (new file)
added it to Makefile GVT_SOURCES
dunno why it wont make.
frustratig basic err, Im not seeing.
It does seem proper placement, will resolve...
> >>
> >
> > I thought it belonged here more, at least according to the name of the
> > config.var
>
> Hmm bear with me please - the categories this patch creates are intended
> to be used explicitly from the GVT "sub-module", or they somehow even
> get automatically used with no further intervention to callers required?
>
2009 - v5.9.0 the only users were admins reading/echoing /proc/dynamic_debug/control
presumably cuz they wanted more info in the logs, episodically.
v5.9.0 exported dynamic_debug_exec_queries for in-kernel use,
reusing the stringy: echo $query_command > control idiom.
My intention was to let in-kernel users roll their own drm.debug type interface,
or whatever else they needed. nobodys using it yet.
patch 1/8 implements that drm.debug interface.
5/8 is the primary use case
3/8 (this patch) & 4/8 are patches of opportunity, test cases, proof of function/utility.
its value as such is easier control of those pr-debugs than given by echo > control
Sean Paul seanpaul@xxxxxxxxxxxx <mailto:seanpaul@xxxxxxxxxxxx> worked up a patchset to do runtime steering of drm-debug stream,
in particular watching for drm:atomic:fail: type activity (a subcategory which doesnt exist yet).
5/8 conflicts with his patchset, I have an rfc approach to that, so his concerns are mine too.
> unsigned long __gvt_debug;
> EXPORT_SYMBOL(__gvt_debug);
>
>
>>> +
>>> # Please keep these build lists sorted!
>>>
>>> # core driver code
>>> diff --git a/drivers/gpu/drm/i915/i915_params.c
b/drivers/gpu/drm/i915/i915_params.c
>>> index e07f4cfea63a..e645e149485e 100644
>>> --- a/drivers/gpu/drm/i915/i915_params.c
>>> +++ b/drivers/gpu/drm/i915/i915_params.c
>>> @@ -265,3 +265,38 @@ void i915_params_free(struct i915_params
*params)
>>> + _DD_cat_("gvt:mmio:"),
>>> + _DD_cat_("gvt:render:"),
>>> + _DD_cat_("gvt:sched:"));
>>> +
>>> +#endif
>>
>> So just the foundation - no actual use sites I mean? How would
these be
>> used from the code?
>>
>
> there are 120 pr_debug "users" :-)
>
> no users per se, but anyone using drm.debug
> /sys/module/drm/parameters/debug
> might use this too.
> its a bit easier than composing queries for
>/proc/dyamic_debug/control
Same as my previous question, perhaps I am not up to speed with this
yet.. Even if pr_debug is used inside GVT - are the categories and
debug_gvt global as of this patch (or series)?
they are already global in the sense that if kernel is built with DYNAMIC_DEBUG,
the admin can turn those pr_debugs on and off, and change their decorations in the log (mod,func.line).
Nor are modules protected from each other; drm-core could use dd-exec-queries to enable/disable
pr-debugs in i915 etc
This patch just adds a gvt-debug knob like drm-debug. using the existing format prefixes to categorize them.
Whether those prefixes should be bent towards consistency with the rest of drm-debug
or adapted towards some gvt community need I couldnt say.
Its no save-the-world feature, but its pretty cheap.
Id expect the same users as those who play with drm.debug, for similar reasons.
does this clarify ?