From: Alistair Popple <apopple@nvidia.com>
To: Danilo Krummrich <dakr@kernel.org>, ^[@nvdebian.thelocal
Cc: nova-gpu <nova-gpu@lists.linux.dev>,
M Henning <mhenning@darkrefraction.com>,
Alice Ryhl <aliceryhl@google.com>,
David Airlie <airlied@gmail.com>,
Alexandre Courbot <acourbot@nvidia.com>,
Benno Lossin <lossin@kernel.org>, Gary Guo <gary@garyguo.net>,
Eliot Courtney <ecourtney@nvidia.com>,
John Hubbard <jhubbard@nvidia.com>,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
rust-for-linux@vger.kernel.org
Subject: Re: [PATCH v5 05/11] drm: nova: Add an info ioctl
Date: Tue, 8 Sep 2026 16:47:22 +1000 [thread overview]
Message-ID: <ap-mQnaspil49v-6@nvdebian.thelocal> (raw)
In-Reply-To: <DL6FGP49MMWG.32RPN38WO2PXU@kernel.org>
On 2026-09-04 at 19:34 +1000, Danilo Krummrich <dakr@kernel.org> wrote...
> On Fri Sep 4, 2026 at 9:49 AM CEST, Alistair Popple wrote:
> > On 2026-09-03 at 20:42 +1000, Danilo Krummrich <dakr@kernel.org> wrote...
> >> I think there never was a "rather than". The point was that if userspace has
> >> conditionals based on the architecture it shouldn't have to figure it out based
> >> on the chipid, as this has been done by the kernel already.
> >
> > I see. Maybe that was a bad assumption on my behalf, because I assumed that if
> > you make a precise hardware description available (chip-id) there'd be no point
> > making an imprecise subset of that description (arch) available as it isn't
> > particularly useful if you can't use it in isolation for any generic purpose.
>
> Except that it is used in isolation for a generic purpose e.g. in NAK.
>
> >> Then in NAK (src/nouveau/compiler/nak/ir.rs), there's this code.
> >>
> >> fn is_turing(&self) -> bool {
> >> self.sm() >= 73 && self.sm() < 80
> >> }
> >>
> >> fn is_ampere(&self) -> bool {
> >> self.sm() >= 80 && self.sm() < 89
> >> }
> >>
> >> fn is_ada(&self) -> bool {
> >> self.sm() == 89
> >> }
> >>
> >> #[allow(dead_code)]
> >> fn is_hopper(&self) -> bool {
> >> self.sm() >= 90 && self.sm() < 100
> >> }
> >>
> >> fn is_blackwell_a(&self) -> bool {
> >> self.sm() >= 100 && self.sm() < 110
> >> }
> >>
> >> fn is_blackwell_b(&self) -> bool {
> >> self.sm() >= 120 && self.sm() < 130
> >> }
> >>
> >> fn is_blackwell(&self) -> bool {
> >> self.is_blackwell_a() || self.is_blackwell_b()
> >> }
> >>
> >> That's two unnecessary indirections for something the kernel already has
> >> available.
> >
> > Again though is what the kernel provides in the form of an arch actually useful
> > to user-space? Obviously the code above makes it look nice and simple like that,
> > but as I have been saying more complete implementations can't just rely on arch
> > alone and so are still going to have lookup tables both for SM and for other
> > info the kernel can't provide.
>
> Are you saying that NAK oversimplifies things and hence gets away with per
> architecture checks in src/nouveau/compiler/nak/sm70.rs? And that a "more
> complete implementation" would be specialized to a point where it becomes
> impossible to have any common code per architecture and in general?
That is my understanding yes, AFAICT we cannot reliably derive the SM ISA from
the chip architecture alone as it's defined here.
Obviously in practice not everything must change for every ISA or the NAK
implementation above wouldn't work at all, so there must be some commonality,
but HW makes no compatibility guarantees between ISA versions so we can't really
make assumptions about the ISA based on the architecture alone.
- Alistair
next prev parent reply other threads:[~2026-09-08 6:47 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-28 3:35 [PATCH v5 00/11] gpu: nova: Export parameters from nova-core to nova-drm Alistair Popple
2026-08-28 3:35 ` [PATCH v5 01/11] gpu: nova-core: Add public driver API to nova-core Alistair Popple
2026-08-31 20:08 ` Danilo Krummrich
2026-08-31 20:42 ` Gary Guo
2026-09-01 7:07 ` Alistair Popple
2026-09-01 7:14 ` Danilo Krummrich
2026-09-01 9:13 ` Alistair Popple
2026-09-01 9:21 ` Danilo Krummrich
2026-09-01 10:27 ` Danilo Krummrich
2026-09-01 11:35 ` Gary Guo
2026-09-01 3:53 ` Alistair Popple
2026-09-02 6:57 ` Alistair Popple
2026-09-02 19:30 ` Danilo Krummrich
2026-08-28 3:35 ` [PATCH v5 02/11] drm: nova: Add DRM registration data Alistair Popple
2026-08-28 3:35 ` [PATCH v5 03/11] drm: nova: Add GPU architecture enum to nova-drm UAPI Alistair Popple
2026-08-28 3:35 ` [PATCH v5 04/11] rust: uaccess: add UserSliceWriter::write_truncated() Alistair Popple
2026-08-28 3:35 ` [PATCH v5 05/11] drm: nova: Add an info ioctl Alistair Popple
2026-08-31 4:58 ` Alistair Popple
2026-08-31 14:23 ` Danilo Krummrich
2026-09-01 3:47 ` Alistair Popple
2026-09-01 4:50 ` Dave Airlie
2026-09-01 5:09 ` Alistair Popple
2026-09-01 7:29 ` Danilo Krummrich
2026-09-02 5:21 ` Alistair Popple
2026-09-02 7:05 ` Alistair Popple
2026-09-02 19:26 ` Danilo Krummrich
2026-09-02 19:38 ` Dave Airlie
2026-09-02 19:42 ` Danilo Krummrich
2026-09-01 4:53 ` Dave Airlie
2026-09-01 5:24 ` Alistair Popple
2026-09-01 10:38 ` Danilo Krummrich
2026-09-01 17:01 ` Danilo Krummrich
2026-09-02 2:38 ` Alistair Popple
2026-09-02 9:40 ` Danilo Krummrich
2026-09-03 1:12 ` Alistair Popple
2026-09-03 10:42 ` Danilo Krummrich
2026-09-04 7:49 ` Alistair Popple
2026-09-04 9:34 ` Danilo Krummrich
2026-09-08 6:47 ` Alistair Popple [this message]
2026-09-04 11:13 ` Gary Guo
2026-09-04 12:08 ` Danilo Krummrich
2026-09-08 7:11 ` Alistair Popple
2026-09-08 7:59 ` Dave Airlie
2026-09-08 14:48 ` M Henning
2026-09-08 16:57 ` Danilo Krummrich
2026-09-08 21:20 ` M Henning
2026-08-28 3:35 ` [PATCH v5 06/11] drm: nova: Add usable VRAM size to GPU info Alistair Popple
2026-08-28 3:35 ` [PATCH v5 07/11] drm: nova: Use nova-core to read VRAM_BAR_SIZE parameter Alistair Popple
2026-08-28 3:35 ` [PATCH v5 08/11] drm: nova: Expose a render node Alistair Popple
2026-08-28 3:35 ` [PATCH v5 09/11] drm: nova: Report GPU name in GPU info Alistair Popple
2026-08-31 14:33 ` Danilo Krummrich
2026-09-01 3:09 ` Alistair Popple
2026-08-28 3:35 ` [PATCH v5 10/11] drm: nova: Report GPU short " Alistair Popple
2026-08-31 14:41 ` Danilo Krummrich
2026-09-01 3:10 ` Alistair Popple
2026-08-28 3:35 ` [PATCH v5 11/11] drm: nova: Report GPU GID " Alistair Popple
2026-08-28 6:04 ` [PATCH v5 00/11] gpu: nova: Export parameters from nova-core to nova-drm Alistair Popple
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=ap-mQnaspil49v-6@nvdebian.thelocal \
--to=apopple@nvidia.com \
--cc=acourbot@nvidia.com \
--cc=airlied@gmail.com \
--cc=aliceryhl@google.com \
--cc=dakr@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=ecourtney@nvidia.com \
--cc=gary@garyguo.net \
--cc=jhubbard@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=mhenning@darkrefraction.com \
--cc=nova-gpu@lists.linux.dev \
--cc=rust-for-linux@vger.kernel.org \
/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