From: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
To: Daniel Almeida <daniel.almeida@collabora.com>
Cc: "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" <benno.lossin@proton.me>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Alice Ryhl" <aliceryhl@google.com>,
"Trevor Gross" <tmgross@umich.edu>,
"Sumit Semwal" <sumit.semwal@linaro.org>,
"Christian König" <christian.koenig@amd.com>,
"Boris Brezillon" <boris.brezillon@collabora.com>,
linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org,
dri-devel@lists.freedesktop.org,
"Asahi Lina" <lina@asahilina.net>
Subject: Re: [PATCH 2/2] rust: drm: Add GPUVM abstraction
Date: Mon, 24 Mar 2025 18:36:49 +0100 [thread overview]
Message-ID: <CANiq72mQ3zuYmsq1PD-49kKLNji8OJwuvxK5QWkNaBMuC-PHQg@mail.gmail.com> (raw)
In-Reply-To: <20250324-gpuvm-v1-2-7f8213eebb56@collabora.com>
Hi Daniel,
A few quick notes for future versions on style/docs to try to keep
things consistent upstream -- not an actual review.
On Mon, Mar 24, 2025 at 4:14 PM Daniel Almeida
<daniel.almeida@collabora.com> wrote:
>
> +#[allow(type_alias_bounds)]
The documentation says this is highly discouraged -- it may be good to
mention why it is OK in this instance in a comment or similar.
Also, could this be `expect`? (e.g. if it triggers in all compiler
versions we support)
> +// A convenience type for the driver's GEM object.
Should this be a `///` comment, i.e. docs?
> +/// Trait that must be implemented by DRM drivers to represent a DRM GpuVm (a GPU address space).
(Throughout the file) Markdown in documentation, e.g. `GpuVm`.
(Throughout the file) Intra-doc links where they work, e.g. [`GpuVm`]
(assuming it works this one).
> + // - Ok(()) is always returned.
(Throughout the file) Markdown in normal comments too.
> +/// A transparent wrapper over `drm_gpuva_op_map`.
(Throughout the file) A link to C definitions is always nice if there
is a good one, e.g.
[`drm_gpuva_op_map`]:
https://docs.kernel.org/gpu/drm-mm.html#c.drm_gpuva_op_map
Ideally we will eventually have a better way to link these
automatically, but for the time being, this helps (and later we can do
a replace easier).
> +/// `None`.
> +
> +/// Note: the reason for a dedicated remap operation, rather than arbitrary
Missing `///` (?).
> +#[repr(C)]
> +#[pin_data]
> +/// A GPU VA range.
> +///
> +/// Drivers can use `inner` to store additional data.
(Throughout the file) We typically place attributes go below the
documentation -- or is there a reason to do it like this?
We had cases with e.g. Clippy bugs regarding safety comments that
could be workarounded with "attribute movement", but it does not seem
to be the case here.
> + if p.is_null() {
> + Err(ENOMEM)
For error cases, we typically try to do early returns instead.
> + /// Iterates the given range of the GPU VA space. It utilizes
> + /// [`DriverGpuVm`] to call back into the driver providing the split and
> + /// merge steps.
This title (and the next one) may be a bit too long (or not -- please
check in the rendered docs), i.e. the first paragraph is the "title",
which is used differently in the rendered docs. If there is a way to
have a shorter title that still differentiates between the two
methods, that would be nice.
> + /// # Arguments
> + ///
> + /// - `ctx`: A driver-specific context.
> + /// - `req_obj`: The GEM object to map.
> + /// - `req_addr`: The start address of the new mapping.
> + /// - `req_range`: The range of the mapping.
> + /// - `req_offset`: The offset into the GEM object.
Normally we try to avoid this kind of sections and instead reference
the arguments from the text (e.g. "...the range of the mapping
(`req_range`)...") -- but if there is no good way to do it, then it is
OK.
> +// SAFETY: All our trait methods take locks
(Throughout the file) Period at the end.
Thanks!
Cheers,
Miguel
next prev parent reply other threads:[~2025-03-24 17:37 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-24 15:13 [PATCH 0/2] Add a Rust GPUVM abstraction Daniel Almeida
2025-03-24 15:13 ` [PATCH 1/2] rust: helpers: Add bindings/wrappers for dma_resv Daniel Almeida
2025-03-24 18:43 ` Miguel Ojeda
2025-03-24 15:13 ` [PATCH 2/2] rust: drm: Add GPUVM abstraction Daniel Almeida
2025-03-24 17:36 ` Miguel Ojeda [this message]
2025-03-24 19:25 ` Daniel Almeida
2025-03-24 19:38 ` Miguel Ojeda
2025-03-24 21:07 ` Miguel Ojeda
2025-03-24 20:22 ` Benno Lossin
2025-03-24 18:29 ` Charalampos Mitrodimas
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=CANiq72mQ3zuYmsq1PD-49kKLNji8OJwuvxK5QWkNaBMuC-PHQg@mail.gmail.com \
--to=miguel.ojeda.sandonis@gmail.com \
--cc=a.hindborg@kernel.org \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=boris.brezillon@collabora.com \
--cc=christian.koenig@amd.com \
--cc=daniel.almeida@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gary@garyguo.net \
--cc=lina@asahilina.net \
--cc=linux-kernel@vger.kernel.org \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=sumit.semwal@linaro.org \
--cc=tmgross@umich.edu \
/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).