Re: [PATCH RFC v6 00/26] nova-core: Memory management infrastructure (v6)

Joel Fernandes
2026-01-28T12:44:45Z

On Jan 28, 2026, at 6:38 AM, Danilo Krummrich <dakr@kernel.org> wrote:
> On Tue Jan 20, 2026 at 9:42 PM CET, Joel Fernandes wrote:
>> This series is rebased on drm-rust-kernel/drm-rust-next and provides memory
>> management infrastructure for the nova-core GPU driver. It combines several
>> previous series and provides a foundation for nova GPU memory management
>> including page tables, virtual memory management, and BAR mapping. All these
>> are critical nova-core features.
>
> Thanks for this work, I will go through the series soon. (Although it would also
> be nice to have what I mention below addressed first.)

Thanks, I appreciate that.

> I'm not overly happy with this version history. I understand that you are
> building things on top of each other, but going back and forth with adding and
> removing features from a series is confusing and makes it hard to keep track of
> things.
>
> (In the worst case it may even result in reviewers skipping over it leaving you
> with no progress eventually.)
>
> [...]
>
> Hence, please separate the features from each other in separate patch series,
> with their own proper version history and changelog. In order to account for the
> dependencies, you can just mention them in the cover letter and add a link to
> the other related patch series, which should be sufficient for people interested
> in the full picture.
>
> I think the most clean approach would probably be a split with CList, DRM buddy
> and Nova MM stuff.
>
> And just to clarify, in the end I do not care too much about whether it's all in
> a single series or split up, but going back and forth with combining things that
> once have been separate and have a separate history doesn't work out well.

I understand the concern, and I appreciate you taking the time to explain. Let
me provide some context on how we ended up here, as it may help clarify the
situation.

1. This is a multi-month undertaking with many interdependencies. It is
difficult to predict which patches will come to exist, the optimal order, how to split, which series
first, or what pieces are missing. This is similar to the evolution of nova
itself - complex interdependencies make it hard to predict what will be
needed. Rather than waiting months for a perfect plan before posting
anything, I chose to iterate publicly.

2. The decision to move GPU buddy out of DRM came later in the process [1].
This significantly changed the scope, requiring a much larger patch to
handle the buddy infrastructure that everything else depends on.

3. The decision to separate buddy from the CList series came from wanting to
make progress on CList independently [2]. That effort alone took almost a
month with several rewrites based on feedback from others.

4. There was some back and forth on whether to post code with users or code
that could potentially be used. This influenced the decision to combine
things into the same series to demonstrate working functionality.

5. The memory management code only became functional around v3. Page table
walking turned out to be tricky, and I did not have a proper user at that
time. Eventually I realized BAR1 is a strong use case for page table
translation, so I added support for that.

Regarding splitting the series: that makes sense, I will split into CList, GPU
buddy, and Nova MM as you suggest. You make a fair point about the versioning
too - labeling new patches (even though most are old) as v6 is confusing. One question: what version
numbers should each split series use? CList was at v3 before being combined,
and similar story for GPU buddy and Nova MM. Should I continue from the last
version number they were posted with, or continue from v6?

[1] https://lore.kernel.org/all/20251124234432.1988476-1-joelagnelf@nvidia.com/
[2] https://lore.kernel.org/all/20251129213056.4021375-1-joelagnelf@nvidia.com/

--
Joel Fernandes