From: Jim Cromie <jim.cromie@gmail.com>
To: jbaron@akamai.com
Cc: Jim Cromie <jim.cromie@gmail.com>,
nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: [PATCH v3 39/41] nouveau-dbg: add 2 verbose-classmaps for CLI, SUBDEV
Date: Mon, 18 Jul 2022 00:36:38 -0600 [thread overview]
Message-ID: <20220718063641.9179-55-jim.cromie@gmail.com> (raw)
In-Reply-To: <20220718063641.9179-1-jim.cromie@gmail.com>
nouveau has additional debug variables to consider:
drivers/gpu/drm/nouveau/include/nvkm/core/device.h
131: if (_device->debug >= (l)) \
drivers/gpu/drm/nouveau/include/nvkm/core/client.h
39: if (_client->debug >= NV_DBG_##l) \
drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h
54: if (CONFIG_NOUVEAU_DEBUG >= (l) && _subdev->debug >= (l)) \
This is another baby-step, that seems not to break, so lets get a
snapshot.
whats done here:
In nouveau_drm.c, declare class-names: NV_CLI_DBG_* NV_SUBDEV_DBG_* by
calling DECLARE_DYNDBG_CLASSMAP(verbose-type) 2x more, right after the
drm DECLARE, for cli and subdev. Adjust base to 10,15, to avoid 0-10
allocated subsystem-wide for drm.debug. This shares the 0..30
classid-space.
In nvkm/core/debug.h, add enums to match the names, with initial
values to match the bases.
In nvkm/core/subdev.h, alter (recently added) nvkm_drmdbg_() to use
NV_SUBDEV_DBG_* instead of NV_DBG_*. Note: this is undone next,
because base != CONFIG_NOUVEAU_DEBUG.
NOTES:
class-name-space is flat and wide, so super-generic names like INFO
should be prefixed; who could predict what a generic "V1" does across
all modules.
A sub-system prefix, such as "DRM_UT_" could be considered a working
shorthand for module "foo,bar,buzz" (which wouldnt work), but it adds
a layer of authors-judgment in the classifications.
In both classmaps, Ive left FATAL..WARN out, they're not really
optional the way INFO..SPAM are; even if they were defaulted to on,
dyndbg shouldn't be able to turn them off.
bash-5.1# modprobe nouveau
[ 966.107833] dyndbg: 3 debug prints in module wmi
[ 966.342188] dyndbg: class[0]: module:nouveau base:15 len:5 ty:1
[ 966.342873] dyndbg: 15: 0 NV_SUBDEV_DBG_OFF
[ 966.343352] dyndbg: 16: 1 NV_SUBDEV_DBG_INFO
[ 966.343912] dyndbg: 17: 2 NV_SUBDEV_DBG_DEBUG
[ 966.344443] dyndbg: 18: 3 NV_SUBDEV_DBG_TRACE
[ 966.344938] dyndbg: 19: 4 NV_SUBDEV_DBG_SPAM
[ 966.345402] dyndbg: class[1]: module:nouveau base:10 len:5 ty:1
[ 966.346011] dyndbg: 10: 0 NV_CLI_DBG_OFF
[ 966.346477] dyndbg: 11: 1 NV_CLI_DBG_INFO
[ 966.346989] dyndbg: 12: 2 NV_CLI_DBG_DEBUG
[ 966.347442] dyndbg: 13: 3 NV_CLI_DBG_TRACE
[ 966.347875] dyndbg: 14: 4 NV_CLI_DBG_SPAM
[ 966.348284] dyndbg: class[2]: module:nouveau base:0 len:10 ty:0
[ 966.348888] dyndbg: 0: 0 DRM_UT_CORE
[ 966.349310] dyndbg: 1: 1 DRM_UT_DRIVER
[ 966.349694] dyndbg: 2: 2 DRM_UT_KMS
[ 966.350083] dyndbg: 3: 3 DRM_UT_PRIME
[ 966.350482] dyndbg: 4: 4 DRM_UT_ATOMIC
[ 966.351016] dyndbg: 5: 5 DRM_UT_VBL
[ 966.351475] dyndbg: 6: 6 DRM_UT_STATE
[ 966.351899] dyndbg: 7: 7 DRM_UT_LEASE
[ 966.352309] dyndbg: 8: 8 DRM_UT_DP
[ 966.352678] dyndbg: 9: 9 DRM_UT_DRMRES
[ 966.353104] dyndbg: module:nouveau attached 3 classes
[ 966.353759] dyndbg: 119 debug prints in module nouveau
NOTE: it was 632 with previous commit, switching NV_DEBUG to use
NV_SUBDEV_DBG_DEBUG instead of NV_DBG_DEBUG is the cause.
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
---
.../gpu/drm/nouveau/include/nvkm/core/debug.h | 16 ++++++++++++++++
.../gpu/drm/nouveau/include/nvkm/core/subdev.h | 3 ++-
drivers/gpu/drm/nouveau/nouveau_drm.c | 14 ++++++++++++++
3 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/debug.h b/drivers/gpu/drm/nouveau/include/nvkm/core/debug.h
index b4a9c7d991ca..6a155a23a3d1 100644
--- a/drivers/gpu/drm/nouveau/include/nvkm/core/debug.h
+++ b/drivers/gpu/drm/nouveau/include/nvkm/core/debug.h
@@ -9,4 +9,20 @@
#define NV_DBG_TRACE 5
#define NV_DBG_PARANOIA 6
#define NV_DBG_SPAM 7
+
+enum nv_cli_dbg_verbose {
+ NV_CLI_DBG_OFF = 10,
+ NV_CLI_DBG_INFO,
+ NV_CLI_DBG_DEBUG,
+ NV_CLI_DBG_TRACE,
+ NV_CLI_DBG_SPAM
+};
+enum nv_subdev_dbg_verbose {
+ NV_SUBDEV_DBG_OFF = 15,
+ NV_SUBDEV_DBG_INFO,
+ NV_SUBDEV_DBG_DEBUG,
+ NV_SUBDEV_DBG_TRACE,
+ NV_SUBDEV_DBG_SPAM
+};
+
#endif
diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h b/drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h
index b9c2afab321f..bf9c69f4fc3e 100644
--- a/drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h
+++ b/drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h
@@ -2,6 +2,7 @@
#ifndef __NVKM_SUBDEV_H__
#define __NVKM_SUBDEV_H__
#include <core/device.h>
+#include <core/debug.h>
enum nvkm_subdev_type {
#define NVKM_LAYOUT_ONCE(t,s,p,...) t,
@@ -65,7 +66,7 @@ void nvkm_subdev_intr(struct nvkm_subdev *);
if (CONFIG_NOUVEAU_DEBUG >= (l) && _subdev->debug >= (l)) \
dev_dbg(_subdev->device->dev, "%s: "f, _subdev->name, ##a); \
} while(0)
-#define nvkm_drmdbg_(s,l,f,a...) nvkm_drmdbg__((s), NV_DBG_##l, dbg, f, ##a)
+#define nvkm_drmdbg_(s,l,f,a...) nvkm_drmdbg__((s), NV_SUBDEV_DBG_##l, dbg, f, ##a)
#define nvkm_debug(s,f,a...) nvkm_drmdbg_((s), DEBUG, f, ##a)
#define nvkm_trace(s,f,a...) nvkm_drmdbg_((s), TRACE, f, ##a)
#define nvkm_spam(s,f,a...) nvkm_drmdbg_((s), SPAM, f, ##a)
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 76e3a8d50b01..85b63b527877 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -83,6 +83,20 @@ DECLARE_DYNDBG_CLASSMAP(drm_debug_classes, DD_CLASS_TYPE_DISJOINT, 0,
"DRM_UT_DP",
"DRM_UT_DRMRES");
+DECLARE_DYNDBG_CLASSMAP(nv_cli_debug_verbose, DD_CLASS_TYPE_VERBOSE, 10,
+ "NV_CLI_DBG_OFF",
+ "NV_CLI_DBG_INFO",
+ "NV_CLI_DBG_DEBUG",
+ "NV_CLI_DBG_TRACE",
+ "NV_CLI_DBG_SPAM");
+
+DECLARE_DYNDBG_CLASSMAP(nv_subdev_debug_verbose, DD_CLASS_TYPE_VERBOSE, 15,
+ "NV_SUBDEV_DBG_OFF",
+ "NV_SUBDEV_DBG_INFO",
+ "NV_SUBDEV_DBG_DEBUG",
+ "NV_SUBDEV_DBG_TRACE",
+ "NV_SUBDEV_DBG_SPAM");
+
MODULE_PARM_DESC(config, "option string to pass to driver core");
static char *nouveau_config;
module_param_named(config, nouveau_config, charp, 0400);
--
2.36.1
next prev parent reply other threads:[~2022-07-18 6:41 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-18 6:35 [PATCH v3 00/41] DYNDBG: opt-in class'd debug for modules, use in drm Jim Cromie
2022-07-18 6:35 ` [PATCH v3 01/41] dyndbg: fix static_branch manipulation Jim Cromie
2022-07-18 6:35 ` [PATCH v3 02/41] dyndbg: fix module.dyndbg handling Jim Cromie
2022-07-18 6:35 ` [PATCH v3 03/41] dyndbg: show both old and new in change-info Jim Cromie
2022-07-18 6:35 ` [PATCH v3 04/41] dyndbg: reverse module walk in cat control Jim Cromie
2022-07-18 6:35 ` [PATCH v3 05/41] dyndbg: reverse module.callsite " Jim Cromie
2022-07-18 6:35 ` [PATCH v3 06/41] dyndbg: use ESCAPE_SPACE for " Jim Cromie
2022-07-18 6:35 ` [PATCH v3 07/41] dyndbg: let query-modname override actual module name Jim Cromie
2022-07-18 6:35 ` [PATCH v3 08/41] dyndbg: add test_dynamic_debug module Jim Cromie
2022-07-18 6:35 ` [PATCH v3 09/41] dyndbg: drop EXPORTed dynamic_debug_exec_queries Jim Cromie
2022-07-18 6:35 ` [PATCH v3 10/41] dyndbg: add class_id to pr_debug callsites Jim Cromie
2022-07-18 6:35 ` [PATCH v3 11/41] dyndbg: add __pr_debug_cls for testing Jim Cromie
2022-07-18 6:35 ` [PATCH v3 12/41] dyndbg: add DECLARE_DYNDBG_CLASSMAP Jim Cromie
2022-07-18 6:35 ` [PATCH v3 13/41] kernel/module: add __dyndbg_classes section Jim Cromie
2022-07-18 6:35 ` [PATCH v3 14/41] dyndbg: add ddebug_attach_module_classes Jim Cromie
2022-07-18 6:35 ` [PATCH v3 15/41] dyndbg: validate class FOO by checking with module Jim Cromie
2022-07-18 6:36 ` [PATCH v3 16/41] dyndbg: add drm.debug style bitmap support Jim Cromie
2022-07-18 6:36 ` [PATCH v3 17/41] dyndbg: test DECLARE_DYNDBG_CLASSMAP, sysfs nodes Jim Cromie
2022-07-18 6:36 ` [PATCH v3 18/41] doc-dyndbg: describe "class CLASS_NAME" query support Jim Cromie
2022-07-18 6:36 ` [PATCH v3 19/41] doc-dyndbg: edit dynamic-debug-howto for brevity, audience Jim Cromie
2022-07-18 6:36 ` [PATCH v3 20/41] drm_print: condense enum drm_debug_category Jim Cromie
2022-07-18 6:36 ` [PATCH v3 21/41] drm: POC drm on dyndbg - use in core, 2 helpers, 3 drivers Jim Cromie
2022-07-18 6:36 ` [PATCH v3 22/41] drm_print: interpose drm_*dbg with forwarding macros Jim Cromie
2022-07-18 6:36 ` [PATCH v3 23/41] drm_print: wrap drm_*_dbg in dyndbg descriptor factory macro Jim Cromie
2022-07-18 6:36 ` [PATCH v3 24/41] drm-print: add drm_dbg_driver to improve namespace symmetry Jim Cromie
2022-07-18 6:36 ` [PATCH v3 24/39] drm-print: include dyndbg header indirectly Jim Cromie
2022-07-18 6:36 ` [PATCH v3 25/41] " Jim Cromie
2022-07-18 6:36 ` [PATCH v3 25/39] drm_print: refine drm_debug_enabled for jump-label Jim Cromie
2022-07-18 6:36 ` [PATCH v3 26/39] drm_print: prefer bare printk KERN_DEBUG on generic fn Jim Cromie
2022-07-18 6:36 ` [PATCH v3 26/41] drm_print: refine drm_debug_enabled for jump-label Jim Cromie
2022-07-18 6:36 ` [PATCH v3 27/39] drm_print: add _ddebug descriptor to drm_*dbg prototypes Jim Cromie
2022-07-18 6:36 ` [PATCH v3 27/41] drm_print: prefer bare printk KERN_DEBUG on generic fn Jim Cromie
2022-07-18 6:36 ` [PATCH v3 28/41] drm_print: add _ddebug descriptor to drm_*dbg prototypes Jim Cromie
2022-07-18 6:36 ` [PATCH v3 28/39] nouveau: change nvkm_debug/trace to use dev_dbg POC Jim Cromie
2022-07-18 6:36 ` [PATCH v3 29/39] dyndbg: add _DPRINTK_FLAGS_ENABLED Jim Cromie
2022-07-18 6:36 ` [PATCH v3 29/41] nouveau: change nvkm_debug/trace to use dev_dbg POC Jim Cromie
2022-07-18 6:36 ` [PATCH v3 30/39] dyndbg: add _DPRINTK_FLAGS_TRACE Jim Cromie
2022-07-18 6:36 ` [PATCH v3 30/41] tracing/events: Add __vstring() and __assign_vstr() helper macros Jim Cromie
2022-07-18 6:36 ` [PATCH v3 31/41] dyndbg: add _DPRINTK_FLAGS_ENABLED Jim Cromie
2022-07-18 6:36 ` [PATCH v3 31/39] dyndbg: add write-events-to-tracefs code Jim Cromie
2022-07-18 6:36 ` [PATCH v3 32/39] dyndbg: 4 new trace-events: pr_debug, dev_dbg, drm_{, dev}debug Jim Cromie
2022-07-18 6:36 ` [PATCH v3 32/41] dyndbg: add _DPRINTK_FLAGS_TRACE Jim Cromie
2022-07-18 6:36 ` [PATCH v3 33/41] dyndbg: add write-events-to-tracefs code Jim Cromie
2022-07-18 6:36 ` [PATCH v3 33/39] dyndbg/drm: POC add tracebits sysfs-knob Jim Cromie
2022-07-18 6:36 ` [PATCH v3 34/39] drm-print: add drm_dbg_driver, improve namespace symmetry Jim Cromie
2022-07-18 6:36 ` [PATCH v3 34/41] dyndbg: add 2 trace-events: drm_{,dev}debug Jim Cromie
2022-07-18 6:36 ` [PATCH v3 35/41] dyndbg: add 2 more trace-events: pr_debug, dev_dbg Jim Cromie
2022-07-18 6:36 ` [PATCH v3 35/39] nouveau: adapt NV_DEBUG, NV_ATOMIC to use DRM.debug Jim Cromie
2022-07-18 6:36 ` [PATCH v3 36/41] dyndbg/drm: POC add tracebits sysfs-knob Jim Cromie
2022-07-18 6:36 ` [PATCH v3 36/39] nv-subdev-debug Jim Cromie
2022-07-18 6:36 ` [PATCH v3 37/41] nouveau: adapt NV_DEBUG, NV_ATOMIC to use DRM.debug Jim Cromie
2022-07-18 6:36 ` [PATCH v3 37/39] nouveau-dbg: add 2 verbose-classmaps for CLI, SUBDEV Jim Cromie
2022-07-18 6:36 ` [PATCH v3 38/39] nouveau-dbg: fixup lost prdbgs Jim Cromie
2022-07-18 6:36 ` [PATCH v3 38/41] nouveau-dyndbg: alter DEBUG, TRACE, SPAM levels to use dyndbg Jim Cromie
2022-07-18 6:36 ` Jim Cromie [this message]
2022-07-18 6:36 ` [PATCH v3 39/39] wip subdev refine breaks on use Jim Cromie
2022-07-18 6:36 ` [PATCH v3 40/41] nouveau-dbg: fixup lost prdbgs Jim Cromie
2022-07-18 6:36 ` [PATCH v3 41/41] nouveau-dyndbg: wip subdev refine, breaks on use Jim Cromie
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=20220718063641.9179-55-jim.cromie@gmail.com \
--to=jim.cromie@gmail.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jbaron@akamai.com \
--cc=nouveau@lists.freedesktop.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox