All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bagas Sanjaya <bagasdotme@gmail.com>
To: Jim Cromie <jim.cromie@gmail.com>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	gregkh@linuxfoundation.org, jbaron@akamai.com
Cc: ukaszb@chromium.org, louis.chauvet@bootlin.com
Subject: Re: [PATCH v6 00/31] drm/dyndbg: Fix dynamic debug classmap regression
Date: Wed, 19 Nov 2025 08:35:14 +0700	[thread overview]
Message-ID: <aR0e0rgrdXWIo8nI@archie.me> (raw)
In-Reply-To: <20251118201842.1447666-1-jim.cromie@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2199 bytes --]

On Tue, Nov 18, 2025 at 01:18:10PM -0700, Jim Cromie wrote:
> hello all,
> 
> commit aad0214f3026 ("dyndbg: add DECLARE_DYNDBG_CLASSMAP macro")
> 
> added dyndbg's "classmaps" feature, which brought dyndbg's 0-off-cost
> debug to DRM.  Dyndbg wired to /sys/module/drm/parameters/debug,
> mapped its bits to classes named "DRM_UT_*", and effected the callsite
> enablements only on updates to the sys-node (and underlying >control).
> 
> Sadly, it hit a CI failure, resulting in:
> commit bb2ff6c27bc9 ("drm: Disable dynamic debug as broken")
> 
> The regression was that drivers, when modprobed, did not get the
> drm.debug=0xff turn-on action, because that had already been done for
> drm.ko itself.
> 
> The core design bug is in the DECLARE_DYNDBG_CLASSMAP macro.  Its use
> in both drm.ko (ie core) and all drivers.ko meant that they couldn't
> fundamentally distinguish their respective roles.  They each
> "re-defined" the classmap separately, breaking K&R-101.
> 
> My ad-hoc test scripting helped to hide the error from me, by 1st
> testing various combos of boot-time module.dyndbg=... and
> drm.debug=... configurations, and then inadvertently relying upon
> those initializations.
> 
> This series addresses both failings:
> 
> It replaces DECLARE_DYNDBG_CLASSMAP with
> 
> - `DYNAMIC_DEBUG_CLASSMAP_DEFINE`: Used by core modules (e.g.,
>   `drm.ko`) to define their classmaps.  Based upon DECLARE, it exports
>   the classmap so USE can use it.
> 
> - `DYNAMIC_DEBUG_CLASSMAP_USE`: this lets other "subsystem" users
>   create a linkage to the classmap defined elsewhere (ie drm.ko).
>   These users can then find their "parent" and apply its settings.
> 
> It adds a selftest script, and a 2nd "sub-module" to recapitulate
> DRM's multi-module "subsystem" use-case, including the specific
> failure scenario.
> 
> It also adds minor parsing enhancements, allowing easier construction
> of multi-part debug configurations.  These enhancements are used to
> test classmaps in particular, but are not otherwize required.

What commit/tree this series is based on?

Confused...

-- 
An old man doll... just what I always wanted! - Clara

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  parent reply	other threads:[~2025-11-19  1:35 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-18 20:18 [PATCH v6 00/31] drm/dyndbg: Fix dynamic debug classmap regression Jim Cromie
2025-11-18 20:18 ` [PATCH v6 01/31] dyndbg: factor ddebug_match_desc out from ddebug_change Jim Cromie
2025-11-18 20:18 ` [PATCH v6 02/31] dyndbg: add stub macro for DECLARE_DYNDBG_CLASSMAP Jim Cromie
2025-11-18 20:18 ` [PATCH v6 03/31] docs/dyndbg: update examples \012 to \n Jim Cromie
2025-11-18 20:18 ` [PATCH v6 04/31] docs/dyndbg: explain flags parse 1st Jim Cromie
2025-11-20  9:30   ` Bagas Sanjaya
2025-11-18 20:18 ` [PATCH v6 05/31] test-dyndbg: fixup CLASSMAP usage error Jim Cromie
2025-11-18 20:18 ` [PATCH v6 06/31] dyndbg: reword "class unknown, " to "class:_UNKNOWN_" Jim Cromie
2025-11-18 20:18   ` [PATCH v6 06/31] dyndbg: reword "class unknown," " Jim Cromie
2025-11-18 20:18 ` [PATCH v6 07/31] dyndbg: make ddebug_class_param union members same size Jim Cromie
2025-11-18 20:18 ` [PATCH v6 08/31] dyndbg: drop NUM_TYPE_ARRAY Jim Cromie
2025-11-18 20:18 ` [PATCH v6 09/31] dyndbg: tweak pr_fmt to avoid expansion conflicts Jim Cromie
2025-11-18 20:18 ` [PATCH v6 10/31] dyndbg: reduce verbose/debug clutter Jim Cromie
2025-11-18 20:18 ` [PATCH v6 11/31] dyndbg: refactor param_set_dyndbg_classes and below Jim Cromie
2025-11-18 20:18 ` [PATCH v6 12/31] dyndbg: tighten fn-sig of ddebug_apply_class_bitmap Jim Cromie
2025-11-18 20:18 ` [PATCH v6 13/31] dyndbg: replace classmap list with a vector Jim Cromie
2025-11-18 20:18 ` [PATCH v6 14/31] dyndbg: macrofy a 2-index for-loop pattern Jim Cromie
2025-11-18 20:18 ` [PATCH v6 15/31] dyndbg, module: make proper substructs in _ddebug_info Jim Cromie
2025-11-18 20:18   ` [PATCH v6 15/31] dyndbg,module: " Jim Cromie
2025-11-18 20:18 ` [PATCH v6 16/31] dyndbg: hoist classmap-filter-by-modname up to ddebug_add_module Jim Cromie
2025-12-09 22:43   ` Jason Baron
2025-12-10  6:33     ` jim.cromie
2025-12-10 19:14       ` Jason Baron
2025-12-10 20:21         ` jim.cromie
2025-12-12 16:05           ` Jason Baron
2025-12-14 18:09             ` jim.cromie
2025-11-18 20:18 ` [PATCH v6 17/31] dyndbg: move mod_name down from struct ddebug_table to _ddebug_info Jim Cromie
2025-11-18 20:18 ` [PATCH v6 18/31] dyndbg-API: remove DD_CLASS_TYPE_(DISJOINT|LEVEL)_NAMES and code Jim Cromie
2025-11-18 20:18 ` [PATCH v6 19/31] selftests-dyndbg: add a dynamic_debug run_tests target Jim Cromie
2025-11-18 20:18 ` [PATCH v6 20/31] dyndbg: change __dynamic_func_call_cls* macros into expressions Jim Cromie
2025-11-18 20:18 ` [PATCH v6 21/31] dyndbg-API: replace DECLARE_DYNDBG_CLASSMAP Jim Cromie
2025-11-18 20:18 ` [PATCH v6 22/31] dyndbg: detect class_id reservation conflicts Jim Cromie
2025-11-18 20:18 ` [PATCH v6 23/31] dyndbg: check DYNAMIC_DEBUG_CLASSMAP_DEFINE args at compile-time Jim Cromie
2025-11-18 20:18 ` [PATCH v6 24/31] dyndbg-test: change do_prints testpoint to accept a loopct Jim Cromie
2025-11-18 20:18 ` [PATCH v6 25/31] dyndbg-API: promote DYNAMIC_DEBUG_CLASSMAP_PARAM to API Jim Cromie
2025-11-18 20:18 ` [PATCH v6 26/31] dyndbg: treat comma as a token separator Jim Cromie
2025-11-18 20:18 ` [PATCH v6 27/31] dyndbg: split multi-query strings with % Jim Cromie
2025-11-18 20:18 ` [PATCH v6 28/31] selftests-dyndbg: add test_mod_submod Jim Cromie
2025-11-18 20:18 ` [PATCH v6 29/31] dyndbg: resolve "protection" of class'd pr_debug Jim Cromie
2025-12-11 21:25   ` Jason Baron
2025-12-14 18:04     ` jim.cromie
2025-11-18 20:18 ` [PATCH v6 30/31] dyndbg: add DYNAMIC_DEBUG_CLASSMAP_USE_(dd_class_name, offset) Jim Cromie
2025-12-11 21:22   ` Jason Baron
2025-11-18 20:18 ` [PATCH v6 31/31] docs/dyndbg: add classmap info to howto Jim Cromie
2025-11-20  3:08   ` Bagas Sanjaya
2025-11-20 16:22     ` jim.cromie
2025-11-19  1:35 ` Bagas Sanjaya [this message]
2025-11-19  8:12   ` [PATCH v6 00/31] drm/dyndbg: Fix dynamic debug classmap regression jim.cromie
2025-11-20  2:00     ` Bagas Sanjaya
2025-12-10 19:09 ` Jason Baron
2025-12-10 21:12   ` jim.cromie
2025-12-12 15:56     ` Jason Baron
2025-12-14 18:24       ` jim.cromie
2025-12-14 19:54         ` Jeff King
2025-12-14 22:52           ` jim.cromie
2025-12-15  8:07             ` Jeff King

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=aR0e0rgrdXWIo8nI@archie.me \
    --to=bagasdotme@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jbaron@akamai.com \
    --cc=jim.cromie@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=louis.chauvet@bootlin.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.