From: Danilo Krummrich <dakr@kernel.org>
To: Robin Murphy <robin.murphy@arm.com>
Cc: "Christoph Hellwig" <hch@lst.de>,
"Miguel Ojeda" <miguel.ojeda.sandonis@gmail.com>,
"Abdiel Janulgue" <abdiel.janulgue@gmail.com>,
daniel.almeida@collabora.com, aliceryhl@google.com,
rust-for-linux@vger.kernel.org, "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>,
"Trevor Gross" <tmgross@umich.edu>,
"Valentin Obst" <kernel@valentinobst.de>,
"open list" <linux-kernel@vger.kernel.org>,
"Marek Szyprowski" <m.szyprowski@samsung.com>,
airlied@redhat.com,
"open list:DMA MAPPING HELPERS" <iommu@lists.linux.dev>,
"Greg KH" <gregkh@linuxfoundation.org>
Subject: Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.
Date: Thu, 16 Jan 2025 16:57:56 +0100 [thread overview]
Message-ID: <Z4kshDHw8NEjQONR@pollux> (raw)
In-Reply-To: <bbc60912-7ed5-4bb1-b273-8061abe49e10@arm.com>
On Thu, Jan 16, 2025 at 01:57:50PM +0000, Robin Murphy wrote:
> On 2025-01-16 1:17 pm, Danilo Krummrich wrote:
> > On Fri, Jan 10, 2025 at 11:41:54AM +0100, Danilo Krummrich wrote:
> > > On Fri, Jan 10, 2025 at 09:39:55AM +0100, Christoph Hellwig wrote:
> > > > On Thu, Jan 09, 2025 at 09:49:47AM +0100, Danilo Krummrich wrote:
> > > > > On Thu, Jan 09, 2025 at 09:08:12AM +0100, Christoph Hellwig wrote:
> > > > > > On Wed, Jan 08, 2025 at 04:21:33PM +0100, Danilo Krummrich wrote:
> > > > > > > What does "your code" mean? Duplicated in every driver?
> > > > > >
> > > > > > Yes, interfaces to the DMA API should stay in readable C code and not
> > > > > > in weird bindings so that it reminds greppable and maintainable.
> > > > > >
> > > > >
> > > > > Rust drivers shouldn't use C APIs directly, but rather use an abstraction of the
> > > > > corresponding C API.
> > > >
> > > > Don't force me to deal with your shiny language of the day.
> > >
> > > Again, no one asks you to deal with or maintain this piece of Rust code.
> > >
> > > > Maintaining
> > > > multi-language projects is a pain I have no interest in dealing with.
> > > > If you want to use something that's not C, be that assembly or rust you
> > > > write to C interfaces and deal with the impedence mismatch yourself as
> > > > far as I'm concerned.
> > > >
> > >
> > > This is exactly what we're doing and proposing here, isn't it?
> > >
> > > We wrote a single piece of Rust code that abstracts the C API for all Rust
> > > drivers, which we offer to maintain ourselves.
> > >
> > > What else are you asking for?
> >
> > Since there hasn't been a reply so far, I assume that we're good with
> > maintaining the DMA Rust abstractions separately.
>
> Indeed, FWIW it seems like the appropriate level of abstraction to me,
> judging by the other wrappers living in rust/kernel/ already. As far as the
> interaction with C code goes, it appears to be a pretty straightforward
> midlayer consumer of the DMA API much like others we already have (e.g.
> videobuf2-dma-*), just one which happens to be a language binding rather
> than some other kind of functional abstraction.
>
> There is a realistic chance that the C API will evolve in ways which break
> the binding, but as long as a) that won't break non-Rust builds, and b) Rust
> folks are happy to take responsibility for un-breaking the Rust build if and
> when it happens, then that seems reasonable IMO.
Surely you can expect maintainers of the Rust abstraction to help with
integrating API changes -- this isn't different compared to driver / component
maintainers helping with integrating fundamental API changes for their affected
driver / component, like you've mentioned videobuf2-dma stuff.
At last year's LPC I held a talk [1] about Rust in the kernel and there was a
question at the end where I was asked how I think about cases where Rust
abstraction break caused C API changes.
My answer was that I'm not too concerned about this. We can just rely on what
already happens every day in kernel development: people work together and
collaborate. There are a lot of very core components that are widely used and
depending on the complexity of the change may require the help of the users to
integrate changes. So, I don't think with Rust abstractions we're adding
anything that the kernel does not already has a strategy to deal with.
- Danilo
[1] https://youtu.be/3Igmx28B3BQ?si=wD0CP-zku4U6fAsN
>
> Thanks,
> Robin.
>
> >
> > Hence, the next version of this patch series will have the corresponding
> > maintainer entry.
> >
> > - Danilo
>
next prev parent reply other threads:[~2025-01-16 15:58 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-08 12:27 [PATCH v8 0/2] Add dma coherent allocator abstraction Abdiel Janulgue
2025-01-08 12:27 ` [PATCH v8 1/2] rust: error: Add EOVERFLOW Abdiel Janulgue
2025-01-08 12:27 ` [PATCH v8 2/2] rust: add dma coherent allocator abstraction Abdiel Janulgue
2025-01-08 13:59 ` Christoph Hellwig
2025-01-08 15:16 ` Miguel Ojeda
2025-01-08 15:18 ` Christoph Hellwig
2025-01-08 15:21 ` Danilo Krummrich
2025-01-09 8:08 ` Christoph Hellwig
2025-01-09 8:49 ` Danilo Krummrich
2025-01-10 8:39 ` Christoph Hellwig
2025-01-10 10:41 ` Danilo Krummrich
2025-01-16 13:17 ` Danilo Krummrich
2025-01-16 13:57 ` Robin Murphy
2025-01-16 15:57 ` Danilo Krummrich [this message]
2025-01-17 13:56 ` Simona Vetter
2025-01-17 19:10 ` Abdiel Janulgue
2025-01-28 10:14 ` Daniel Almeida
2025-01-28 9:23 ` Christoph Hellwig
2025-01-29 21:33 ` Danilo Krummrich
2025-01-31 7:57 ` Christoph Hellwig
2025-02-03 8:17 ` Abdiel Janulgue
2025-02-04 5:29 ` Christoph Hellwig
2025-01-30 13:19 ` Philipp Stanner
2025-01-30 13:35 ` Daniel Almeida
2025-01-30 13:43 ` Philipp Stanner
2025-01-30 15:46 ` Jason Gunthorpe
2025-01-30 16:11 ` Greg KH
2025-01-30 17:24 ` Jason Gunthorpe
2025-01-31 7:47 ` Greg KH
2025-01-31 13:54 ` Jason Gunthorpe
2025-02-03 18:46 ` Hector Martin
2025-02-03 19:16 ` Jason Gunthorpe
2025-02-03 23:41 ` Hector Martin
2025-02-03 19:22 ` Paolo Bonzini
2025-02-03 23:05 ` Hector Martin
2025-02-05 18:52 ` On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) Simona Vetter
2025-02-05 20:36 ` Dave Airlie
2025-02-06 9:19 ` Hector Martin
2025-02-06 17:58 ` Linus Torvalds
2025-02-07 12:16 ` Dr. Greg
2025-02-08 4:26 ` Steven Rostedt
2025-02-08 4:32 ` Steven Rostedt
2025-02-08 8:31 ` Hector Martin
2025-02-10 9:41 ` Icenowy Zheng
2025-02-10 10:24 ` Danilo Krummrich
2025-02-13 3:49 ` Icenowy Zheng
2025-02-13 6:41 ` Abdiel Janulgue
2025-02-13 9:50 ` Icenowy Zheng
2025-02-13 11:34 ` Danilo Krummrich
2025-02-13 12:26 ` Icenowy Zheng
2025-02-08 20:44 ` Theodore Ts'o
2025-02-09 0:47 ` Danilo Krummrich
2025-02-09 3:42 ` comex
2025-02-13 10:20 ` David Airlie
2025-02-20 16:24 ` Simona Vetter
2025-02-20 16:37 ` Jason Gunthorpe
2025-02-20 16:52 ` Jarkko Sakkinen
2025-02-13 19:52 ` Ronja Meyer
2025-02-13 19:22 ` 33KK
2025-02-06 19:37 ` Danilo Krummrich
2025-02-06 20:16 ` Hector Martin
2025-02-07 17:14 ` Konstantin Ryabitsev
2025-02-07 18:02 ` Hector Martin
2025-02-07 18:16 ` Konstantin Ryabitsev
2025-02-09 8:25 ` Neal Gompa
2025-02-10 17:28 ` Mark Brown
2025-02-14 7:10 ` Neal Gompa
2025-02-14 19:49 ` Al Viro
2025-02-19 15:03 ` Mark Brown
2025-02-07 18:33 ` Linus Torvalds
2025-02-07 19:18 ` Hector Martin
2025-02-07 18:53 ` Dr. David Alan Gilbert
2025-02-07 9:41 ` Hector Martin
2025-02-07 10:20 ` Hector Martin
2025-02-07 10:51 ` Greg KH
2025-02-07 13:49 ` Simona Vetter
2025-02-07 14:54 ` Hector Martin
2025-02-10 7:52 ` Simona Vetter
2025-02-08 23:55 ` [PATCH v8 2/2] rust: add dma coherent allocator abstraction Carlos Bilbao
2025-02-09 6:44 ` David Airlie
2025-02-09 16:19 ` Carlos Bilbao
2025-02-09 16:28 ` Carlos Bilbao
2025-01-08 18:08 ` Daniel Sedlak
2025-01-08 19:09 ` Daniel Almeida
2025-01-09 11:14 ` Abdiel Janulgue
2025-01-09 11:19 ` Miguel Ojeda
2025-01-09 11:32 ` Miguel Ojeda
2025-01-10 8:07 ` Abdiel Janulgue
2025-01-12 0:41 ` kernel test robot
2025-02-04 16:54 ` Thomas Hampton
2025-02-05 2:41 ` Thomas Hampton
2025-02-10 8:54 ` [PATCH v8 0/2] Add " Pyrex
2025-02-10 9:09 ` Danilo Krummrich
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=Z4kshDHw8NEjQONR@pollux \
--to=dakr@kernel.org \
--cc=a.hindborg@kernel.org \
--cc=abdiel.janulgue@gmail.com \
--cc=airlied@redhat.com \
--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=daniel.almeida@collabora.com \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=hch@lst.de \
--cc=iommu@lists.linux.dev \
--cc=kernel@valentinobst.de \
--cc=linux-kernel@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=miguel.ojeda.sandonis@gmail.com \
--cc=ojeda@kernel.org \
--cc=robin.murphy@arm.com \
--cc=rust-for-linux@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.