From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: jim.cromie@gmail.com
Cc: daniel.vetter@ffwll.ch, tvrtko.ursulin@linux.intel.com,
jani.nikula@intel.com, jbaron@akamai.com,
gregkh@linuxfoundation.org, ukaszb@chromium.org,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
amd-gfx@lists.freedesktop.org,
intel-gvt-dev@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org, linux@rasmusvillemoes.dk,
joe@perches.com, mcgrof@kernel.org
Subject: Re: [PATCH v9 30/52] drm-dyndbg: adapt drm core to use dyndbg classmaps-v2
Date: Wed, 3 Jul 2024 14:52:49 +0300 [thread overview]
Message-ID: <ZoU7kR2aYwVDvd_G@intel.com> (raw)
In-Reply-To: <CAJfuBxzsZUpO-Q_uAfMhzXs0WHYMTnj1F8ju7af-kQZKQjLvNQ@mail.gmail.com>
On Tue, Jul 02, 2024 at 08:34:39PM -0600, jim.cromie@gmail.com wrote:
> On Tue, Jul 2, 2024 at 5:33 PM Ville Syrjälä
> <ville.syrjala@linux.intel.com> wrote:
> >
> > On Tue, Jul 02, 2024 at 03:57:20PM -0600, Jim Cromie wrote:
> > > dyndbg's CLASSMAP-v1 api was broken; DECLARE_DYNDBG_CLASSMAP tried to
> > > do too much. Its replaced by DRM_CLASSMAP_DEFINE, which creates &
> > > EXPORTs the classmap when CONFIG_DRM_USE_DYNAMIC_DEBUG=y, for direct
> > > reference by drivers.
> > >
> > > The drivers still use DECLARE_DYNDBG_CLASSMAP for now, so they still
> > > redundantly re-declare the classmap, but we can convert the drivers
> > > later to DYNDBG_CLASSMAP_USE
> > >
> > > Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
> > > ---
> > > drivers/gpu/drm/drm_print.c | 25 +++++++++++++------------
> > > include/drm/drm_print.h | 8 ++++++++
> > > 2 files changed, 21 insertions(+), 12 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c
> > > index 699b7dbffd7b..4a5f2317229b 100644
> > > --- a/drivers/gpu/drm/drm_print.c
> > > +++ b/drivers/gpu/drm/drm_print.c
> > > @@ -55,18 +55,19 @@ MODULE_PARM_DESC(debug, "Enable debug output, where each bit enables a debug cat
> > > #if !defined(CONFIG_DRM_USE_DYNAMIC_DEBUG)
> > > module_param_named(debug, __drm_debug, ulong, 0600);
> > > #else
> > > -/* classnames must match vals of enum drm_debug_category */
> > > -DECLARE_DYNDBG_CLASSMAP(drm_debug_classes, DD_CLASS_TYPE_DISJOINT_BITS, 0,
> > > - "DRM_UT_CORE",
> > > - "DRM_UT_DRIVER",
> > > - "DRM_UT_KMS",
> > > - "DRM_UT_PRIME",
> > > - "DRM_UT_ATOMIC",
> > > - "DRM_UT_VBL",
> > > - "DRM_UT_STATE",
> > > - "DRM_UT_LEASE",
> > > - "DRM_UT_DP",
> > > - "DRM_UT_DRMRES");
> > > +/* classnames must match value-symbols of enum drm_debug_category */
> > > +DRM_CLASSMAP_DEFINE(drm_debug_classes, DD_CLASS_TYPE_DISJOINT_BITS,
> > > + DRM_UT_CORE,
> > > + "DRM_UT_CORE",
> > > + "DRM_UT_DRIVER",
> > > + "DRM_UT_KMS",
> > > + "DRM_UT_PRIME",
> > > + "DRM_UT_ATOMIC",
> > > + "DRM_UT_VBL",
> > > + "DRM_UT_STATE",
> > > + "DRM_UT_LEASE",
> > > + "DRM_UT_DP",
> > > + "DRM_UT_DRMRES");
> >
> > Looks like this stuff just ends up in an array, so presumably
> > it should be possible to use designated initializers to make this
> > less fragile?
>
> Im not sure I got your whole point, but:
I mean using
[DRM_UT_CORE] = "DRM_UT_CORE"
instead of
"DRM_UT_CORE"
so there is no chance of screwing up the order.
Or maybe the order doesn't even matter here?
Could also stringify to avoid accidental of typos.
>
> the fragility is the repetitive re-statement of the map,
> in those un-modified DECLARE_s,
> once replaced, the USEs just ref the struct built by the _DEFINE
> (once, and exported)
>
> I dont really like the _DEFINEs restatement of the enum-values: DRM_UT_*
> especially as "strings".
> I can automate the stringification with an APPLY_FN_(__stringify, ...)
> but the enum-list DRM_UT_* (w.o quotes) is still needed as args.
>
> unless there is something C can do thats like Enum.values() ?
>
>
>
> >
> > --
> > Ville Syrjälä
> > Intel
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2024-07-03 11:52 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-02 21:56 [PATCH v9 00/53] fix CONFIG_DRM_USE_DYNAMIC_DEBUG=y Jim Cromie
2024-07-02 21:56 ` [PATCH v9 01/52] docs/dyndbg: update examples \012 to \n Jim Cromie
2024-07-02 21:56 ` [PATCH v9 02/52] test-dyndbg: fixup CLASSMAP usage error Jim Cromie
2024-07-02 21:56 ` [PATCH v9 03/52] dyndbg: reword "class unknown, " to "class:_UNKNOWN_" Jim Cromie
2024-07-02 21:56 ` [PATCH v9 03/52] dyndbg: reword "class unknown," " Jim Cromie
2024-07-02 21:56 ` [PATCH v9 04/52] dyndbg: make ddebug_class_param union members same size Jim Cromie
2024-07-02 21:56 ` [PATCH v9 05/52] dyndbg: replace classmap list with a vector Jim Cromie
2024-07-02 21:56 ` [PATCH v9 06/52] dyndbg: ddebug_apply_class_bitmap - add module arg, select on it Jim Cromie
2024-07-02 21:56 ` [PATCH v9 07/52] dyndbg: split param_set_dyndbg_classes to _module & wrapper fns Jim Cromie
2024-07-02 21:56 ` [PATCH v9 08/52] dyndbg: drop NUM_TYPE_ARRAY Jim Cromie
2024-07-02 21:56 ` [PATCH v9 09/52] dyndbg: reduce verbose/debug clutter Jim Cromie
2024-07-02 21:57 ` [PATCH v9 10/52] dyndbg: silence debugs with no-change updates Jim Cromie
2024-07-02 21:57 ` [PATCH v9 11/52] dyndbg: tighten ddebug_class_name() 1st arg type Jim Cromie
2024-07-02 21:57 ` [PATCH v9 12/52] dyndbg: tighten fn-sig of ddebug_apply_class_bitmap Jim Cromie
2024-07-02 21:57 ` [PATCH v9 13/52] dyndbg: reduce verbose=3 messages in ddebug_add_module Jim Cromie
2024-07-02 21:57 ` [PATCH v9 14/52] dyndbg-API: remove DD_CLASS_TYPE_(DISJOINT|LEVEL)_NAMES and code Jim Cromie
2024-07-02 21:57 ` [PATCH v9 15/52] dyndbg-API: fix DECLARE_DYNDBG_CLASSMAP Jim Cromie
2024-07-02 21:57 ` [PATCH v9 16/52] selftests-dyndbg: add tools/testing/selftests/dynamic_debug/* Jim Cromie
2024-07-02 21:57 ` [PATCH v9 17/52] dyndbg-API: promote DYNDBG_CLASSMAP_PARAM to API Jim Cromie
2024-07-02 21:57 ` [PATCH v9 18/52] dyndbg-doc: add classmap info to howto Jim Cromie
2024-07-02 21:57 ` [PATCH v9 19/52] dyndbg: treat comma as a token separator Jim Cromie
2024-07-02 21:57 ` [PATCH v9 20/52] selftests-dyndbg: add comma_terminator_tests Jim Cromie
2024-07-02 21:57 ` [PATCH v9 21/52] dyndbg: split multi-query strings with % Jim Cromie
2024-07-02 21:57 ` [PATCH v9 22/52] selftests-dyndbg: test_percent_splitting Jim Cromie
2024-07-02 21:57 ` [PATCH v9 23/52] docs/dyndbg: explain new delimiters: comma, percent Jim Cromie
2024-07-02 21:57 ` [PATCH v9 24/52] selftests-dyndbg: add test_mod_submod Jim Cromie
2024-07-02 21:57 ` [PATCH v9 25/52] dyndbg-doc: explain flags parse 1st Jim Cromie
2024-07-02 21:57 ` [PATCH v9 26/52] dyndbg: change __dynamic_func_call_cls* macros into expressions Jim Cromie
2024-07-02 21:57 ` [PATCH v9 27/52] selftests-dyndbg: check KCONFIG_CONFIG to avoid silly fails Jim Cromie
2024-07-10 20:22 ` Helen Koike
2024-07-14 16:13 ` jim.cromie
2024-07-02 21:57 ` [PATCH v9 28/52] dyndbg-selftest: reduce default verbosity Jim Cromie
2024-07-02 21:57 ` [PATCH v9 29/52] drm: use correct ccflags-y spelling Jim Cromie
2024-07-02 21:57 ` [PATCH v9 30/52] drm-dyndbg: adapt drm core to use dyndbg classmaps-v2 Jim Cromie
2024-07-02 23:33 ` Ville Syrjälä
2024-07-03 2:34 ` jim.cromie
2024-07-03 11:52 ` Ville Syrjälä [this message]
2024-07-03 16:11 ` jim.cromie
2024-07-10 0:25 ` jim.cromie
2024-07-02 21:57 ` [PATCH v9 31/52] drm-dyndbg: adapt DRM to invoke DYNDBG_CLASSMAP_PARAM Jim Cromie
2024-07-02 21:57 ` [PATCH v9 32/53] DRM-CLASSMAP-USE in drm-drv.c Jim Cromie
2024-07-02 22:21 ` jim.cromie
2024-07-02 21:57 ` [PATCH v9 32/52] drm-dyndbg: DRM_CLASSMAP_USE in amdgpu driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 33/53] " Jim Cromie
2024-07-02 21:57 ` [PATCH v9 33/52] drm-dyndbg: DRM_CLASSMAP_USE in i915 driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 34/52] drm-dyndbg: DRM_CLASSMAP_USE in drm_crtc_helper Jim Cromie
2024-07-02 21:57 ` [PATCH v9 34/53] drm-dyndbg: DRM_CLASSMAP_USE in i915 driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 35/53] drm-dyndbg: DRM_CLASSMAP_USE in drm_crtc_helper Jim Cromie
2024-07-02 21:57 ` [PATCH v9 35/52] drm-dyndbg: DRM_CLASSMAP_USE in drm_dp_helper Jim Cromie
2024-07-02 21:57 ` [PATCH v9 36/53] " Jim Cromie
2024-07-02 21:57 ` [PATCH v9 36/52] drm-dyndbg: DRM_CLASSMAP_USE in nouveau Jim Cromie
2024-07-02 21:57 ` [PATCH v9 37/53] " Jim Cromie
2024-07-02 21:57 ` [PATCH v9 37/52] drm-print: workaround unused variable compiler meh Jim Cromie
2024-07-02 21:57 ` [PATCH v9 38/52] drm-dyndbg: add DRM_CLASSMAP_USE to Xe driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 38/53] drm-print: workaround unused variable compiler meh Jim Cromie
2024-07-02 21:57 ` [PATCH v9 39/52] drm-dyndbg: add DRM_CLASSMAP_USE to virtio_gpu Jim Cromie
2024-07-02 21:57 ` [PATCH v9 39/53] drm-dyndbg: add DRM_CLASSMAP_USE to Xe driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 40/52] drm-dyndbg: add DRM_CLASSMAP_USE to simpledrm Jim Cromie
2024-07-02 21:57 ` [PATCH v9 40/53] drm-dyndbg: add DRM_CLASSMAP_USE to virtio_gpu Jim Cromie
2024-07-02 21:57 ` [PATCH v9 41/52] drm-dyndbg: add DRM_CLASSMAP_USE to bochs Jim Cromie
2024-07-02 21:57 ` [PATCH v9 41/53] drm-dyndbg: add DRM_CLASSMAP_USE to simpledrm Jim Cromie
2024-07-02 21:57 ` [PATCH v9 42/53] drm-dyndbg: add DRM_CLASSMAP_USE to bochs Jim Cromie
2024-07-02 21:57 ` [PATCH v9 42/52] drm-dyndbg: add DRM_CLASSMAP_USE to etnaviv Jim Cromie
2024-07-02 21:57 ` [PATCH v9 43/53] " Jim Cromie
2024-07-02 21:57 ` [PATCH v9 43/52] drm-dyndbg: add DRM_CLASSMAP_USE to gma500 driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 44/53] " Jim Cromie
2024-07-02 21:57 ` [PATCH v9 44/52] drm-dyndbg: add DRM_CLASSMAP_USE to radeon Jim Cromie
2024-07-02 21:57 ` [PATCH v9 45/53] " Jim Cromie
2024-07-02 21:57 ` [PATCH v9 45/52] drm-dyndbg: add DRM_CLASSMAP_USE to vmwgfx driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 46/52] drm-dyndbg: add DRM_CLASSMAP_USE to vkms driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 46/53] drm-dyndbg: add DRM_CLASSMAP_USE to vmwgfx driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 47/52] drm-dyndbg: add DRM_CLASSMAP_USE to udl driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 47/53] drm-dyndbg: add DRM_CLASSMAP_USE to vkms driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 48/52] drm-dyndbg: add DRM_CLASSMAP_USE to mgag200 driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 48/53] drm-dyndbg: add DRM_CLASSMAP_USE to udl driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 49/53] drm-dyndbg: add DRM_CLASSMAP_USE to mgag200 driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 49/52] drm-dyndbg: add DRM_CLASSMAP_USE to the gud driver Jim Cromie
2024-07-02 21:57 ` [PATCH v9 50/53] " Jim Cromie
2024-07-02 21:57 ` [PATCH v9 50/52] drm-dyndbg: add DRM_CLASSMAP_USE to the qxl driver Jim Cromie
2024-07-02 21:58 ` [PATCH v9 51/52] drm-dyndbg: add DRM_CLASSMAP_USE to the drm_gem_shmem_helper driver Jim Cromie
2024-07-02 21:58 ` [PATCH v9 51/53] drm-dyndbg: add DRM_CLASSMAP_USE to the qxl driver Jim Cromie
2024-07-02 21:58 ` [PATCH v9 52/53] drm-dyndbg: add DRM_CLASSMAP_USE to the drm_gem_shmem_helper driver Jim Cromie
2024-07-02 21:58 ` [PATCH v9 52/52] drm: restore CONFIG_DRM_USE_DYNAMIC_DEBUG un-BROKEN Jim Cromie
2024-07-02 21:58 ` [PATCH v9 53/53] " Jim Cromie
2024-07-02 22:01 ` [PATCH v9 00/53] fix CONFIG_DRM_USE_DYNAMIC_DEBUG=y Luis Chamberlain
2024-07-02 22:14 ` jim.cromie
2024-07-12 15:44 ` Łukasz Bartosik
2024-07-13 21:44 ` jim.cromie
2024-07-15 10:04 ` Łukasz Bartosik
2024-07-15 18:00 ` jim.cromie
2024-07-17 10:38 ` Łukasz Bartosik
2024-07-03 14:40 ` ✗ Fi.CI.BUILD: failure for " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZoU7kR2aYwVDvd_G@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-gvt-dev@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=jbaron@akamai.com \
--cc=jim.cromie@gmail.com \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=mcgrof@kernel.org \
--cc=tvrtko.ursulin@linux.intel.com \
--cc=ukaszb@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.