[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <DE6AUT1LYSFH.3W41BDSDPHCK9@nvidia.com>
Date: Wed, 12 Nov 2025 09:45:53 +0900
From: "Alexandre Courbot" <acourbot@...dia.com>
To: "Lyude Paul" <lyude@...hat.com>, "Joel Fernandes"
<joelagnelf@...dia.com>, "Timur Tabi" <ttabi@...dia.com>, "John Hubbard"
<jhubbard@...dia.com>
Cc: "dakr@...nel.org" <dakr@...nel.org>, "lossin@...nel.org"
<lossin@...nel.org>, "ojeda@...nel.org" <ojeda@...nel.org>,
"boqun.feng@...il.com" <boqun.feng@...il.com>, "a.hindborg@...nel.org"
<a.hindborg@...nel.org>, "simona@...ll.ch" <simona@...ll.ch>,
"tmgross@...ch.edu" <tmgross@...ch.edu>, "alex.gaynor@...il.com"
<alex.gaynor@...il.com>, "mripard@...nel.org" <mripard@...nel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"maarten.lankhorst@...ux.intel.com" <maarten.lankhorst@...ux.intel.com>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
"nouveau@...ts.freedesktop.org" <nouveau@...ts.freedesktop.org>,
"rust-for-linux@...r.kernel.org" <rust-for-linux@...r.kernel.org>,
"gary@...yguo.net" <gary@...yguo.net>, "bjorn3_gh@...tonmail.com"
<bjorn3_gh@...tonmail.com>, "tzimmermann@...e.de" <tzimmermann@...e.de>,
"airlied@...il.com" <airlied@...il.com>, "aliceryhl@...gle.com"
<aliceryhl@...gle.com>, "Alexandre Courbot" <acourbot@...dia.com>,
"joel@...lfernandes.org" <joel@...lfernandes.org>, "Alistair Popple"
<apopple@...dia.com>, "Nouveau" <nouveau-bounces@...ts.freedesktop.org>
Subject: Re: [PATCH v2 08/12] nova-core: sequencer: Add register opcodes
On Wed Nov 12, 2025 at 3:42 AM JST, Lyude Paul wrote:
> On Mon, 2025-11-10 at 10:16 -0500, Joel Fernandes wrote:
>> On 11/5/2025 6:19 PM, Timur Tabi wrote:
>> > On Wed, 2025-11-05 at 13:55 -0800, John Hubbard wrote:
>> > > > #define nvdev_trace(d,f,a...) nvdev_printk((d), TRACE, info, f, ##a)
>> > > > #define nvdev_spam(d,f,a...) nvdev_printk((d), SPAM, dbg, f, ##a)
>> > >
>> > > ...and those are unusable, unfortunately. I've tried.
>> >
>> > This works great for me:
>> >
>> > modprobe nouveau dyndbg="+p" modeset=1 debug="gsp=spam" config=NvGspRm=1
>> >
>> > I get all sequencer messages when I boot with these options.
>> >
>> > > ftrace/bpftrace, maybe those are the real way to "trace"...or something
>> > > other than this.
>> >
>> > You could say the same thing about most dev_dbg() statements.
>> >
>> > I agree that dev_dbg for sequencer commands is excessive, and that implementing new debug levels
>> > just to get sequencer prints is also excessive. But Nouveau implement nvkm_trace for a reason. And
>> > we all know that because of ? in Rust, NovaCore does a terrible job at telling us where an error
>> > actually occurred. So there is a lot of room for improvement.
>>
>> IMO, the best way to do this is the tracing subsystem. It is the lowest overhead
>> runtime kernel logging system that I know off, lockless, independent of the
>> serial console etc, next to no runtime overhead when off, etc.
>>
>
> I agree. FWIW, it's worth noting that honestly avoiding logging is the way to
> go for anything spammy. I've seen quite a number of heisenbugs that only
> appear when trace logging isn't turned on in nouveau or vice-versa (igt tests
> that fail because logging causes things to time out…).
+1 for tracing, when debugging we are typically interested in a very
small subset of the debug logs and the ability to only enable what is
needed is essential.
Though I am not sure about the current state of tracing support in
Rust...
Powered by blists - more mailing lists