From: John Hubbard <jhubbard@nvidia.com>
To: Eliot Courtney <ecourtney@nvidia.com>,
Alexandre Courbot <acourbot@nvidia.com>
Cc: "Danilo Krummrich" <dakr@kernel.org>,
"Timur Tabi" <ttabi@nvidia.com>,
"Alistair Popple" <apopple@nvidia.com>,
"Zhi Wang" <zhiw@nvidia.com>, "David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Alice Ryhl" <aliceryhl@google.com>,
"Trevor Gross" <tmgross@umich.edu>,
nova-gpu@lists.linux.dev, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 00/31] gpu: nova-core: boot on the r000 GSP firmware
Date: Wed, 9 Sep 2026 14:52:00 -0700 [thread overview]
Message-ID: <a2d7e802-7c9a-4f32-85a4-79c3c51b4b98@nvidia.com> (raw)
In-Reply-To: <DLAJRDMODQ7Q.VQS8G9TRN3Q8@nvidia.com>
On 9/8/26 10:47 PM, Eliot Courtney wrote:
> On Tue Sep 8, 2026 at 10:59 PM JST, Alexandre Courbot wrote:
>> On Sat Aug 22, 2026 at 10:54 AM JST, John Hubbard wrote:
>>> Hi,
>>>
>>> I'm sending this just a few days after v1, which is soon, but Timur Tabi
>>> and Zhi Wang reviewed the whole series in that time, and that led to
>>> quite a lot of fixes and lines changed. So I think it is helpful to
>>> provide a v2 now, so that future reviewers can avoid rediscovering all
>>> those issues.
>>
>> I only gave this a high-level look so far. This needs some reorganizing
>> before it can be properly reviewed. I think the size of the series can
>> be reduced by at least a third, maybe more.
Not according to my latest math. But I'll do what I can. :)
>>
>> First let's keep the series focused on r000: patches 7, 10, 30 and 31
>> are dealing with debug logs, not r000 proper. I'm sure they are useful
>> but they are technically a different topic from adding support for r000.
>>
>> Then there is a lot of churn. For instance patch 28 removes 351 LoCs of
>> bindings introduced by patch 2. They are not required by the end of the
>> series, but kept as dead code after patch 26 because (IIUC) their RPCs
>> are removed later. This is one of the few cases where it is actually ok
>> to do two things in the same patch: were they removed during the switch
>> done by patch 26, their bindings wouldn't need to be introduced at all.
>> Actually that's how the sequencer is treated; I have many issues with
>> patch 26, but *that* one is ok - a bunch of deleted code is the simplest
>> thing to review.
I was wondering about that approach to deleting the sequencer, so good to
hear that it is readable.
>>
>> The msgq v2 part also looks more messy than it needs to be. It tries to
>> keep both versions coexisting at the same time, even though only one of
>> them is ever used at any given time. I suspect it would be simpler to
>> implement the changes as part of the switch. Or at the very least, let's
>> make the cmdq generic if we want it to handle both, and place the
>> differences in sub-modules. This should also simplify the receive path
>> considerably.
>>
>> Patch 26 does 5 different things over hundreds and hundreds of lines,
>> that's more contexts than a reviewer can hold in their head. This needs
>> to be split. I strongly suspect (more an intuition than a realization)
>> that a good part of it is actually intended to land in the
>> already-existing preceding patches. Other things can be simplified: for
>> instance `Bar0` arguments are added to many cmdq methods, which was
>> probably the only way of doing when the series was first developed, but
>> now we can store a `Bar0` in the relevant struct so let's do that.
>> Actually the `Cmdq` is probably overdue holding one.
>>
>> I'll give a deeper look at the next revision, which I expect to be well
>> under the 3000 added LoCs (famous last words :)).
>
> On a broader note, this series contains several chunks of functionality
> that could be separate patch series and reviewed separately. I think
> we'd be able to review this faster if it were explicitly split into
> several series, as Alex noted there is some churn / patches that could
> be put in a better order.
OK, I'll work on splitting up this huge series into digestible smaller
patchsets.
>
> In particular, I see these sets of functionalities that could be done
> separately and in order:
> 1. MCTP transport + cmdq transport
> 2. GMCAPI cmdq infra
> 3. Boot events for r000
> 4. Boot using r000 - that's systeminfo+staticinfo stuff
> 5. Migration to r000 + removal of r570. Ideally, the migration to r000
> can be the smallest commit to flip from (uses r570 for booth, doesn't
> use r000) => (doesn't use r570, uses r000).
> 6. Misc debug log stuff
thanks,
--
John Hubbard
prev parent reply other threads:[~2026-09-09 21:52 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-22 1:54 [PATCH v2 00/31] gpu: nova-core: boot on the r000 GSP firmware John Hubbard
2026-08-22 1:54 ` [PATCH v2 01/31] rust: pci: add domain_nr() accessor John Hubbard
2026-08-22 7:57 ` Miguel Ojeda
2026-08-22 20:11 ` John Hubbard
2026-08-23 0:08 ` Alexandre Courbot
2026-08-22 1:54 ` [PATCH v2 02/31] gpu: nova-core: firmware: add r000 bindings John Hubbard
2026-08-22 1:54 ` [PATCH v2 03/31] gpu: nova-core: extract radix3 page table into its own module John Hubbard
2026-09-07 3:13 ` Alexandre Courbot
2026-09-07 4:20 ` John Hubbard
2026-09-07 5:18 ` Alexandre Courbot
2026-08-22 1:54 ` [PATCH v2 04/31] gpu: nova-core: set MCTP transport header version to 1 John Hubbard
2026-08-22 1:54 ` [PATCH v2 05/31] gpu: nova-core: add Falcon helpers for r000 LOAD_EXEC events John Hubbard
2026-08-22 1:54 ` [PATCH v2 06/31] gpu: nova-core: zero-pad radix3 page table levels to page boundary John Hubbard
2026-09-07 3:09 ` Alexandre Courbot
2026-08-22 1:54 ` [PATCH v2 07/31] gpu: nova-core: distinguish async GSP RPC traffic in debug logs John Hubbard
2026-09-07 2:51 ` Alexandre Courbot
2026-08-22 1:54 ` [PATCH v2 08/31] gpu: nova-core: add optional ucodes firmware loading John Hubbard
2026-08-23 16:26 ` M Henning
2026-08-23 19:51 ` John Hubbard
2026-08-22 1:54 ` [PATCH v2 09/31] gpu: nova-core: add LIBOS3 log buffers and state monitor buffer John Hubbard
2026-08-22 1:54 ` [PATCH v2 10/31] gpu: nova-core: add build ID headers to debugfs log buffer dumps John Hubbard
2026-08-22 1:54 ` [PATCH v2 11/31] gpu: nova-core: rename the FbRanges elf field to fw_image John Hubbard
2026-08-22 1:54 ` [PATCH v2 12/31] gpu: nova-core: regs: add msgq v2 BAR0 register declarations John Hubbard
2026-08-22 1:54 ` [PATCH v2 13/31] gpu: nova-core: gsp: add msgq v2 internals John Hubbard
2026-09-09 5:46 ` Eliot Courtney
2026-08-22 1:54 ` [PATCH v2 14/31] gpu: nova-core: generalize allocate_command() for variable headers John Hubbard
2026-08-22 1:54 ` [PATCH v2 15/31] gpu: nova-core: add GMC API message types John Hubbard
2026-08-22 1:54 ` [PATCH v2 16/31] gpu: nova-core: add GMC send path John Hubbard
2026-08-22 1:54 ` [PATCH v2 17/31] gpu: nova-core: add GMC transport receive path John Hubbard
2026-08-22 1:54 ` [PATCH v2 18/31] gpu: nova-core: gsp: add GMC dispatch on receive John Hubbard
2026-08-22 1:54 ` [PATCH v2 19/31] gpu: nova-core: separate the generic falcon bootloader from FWSEC John Hubbard
2026-08-22 1:54 ` [PATCH v2 20/31] gpu: nova-core: handle the r000 load-and-execute HS binary event John Hubbard
2026-08-22 1:54 ` [PATCH v2 21/31] gpu: nova-core: handle the r000 load-and-execute bootloader event John Hubbard
2026-08-22 1:54 ` [PATCH v2 22/31] gpu: nova-core: gsp: add the GMC boot event dispatcher John Hubbard
2026-08-22 1:54 ` [PATCH v2 23/31] gpu: nova-core: gsp: add the GSP_INIT request builder John Hubbard
2026-08-22 1:54 ` [PATCH v2 24/31] gpu: nova-core: gsp: send GSP_INIT and decode its reply John Hubbard
2026-08-22 1:54 ` [PATCH v2 25/31] gpu: nova-core: gsp: pass the remaining log buffers to GSP-RM John Hubbard
2026-08-22 1:54 ` [PATCH v2 26/31] gpu: nova-core: switch to the r000 GSP firmware John Hubbard
2026-08-22 1:54 ` [PATCH v2 27/31] gpu: nova-core: gsp: validate RPC element framing on receive John Hubbard
2026-08-22 1:54 ` [PATCH v2 28/31] gpu: nova-core: gsp: remove the RPCs that GSP_INIT replaced John Hubbard
2026-08-22 1:54 ` [PATCH v2 29/31] gpu: nova-core: firmware: delete the r570 bindings John Hubbard
2026-08-22 1:54 ` [PATCH v2 30/31] gpu: nova-core: print GMC command names in debug logs John Hubbard
2026-08-22 1:54 ` [PATCH v2 31/31] gpu: nova-core: distinguish GMC event and response " John Hubbard
2026-09-08 13:59 ` [PATCH v2 00/31] gpu: nova-core: boot on the r000 GSP firmware Alexandre Courbot
2026-09-09 5:47 ` Eliot Courtney
2026-09-09 21:52 ` John Hubbard [this message]
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=a2d7e802-7c9a-4f32-85a4-79c3c51b4b98@nvidia.com \
--to=jhubbard@nvidia.com \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=airlied@gmail.com \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=apopple@nvidia.com \
--cc=bhelgaas@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=dakr@kernel.org \
--cc=ecourtney@nvidia.com \
--cc=gary@garyguo.net \
--cc=linux-kernel@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=nova-gpu@lists.linux.dev \
--cc=ojeda@kernel.org \
--cc=simona@ffwll.ch \
--cc=tmgross@umich.edu \
--cc=ttabi@nvidia.com \
--cc=zhiw@nvidia.com \
/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;
as well as URLs for NNTP newsgroup(s).