[PATCH 1/2] drm/xe/guc: Default log level to non-verbose
Matthew Brost
matthew.brost at intel.com
Thu Jun 12 18:35:36 UTC 2025
On Thu, Jun 12, 2025 at 11:26:08AM -0700, John Harrison wrote:
> On 6/12/2025 11:21 AM, Matthew Brost wrote:
> > On Thu, Jun 12, 2025 at 11:05:32AM -0700, Lucas De Marchi wrote:
> > > Currently xe sets the guc log level to a verbose level since it's useful
> > > to debug hangs and general development. However the verbose level may
> > > already be too much and affect performance.
> > >
> > > Michal Mrozek did some tests with the L0 compute stack for submission
> > > latency with ULLS disabled. Below are the normalized numbers with log
> > > level 3 (the current default) as baseline for each test:
> > >
> > > Test \ Log Level 3 0 1 2
> > > ----------------------------------------------------------- ------ ------ ------ ------
> > > BestWalkerNthCommandListSubmission(CmdListCount=2) 1.00 0.63 0.63 0.96
> > > BestWalkerNthSubmission(KernelCount=2) 1.00 0.62 0.63 0.96
> > > BestWalkerNthSubmissionImmediate(KernelCount=2) 1.00 0.58 0.58 0.85
> > > BestWalkerSubmission 1.00 0.62 0.62 0.96
> > > BestWalkerSubmissionImmediate 1.00 0.63 0.62 0.96
> > > BestWalkerSubmissionImmediateMultiCmdlists(cmdlistCount=2) 1.00 0.58 0.58 0.86
> > > BestWalkerSubmissionImmediateMultiCmdlists(cmdlistCount=4) 1.00 0.70 0.70 0.83
> > > BestWalkerSubmissionImmediateMultiCmdlists(cmdlistCount=8) 1.00 0.53 0.52 0.78
> > >
> > > Log level 2 is the first "verbose level" for GuC, where the biggest
> > > difference happens. Keep log level 3 for CONFIG_DRM_XE_DEBUG, but switch
> > > to 1, i.e. GUC_LOG_LEVEL_NON_VERBOSE, for "normal" builds.
> > >
> > For series in general, I think this is a good idea - no need to slow
> > down performance for customers.
> >
> > Downside is devcoredump from customers are going to have less
> > information. I'm wondering if the GuC log level is low, if we should
> > print something in devcoredump indicating this, and instructions on how
> We already include the log level in the GuC info section of the core dump
> (and the debugfs dump), I thought?
>
Yes, GuC log level is in there.
> And note that the minimum log level is meant to include the really important
> logs. It certainly isn't as complete as higher levels but it is hopefully
> enough to give us a first thought of what is going on. And if we need more
> then it is easy to add a comment to the bug report saying 'please re-run
> with this extra setting'.
>
Sure. Typically for really difficult problems you need ftrace (which is
not available either) in addition to the verbose GuC logs to really
figure out what went sideways. I guess I'd hope customers are not
hitting those types of bugs too.
Matt
> John.
>
> > to turn up the GuC log level for filing verbose bug reports? e.g., A
> > similar message to what we print in xe_device_declare_wedged?
> >
> > Matt
> >
> > > Cc: Michal Mrozek <michal.mrozek at intel.com>
> > > Cc: John Harrison <John.C.Harrison at Intel.com>
> > > Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> > > ---
> > > drivers/gpu/drm/xe/xe_module.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c
> > > index 1c4dfafbcd0bc..4809afa7ce3f9 100644
> > > --- a/drivers/gpu/drm/xe/xe_module.c
> > > +++ b/drivers/gpu/drm/xe/xe_module.c
> > > @@ -20,7 +20,7 @@
> > > struct xe_modparam xe_modparam = {
> > > .probe_display = true,
> > > - .guc_log_level = 3,
> > > + .guc_log_level = IS_ENABLED(CONFIG_DRM_XE_DEBUG) ? 3 : 1,
> > > .force_probe = CONFIG_DRM_XE_FORCE_PROBE,
> > > #ifdef CONFIG_PCI_IOV
> > > .max_vfs = IS_ENABLED(CONFIG_DRM_XE_DEBUG) ? ~0 : 0,
> > >
> > > --
> > > 2.49.0
> > >
>
More information about the Intel-xe
mailing list