* [PATCH v8 0/2] Add dma coherent allocator abstraction @ 2025-01-08 12:27 Abdiel Janulgue 2025-01-08 12:27 ` [PATCH v8 1/2] rust: error: Add EOVERFLOW Abdiel Janulgue ` (2 more replies) 0 siblings, 3 replies; 92+ messages in thread From: Abdiel Janulgue @ 2025-01-08 12:27 UTC (permalink / raw) To: daniel.almeida, aliceryhl, robin.murphy, rust-for-linux Cc: Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Abdiel Janulgue Changes since v7: - Remove cpu_buf() and cpu_buf_mut() as exporting a r/w interface via a slice is undefined behaviour due to slice's requirement that the underlying pointer should not be modified (Alice Ryhl, Robin Murphy). - Reintroduce r/w helpers instead which includes proper safety invariants (Daniel Almeida). - Link to v7: https://lore.kernel.org/lkml/20241210221603.3174929-1-abdiel.janulgue@gmail.com/ Changes since v6: - Include the dma_attrs in the constructor, use alloc::Flags as inpiration Changes since v5: - Remove unnecessary lifetime annotation when returning the CPU buffer. Changes since v4: - Documentation and example fixes, use Markdown formatting (Miguel Ojeda). - Discard read()/write() helpers to remove bound on Copy and fix overhead (Daniel Almeida). - Improve error-handling in the constructor block (Andreas Hindborg). Changes since v3: - Reject ZST types by checking the type size in the constructor in addition to requiring FromBytes/AsBytes traits for the type (Alice Ryhl). Changes since v2: - Fixed missing header for generating the bindings. Changes since v1: - Fix missing info in commit log where EOVERFLOW is used. - Restrict the dma coherent allocator to numeric types for now for valid behaviour (Daniel Almeida). - Build slice dynamically. Abdiel Janulgue (2): rust: error: Add EOVERFLOW rust: add dma coherent allocator abstraction. rust/bindings/bindings_helper.h | 1 + rust/kernel/dma.rs | 271 ++++++++++++++++++++++++++++++++ rust/kernel/error.rs | 1 + rust/kernel/lib.rs | 1 + 4 files changed, 274 insertions(+) create mode 100644 rust/kernel/dma.rs base-commit: 0c5928deada15a8d075516e6e0d9ee19011bb000 -- 2.43.0 ^ permalink raw reply [flat|nested] 92+ messages in thread
* [PATCH v8 1/2] rust: error: Add EOVERFLOW 2025-01-08 12:27 [PATCH v8 0/2] Add dma coherent allocator abstraction Abdiel Janulgue @ 2025-01-08 12:27 ` Abdiel Janulgue 2025-01-08 12:27 ` [PATCH v8 2/2] rust: add dma coherent allocator abstraction Abdiel Janulgue 2025-02-10 8:54 ` [PATCH v8 0/2] Add " Pyrex 2 siblings, 0 replies; 92+ messages in thread From: Abdiel Janulgue @ 2025-01-08 12:27 UTC (permalink / raw) To: daniel.almeida, aliceryhl, robin.murphy, rust-for-linux Cc: Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Abdiel Janulgue Trivial addition for missing EOVERFLOW error. This is used by a subsequent patch that might require returning EOVERFLOW as a result of `checked_mul`. Signed-off-by: Abdiel Janulgue <abdiel.janulgue@gmail.com> --- rust/kernel/error.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/rust/kernel/error.rs b/rust/kernel/error.rs index 914e8dec1abd..eb06be2ca9c5 100644 --- a/rust/kernel/error.rs +++ b/rust/kernel/error.rs @@ -63,6 +63,7 @@ macro_rules! declare_err { declare_err!(EPIPE, "Broken pipe."); declare_err!(EDOM, "Math argument out of domain of func."); declare_err!(ERANGE, "Math result not representable."); + declare_err!(EOVERFLOW, "Value too large for defined data type."); declare_err!(ERESTARTSYS, "Restart the system call."); declare_err!(ERESTARTNOINTR, "System call was interrupted by a signal and will be restarted."); declare_err!(ERESTARTNOHAND, "Restart if no handler."); -- 2.43.0 ^ permalink raw reply related [flat|nested] 92+ messages in thread
* [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 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 ` Abdiel Janulgue 2025-01-08 13:59 ` Christoph Hellwig ` (3 more replies) 2025-02-10 8:54 ` [PATCH v8 0/2] Add " Pyrex 2 siblings, 4 replies; 92+ messages in thread From: Abdiel Janulgue @ 2025-01-08 12:27 UTC (permalink / raw) To: daniel.almeida, aliceryhl, robin.murphy, rust-for-linux Cc: Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Abdiel Janulgue Add a simple dma coherent allocator rust abstraction. Based on Andreas Hindborg's dma abstractions from the rnvme driver, which was also based on earlier work by Wedson Almeida Filho. Signed-off-by: Abdiel Janulgue <abdiel.janulgue@gmail.com> --- rust/bindings/bindings_helper.h | 1 + rust/kernel/dma.rs | 271 ++++++++++++++++++++++++++++++++ rust/kernel/lib.rs | 1 + 3 files changed, 273 insertions(+) create mode 100644 rust/kernel/dma.rs diff --git a/rust/bindings/bindings_helper.h b/rust/bindings/bindings_helper.h index 5c4dfe22f41a..49bf713b9bb6 100644 --- a/rust/bindings/bindings_helper.h +++ b/rust/bindings/bindings_helper.h @@ -11,6 +11,7 @@ #include <linux/blk_types.h> #include <linux/blkdev.h> #include <linux/cred.h> +#include <linux/dma-mapping.h> #include <linux/errname.h> #include <linux/ethtool.h> #include <linux/file.h> diff --git a/rust/kernel/dma.rs b/rust/kernel/dma.rs new file mode 100644 index 000000000000..c0661bcc9f72 --- /dev/null +++ b/rust/kernel/dma.rs @@ -0,0 +1,271 @@ +// SPDX-License-Identifier: GPL-2.0 + +//! Direct memory access (DMA). +//! +//! C header: [`include/linux/dma-mapping.h`](srctree/include/linux/dma-mapping.h) + +use crate::{ + bindings, build_assert, + device::Device, + error::code::*, + error::Result, + transmute::{AsBytes, FromBytes}, + types::ARef, +}; + +/// Possible attributes associated with a DMA mapping. +/// +/// They can be combined with the operators `|`, `&`, and `!`. +/// +/// Values can be used from the [`attrs`] module. +#[derive(Clone, Copy, PartialEq)] +pub struct Attrs(pub u32); + +impl Attrs { + /// Get the raw representation of this attribute. + pub(crate) fn as_raw(self) -> usize { + self.0.try_into().unwrap() + } + + /// Check whether `flags` is contained in `self`. + pub fn contains(self, flags: Attrs) -> bool { + (self & flags) == flags + } +} + +impl core::ops::BitOr for Attrs { + type Output = Self; + fn bitor(self, rhs: Self) -> Self::Output { + Self(self.0 | rhs.0) + } +} + +impl core::ops::BitAnd for Attrs { + type Output = Self; + fn bitand(self, rhs: Self) -> Self::Output { + Self(self.0 & rhs.0) + } +} + +impl core::ops::Not for Attrs { + type Output = Self; + fn not(self) -> Self::Output { + Self(!self.0) + } +} + +/// DMA mapping attrributes. +pub mod attrs { + use super::Attrs; + + /// Specifies that reads and writes to the mapping may be weakly ordered, that is that reads + /// and writes may pass each other. + pub const DMA_ATTR_WEAK_ORDERING: Attrs = Attrs(bindings::DMA_ATTR_WEAK_ORDERING); + + /// Specifies that writes to the mapping may be buffered to improve performance. + pub const DMA_ATTR_WRITE_COMBINE: Attrs = Attrs(bindings::DMA_ATTR_WRITE_COMBINE); + + /// Lets the platform to avoid creating a kernel virtual mapping for the allocated buffer. + pub const DMA_ATTR_NO_KERNEL_MAPPING: Attrs = Attrs(bindings::DMA_ATTR_NO_KERNEL_MAPPING); + + /// Allows platform code to skip synchronization of the CPU cache for the given buffer assuming + /// that it has been already transferred to 'device' domain. + pub const DMA_ATTR_SKIP_CPU_SYNC: Attrs = Attrs(bindings::DMA_ATTR_SKIP_CPU_SYNC); + + /// Forces contiguous allocation of the buffer in physical memory. + pub const DMA_ATTR_FORCE_CONTIGUOUS: Attrs = Attrs(bindings::DMA_ATTR_FORCE_CONTIGUOUS); + + /// This is a hint to the DMA-mapping subsystem that it's probably not worth the time to try + /// to allocate memory to in a way that gives better TLB efficiency. + pub const DMA_ATTR_ALLOC_SINGLE_PAGES: Attrs = Attrs(bindings::DMA_ATTR_ALLOC_SINGLE_PAGES); + + /// This tells the DMA-mapping subsystem to suppress allocation failure reports (similarly to + /// __GFP_NOWARN). + pub const DMA_ATTR_NO_WARN: Attrs = Attrs(bindings::DMA_ATTR_NO_WARN); + + /// Used to indicate that the buffer is fully accessible at an elevated privilege level (and + /// ideally inaccessible or at least read-only at lesser-privileged levels). + pub const DMA_ATTR_PRIVILEGED: Attrs = Attrs(bindings::DMA_ATTR_PRIVILEGED); +} + +/// An abstraction of the `dma_alloc_coherent` API. +/// +/// This is an abstraction around the `dma_alloc_coherent` API which is used to allocate and map +/// large consistent DMA regions. +/// +/// A [`CoherentAllocation`] instance contains a pointer to the allocated region (in the +/// processor's virtual address space) and the device address which can be given to the device +/// as the DMA address base of the region. The region is released once [`CoherentAllocation`] +/// is dropped. +/// +/// # Invariants +/// +/// For the lifetime of an instance of [`CoherentAllocation`], the cpu address is a valid pointer +/// to an allocated region of consistent memory and we hold a reference to the device. +pub struct CoherentAllocation<T: AsBytes + FromBytes> { + dev: ARef<Device>, + dma_handle: bindings::dma_addr_t, + count: usize, + cpu_addr: *mut T, + dma_attrs: Attrs, +} + +impl<T: AsBytes + FromBytes> CoherentAllocation<T> { + /// Allocates a region of `size_of::<T> * count` of consistent memory. + /// + /// # Examples + /// + /// ``` + /// use kernel::device::Device; + /// use kernel::dma::{attrs::*, CoherentAllocation}; + /// + /// # fn test(dev: &Device) -> Result { + /// let c: CoherentAllocation<u64> = CoherentAllocation::alloc_attrs(dev, 4, GFP_KERNEL, + /// DMA_ATTR_NO_WARN)?; + /// # Ok::<(), Error>(()) } + /// ``` + pub fn alloc_attrs( + dev: &Device, + count: usize, + gfp_flags: kernel::alloc::Flags, + dma_attrs: Attrs, + ) -> Result<CoherentAllocation<T>> { + build_assert!( + core::mem::size_of::<T>() > 0, + "It doesn't make sense for the allocated type to be a ZST" + ); + + let size = count + .checked_mul(core::mem::size_of::<T>()) + .ok_or(EOVERFLOW)?; + let mut dma_handle = 0; + // SAFETY: device pointer is guaranteed as valid by invariant on `Device`. + // We ensure that we catch the failure on this function and throw an ENOMEM + let ret = unsafe { + bindings::dma_alloc_attrs( + dev.as_raw(), + size, + &mut dma_handle, + gfp_flags.as_raw(), + dma_attrs.as_raw(), + ) + }; + if ret.is_null() { + return Err(ENOMEM); + } + // INVARIANT: We just successfully allocated a coherent region which is accessible for + // `count` elements, hence the cpu address is valid. We also hold a refcounted reference + // to the device. + Ok(Self { + dev: dev.into(), + dma_handle, + count, + cpu_addr: ret as *mut T, + dma_attrs, + }) + } + + /// Performs the same functionality as `alloc_attrs`, except the `dma_attrs` is 0 by default. + pub fn alloc_coherent( + dev: &Device, + count: usize, + gfp_flags: kernel::alloc::Flags, + ) -> Result<CoherentAllocation<T>> { + CoherentAllocation::alloc_attrs(dev, count, gfp_flags, Attrs(0)) + } + + /// Returns the base address, dma handle, attributes and the size of the allocated region. + /// The caller takes ownership of the returned resources, i.e., will have the responsibility + /// in calling `bindings::dma_free_attrs`. + pub fn into_parts(self) -> (*mut T, bindings::dma_addr_t, usize, usize) { + let size = self.count * core::mem::size_of::<T>(); + let ret = ( + self.cpu_addr, + self.dma_handle, + self.dma_attrs.as_raw(), + size, + ); + // Drop the device's reference count associated with this object. This is needed as no + // destructor will be called on this object once this function returns. + // SAFETY: the device pointer is still valid as of this point due to the type invariants + // on `CoherentAllocation`. + unsafe { bindings::put_device(self.dev.as_raw()) } + core::mem::forget(self); + ret + } + + /// Returns the base address to the allocated region in the CPU's virtual address space. + pub fn start_ptr(&self) -> *const T { + self.cpu_addr + } + + /// Returns the base address to the allocated region in the CPU's virtual address space as + /// a mutable pointer. + pub fn start_ptr_mut(&mut self) -> *mut T { + self.cpu_addr + } + + /// Returns a DMA handle which may given to the device as the DMA address base of + /// the region. + pub fn dma_handle(&self) -> bindings::dma_addr_t { + self.dma_handle + } + + /// Reads data from the region starting from `offset` as a slice. + /// `offset` and `count` are in units of `T`, not the number of bytes. + /// + /// Due to the safety requirements of slice, the data returned should be regarded by the + /// caller as a snapshot of the region when this function is called, as the region could + /// be modified by the device at anytime. For ringbuffer type of r/w access or use-cases + /// where the pointer to the live data is needed, `start_ptr()` or `start_ptr_mut()` + /// could be used instead. + /// + /// # Safety + /// + /// Callers must ensure that no hardware operations that involve the buffer are currently + /// taking place while the returned slice is live. + pub unsafe fn read(&self, offset: usize, count: usize) -> Result<&[T]> { + if offset + count >= self.count { + return Err(EINVAL); + } + // SAFETY: The pointer is valid due to type invariant on `CoherentAllocation`, + // we've just checked that the range and index is within bounds. The immutability of the + // of data is also guaranteed by the safety requirements of the function. + Ok(unsafe { core::slice::from_raw_parts(self.cpu_addr.wrapping_add(offset), count) }) + } + + /// Writes data to the region starting from `offset`. `offset` is in units of `T`, not the + /// number of bytes. + pub fn write(&self, src: &[T], offset: usize) -> Result { + if offset + src.len() >= self.count { + return Err(EINVAL); + } + // SAFETY: The pointer is valid due to type invariant on `CoherentAllocation` + // and we've just checked that the range and index is within bounds. + unsafe { + core::ptr::copy_nonoverlapping( + src.as_ptr(), + self.cpu_addr.wrapping_add(offset), + src.len(), + ) + }; + Ok(()) + } +} + +impl<T: AsBytes + FromBytes> Drop for CoherentAllocation<T> { + fn drop(&mut self) { + let size = self.count * core::mem::size_of::<T>(); + // SAFETY: the device, cpu address, and the dma handle is valid due to the + // type invariants on `CoherentAllocation`. + unsafe { + bindings::dma_free_attrs( + self.dev.as_raw(), + size, + self.cpu_addr as _, + self.dma_handle, + self.dma_attrs.as_raw(), + ) + } + } +} diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs index e1065a7551a3..6e90ebf5a130 100644 --- a/rust/kernel/lib.rs +++ b/rust/kernel/lib.rs @@ -35,6 +35,7 @@ mod build_assert; pub mod cred; pub mod device; +pub mod dma; pub mod error; #[cfg(CONFIG_RUST_FW_LOADER_ABSTRACTIONS)] pub mod firmware; -- 2.43.0 ^ permalink raw reply related [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 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 18:08 ` Daniel Sedlak ` (2 subsequent siblings) 3 siblings, 1 reply; 92+ messages in thread From: Christoph Hellwig @ 2025-01-08 13:59 UTC (permalink / raw) To: Abdiel Janulgue Cc: daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS No rust code in kernel/dma, please. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-08 13:59 ` Christoph Hellwig @ 2025-01-08 15:16 ` Miguel Ojeda 2025-01-08 15:18 ` Christoph Hellwig 2025-02-08 23:55 ` [PATCH v8 2/2] rust: add dma coherent allocator abstraction Carlos Bilbao 0 siblings, 2 replies; 92+ messages in thread From: Miguel Ojeda @ 2025-01-08 15:16 UTC (permalink / raw) To: Christoph Hellwig Cc: Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH On Wed, Jan 8, 2025 at 3:00 PM Christoph Hellwig <hch@lst.de> wrote: > > No rust code in kernel/dma, please. What do you suggest? Thanks! Cheers, Miguel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-08 15:16 ` Miguel Ojeda @ 2025-01-08 15:18 ` Christoph Hellwig 2025-01-08 15:21 ` Danilo Krummrich 2025-02-08 23:55 ` [PATCH v8 2/2] rust: add dma coherent allocator abstraction Carlos Bilbao 1 sibling, 1 reply; 92+ messages in thread From: Christoph Hellwig @ 2025-01-08 15:18 UTC (permalink / raw) To: Miguel Ojeda Cc: Christoph Hellwig, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH On Wed, Jan 08, 2025 at 04:16:18PM +0100, Miguel Ojeda wrote: > On Wed, Jan 8, 2025 at 3:00 PM Christoph Hellwig <hch@lst.de> wrote: > > > > No rust code in kernel/dma, please. > > What do you suggest? Keep the wrappers in your code instead of making life painful for others. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-08 15:18 ` Christoph Hellwig @ 2025-01-08 15:21 ` Danilo Krummrich 2025-01-09 8:08 ` Christoph Hellwig 0 siblings, 1 reply; 92+ messages in thread From: Danilo Krummrich @ 2025-01-08 15:21 UTC (permalink / raw) To: Christoph Hellwig Cc: Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH On Wed, Jan 08, 2025 at 04:18:58PM +0100, Christoph Hellwig wrote: > On Wed, Jan 08, 2025 at 04:16:18PM +0100, Miguel Ojeda wrote: > > On Wed, Jan 8, 2025 at 3:00 PM Christoph Hellwig <hch@lst.de> wrote: > > > > > > No rust code in kernel/dma, please. > > > > What do you suggest? > > Keep the wrappers in your code instead of making life painful for > others. > What does "your code" mean? Duplicated in every driver? Otherwise rust/kernel/dma.rs seems reasonable, no? ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-08 15:21 ` Danilo Krummrich @ 2025-01-09 8:08 ` Christoph Hellwig 2025-01-09 8:49 ` Danilo Krummrich 0 siblings, 1 reply; 92+ messages in thread From: Christoph Hellwig @ 2025-01-09 8:08 UTC (permalink / raw) To: Danilo Krummrich Cc: Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH 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. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-09 8:08 ` Christoph Hellwig @ 2025-01-09 8:49 ` Danilo Krummrich 2025-01-10 8:39 ` Christoph Hellwig 0 siblings, 1 reply; 92+ messages in thread From: Danilo Krummrich @ 2025-01-09 8:49 UTC (permalink / raw) To: Christoph Hellwig Cc: Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH 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. One reason for that is that some requirements C APIs naturally have, can be abstracted in a way, that the Rust compiler already ensures certain things and hence drivers have less potential to produce errors. (I understand this is very abstract and we can go into details and examples, if you like.) So, in the end, Rust drivers would just end up with each of them including a copy of those abstractions, rather than using the C APIs from all over the place within the driver. This wouldn't help with what you ask for, it would just duplicate the "problem". If you don't feel comfortable maintaining the Rust abstraction (or just don't want to), that's fine. I don't think anyone expects you to do that, we can take care of that instead. From your perspective, I think you can just think of the Rust abstraction as a single driver calling into the DMA API. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-09 8:49 ` Danilo Krummrich @ 2025-01-10 8:39 ` Christoph Hellwig 2025-01-10 10:41 ` Danilo Krummrich 0 siblings, 1 reply; 92+ messages in thread From: Christoph Hellwig @ 2025-01-10 8:39 UTC (permalink / raw) To: Danilo Krummrich Cc: Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH 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. 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. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-10 8:39 ` Christoph Hellwig @ 2025-01-10 10:41 ` Danilo Krummrich 2025-01-16 13:17 ` Danilo Krummrich 0 siblings, 1 reply; 92+ messages in thread From: Danilo Krummrich @ 2025-01-10 10:41 UTC (permalink / raw) To: Christoph Hellwig Cc: Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH 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? ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-10 10:41 ` Danilo Krummrich @ 2025-01-16 13:17 ` Danilo Krummrich 2025-01-16 13:57 ` Robin Murphy 2025-01-28 9:23 ` Christoph Hellwig 0 siblings, 2 replies; 92+ messages in thread From: Danilo Krummrich @ 2025-01-16 13:17 UTC (permalink / raw) To: Christoph Hellwig Cc: Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH 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. Hence, the next version of this patch series will have the corresponding maintainer entry. - Danilo ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-16 13:17 ` Danilo Krummrich @ 2025-01-16 13:57 ` Robin Murphy 2025-01-16 15:57 ` Danilo Krummrich 2025-01-28 9:23 ` Christoph Hellwig 1 sibling, 1 reply; 92+ messages in thread From: Robin Murphy @ 2025-01-16 13:57 UTC (permalink / raw) To: Danilo Krummrich, Christoph Hellwig Cc: Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH 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. Thanks, Robin. > > Hence, the next version of this patch series will have the corresponding > maintainer entry. > > - Danilo ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-16 13:57 ` Robin Murphy @ 2025-01-16 15:57 ` Danilo Krummrich 2025-01-17 13:56 ` Simona Vetter 0 siblings, 1 reply; 92+ messages in thread From: Danilo Krummrich @ 2025-01-16 15:57 UTC (permalink / raw) To: Robin Murphy Cc: Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH 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 > ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-16 15:57 ` Danilo Krummrich @ 2025-01-17 13:56 ` Simona Vetter 2025-01-17 19:10 ` Abdiel Janulgue 0 siblings, 1 reply; 92+ messages in thread From: Simona Vetter @ 2025-01-17 13:56 UTC (permalink / raw) To: Danilo Krummrich Cc: Robin Murphy, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH On Thu, Jan 16, 2025 at 04:57:56PM +0100, Danilo Krummrich wrote: > 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. I think when we know that an api change is in the works we should try to anticipate that, and not add another complex user of a feature that's likely going to disappear. For dma-api I guess the big thing is the dma/page split that's been talked about since forever, instead of mixing it all up into the scatterlist structure. But with rust abstractions it should be pretty easy to make sure the rust side interface is really clean here, and so any refactoring limited to just the middlelayer. Plus this patch here is not even close to tackling the sg based dma-api parts. Same applies for rust wrapping dma-buf interfaces, that's just more of the same. -Sima > > - 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 > > -- Simona Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-17 13:56 ` Simona Vetter @ 2025-01-17 19:10 ` Abdiel Janulgue 2025-01-28 10:14 ` Daniel Almeida 0 siblings, 1 reply; 92+ messages in thread From: Abdiel Janulgue @ 2025-01-17 19:10 UTC (permalink / raw) To: Danilo Krummrich, Robin Murphy, Christoph Hellwig, Miguel Ojeda, daniel.almeida, aliceryhl, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH On 17/01/2025 15:56, Simona Vetter wrote: > Plus this patch here is not even close to tackling > the sg based dma-api parts. The scatterlist portion of dma-api bindings are in the pipeline. The idea was to start upstreaming this basic component of the dma-api first. Regards, Abdiel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-17 19:10 ` Abdiel Janulgue @ 2025-01-28 10:14 ` Daniel Almeida 0 siblings, 0 replies; 92+ messages in thread From: Daniel Almeida @ 2025-01-28 10:14 UTC (permalink / raw) To: Abdiel Janulgue Cc: Danilo Krummrich, Robin Murphy, Christoph Hellwig, Miguel Ojeda, aliceryhl, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH > On 17 Jan 2025, at 16:10, Abdiel Janulgue <abdiel.janulgue@gmail.com> wrote: > > > On 17/01/2025 15:56, Simona Vetter wrote: >> Plus this patch here is not even close to tackling >> the sg based dma-api parts. > > The scatterlist portion of dma-api bindings are in the pipeline. The idea was to start upstreaming this basic component of the dma-api first. > > Regards, > Abdiel > Oh, I just realized you’re working on the scatterlist stuff. This will indeed come in handy! Thanks for that. — Daniel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-16 13:17 ` Danilo Krummrich 2025-01-16 13:57 ` Robin Murphy @ 2025-01-28 9:23 ` Christoph Hellwig 2025-01-29 21:33 ` Danilo Krummrich 2025-01-30 13:19 ` Philipp Stanner 1 sibling, 2 replies; 92+ messages in thread From: Christoph Hellwig @ 2025-01-28 9:23 UTC (permalink / raw) To: Danilo Krummrich Cc: Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH On Thu, Jan 16, 2025 at 02:17:24PM +0100, Danilo Krummrich wrote: > Since there hasn't been a reply so far, I assume that we're good with > maintaining the DMA Rust abstractions separately. No, I'm not. This was an explicit: Nacked-by: Christoph Hellwig <hch@lst.de> And I also do not want another maintainer. If you want to make Linux impossible to maintain due to a cross-language codebase do that in your driver so that you have to do it instead of spreading this cancer to core subsystems. (where this cancer explicitly is a cross-language codebase and not rust itself, just to escape the flameware brigade). ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-28 9:23 ` Christoph Hellwig @ 2025-01-29 21:33 ` Danilo Krummrich 2025-01-31 7:57 ` Christoph Hellwig 2025-01-30 13:19 ` Philipp Stanner 1 sibling, 1 reply; 92+ messages in thread From: Danilo Krummrich @ 2025-01-29 21:33 UTC (permalink / raw) To: Christoph Hellwig, Greg KH, Linus Torvalds Cc: Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On Tue, Jan 28, 2025 at 10:23:34AM +0100, Christoph Hellwig wrote: > On Thu, Jan 16, 2025 at 02:17:24PM +0100, Danilo Krummrich wrote: > > Since there hasn't been a reply so far, I assume that we're good with > > maintaining the DMA Rust abstractions separately. > > No, I'm not. This was an explicit: > > Nacked-by: Christoph Hellwig <hch@lst.de> > > And I also do not want another maintainer. If you want to make Linux > impossible to maintain due to a cross-language codebase do that in > your driver so that you have to do it instead of spreading this cancer > to core subsystems. (where this cancer explicitly is a cross-language > codebase and not rust itself, just to escape the flameware brigade). I accept that you don't want to be involved with Rust in the kernel, which is why we offered to maintain the Rust abstraction layer for the DMA coherent allocator as a separate component (which it would be anyways) ourselves. As explained previously, this component is just a user of the DMA coherent allocator API (just like any other driver) and the reason we want this component is because otherwise this abstraction layer would end up in every Rust driver that needs the DMA coherent allocator as duplicated code, which for obvious reasons isn't desirable. Throughout this conversation I did not see technical arguments or concerns against this, but I did recognize your opposition against Rust in the kernel and cross-language projects. Being a maintainer myself, I think it is outside the scope of a maintainer to restrict the usage of a public kernel API for a certain entity arbitrarily and / or by personal preference, which, as it appears to me, is the case here. @Greg, @Linus: I believe this would be on your purview. Please find the full thread in [1]. [1] https://lore.kernel.org/rust-for-linux/20250108135951.GA18074@lst.de/ ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-29 21:33 ` Danilo Krummrich @ 2025-01-31 7:57 ` Christoph Hellwig 2025-02-03 8:17 ` Abdiel Janulgue 0 siblings, 1 reply; 92+ messages in thread From: Christoph Hellwig @ 2025-01-31 7:57 UTC (permalink / raw) To: Danilo Krummrich Cc: Christoph Hellwig, Greg KH, Linus Torvalds, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On Wed, Jan 29, 2025 at 10:33:22PM +0100, Danilo Krummrich wrote: > I accept that you don't want to be involved with Rust in the kernel, which is > why we offered to maintain the Rust abstraction layer for the DMA coherent > allocator as a separate component (which it would be anyways) ourselves. Which doesn't help me a bit. Every additional bit that the another language creeps in drastically reduces the maintainability of the kernel as an integrated project. The only reason Linux managed to survive so long is by not having internal boundaries, and adding another language complely breaks this. You might not like my answer, but I will do everything I can do to stop this. This is NOT because I hate Rust. While not my favourite language it's definitively one of the best new ones and I encourage people to use it for new projects where it fits. I do not want it anywhere near a huge C code base that I need to maintain. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-31 7:57 ` Christoph Hellwig @ 2025-02-03 8:17 ` Abdiel Janulgue 2025-02-04 5:29 ` Christoph Hellwig 0 siblings, 1 reply; 92+ messages in thread From: Abdiel Janulgue @ 2025-02-03 8:17 UTC (permalink / raw) To: Christoph Hellwig, Danilo Krummrich Cc: Greg KH, Linus Torvalds, Miguel Ojeda, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS Hi, On 31/01/2025 09:57, Christoph Hellwig wrote: > > Which doesn't help me a bit. Every additional bit that the another > language creeps in drastically reduces the maintainability of the kernel > as an integrated project. The only reason Linux managed to survive so > long is by not having internal boundaries, and adding another language > complely breaks this. You might not like my answer, but I will do > everything I can do to stop this. This is NOT because I hate Rust. > While not my favourite language it's definitively one of the best new > ones and I encourage people to use it for new projects where it fits. > I do not want it anywhere near a huge C code base that I need to > maintain. > I do acknowledge your reservations about the possible maintenance burden due to the introduction of a rust (or another language) consumer of the dma-api. But I was hoping that we could arrive at some sort of common ground? If this rust middle-layer abstraction is unacceptable to you, could you perhaps suggest a solution so that all rust device driver don’t end up with redundant dma coherent allocator rust code? Could the rust team do something about it? Thanks, Abdiel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-02-03 8:17 ` Abdiel Janulgue @ 2025-02-04 5:29 ` Christoph Hellwig 0 siblings, 0 replies; 92+ messages in thread From: Christoph Hellwig @ 2025-02-04 5:29 UTC (permalink / raw) To: Abdiel Janulgue Cc: Christoph Hellwig, Danilo Krummrich, Greg KH, Linus Torvalds, Miguel Ojeda, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On Mon, Feb 03, 2025 at 10:17:22AM +0200, Abdiel Janulgue wrote: > I do acknowledge your reservations about the possible maintenance burden > due to the introduction of a rust (or another language) consumer of the > dma-api. But I was hoping that we could arrive at some sort of common > ground? The common ground is that I have absolutely no interest in helping to spread a multi-language code base. I absolutely support using Rust in new codebase, but I do not at all in Linux. Thank you for your understanding! ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-28 9:23 ` Christoph Hellwig 2025-01-29 21:33 ` Danilo Krummrich @ 2025-01-30 13:19 ` Philipp Stanner 2025-01-30 13:35 ` Daniel Almeida 2025-01-30 15:46 ` Jason Gunthorpe 1 sibling, 2 replies; 92+ messages in thread From: Philipp Stanner @ 2025-01-30 13:19 UTC (permalink / raw) To: Christoph Hellwig, Danilo Krummrich Cc: Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH On Tue, 2025-01-28 at 10:23 +0100, Christoph Hellwig wrote: > On Thu, Jan 16, 2025 at 02:17:24PM +0100, Danilo Krummrich wrote: > > Since there hasn't been a reply so far, I assume that we're good > > with > > maintaining the DMA Rust abstractions separately. > > No, I'm not. This was an explicit: > > Nacked-by: Christoph Hellwig <hch@lst.de> > > And I also do not want another maintainer. If you want to make Linux > impossible to maintain due to a cross-language codebase do that in > your driver so that you have to do it instead of spreading this > cancer > to core subsystems. (where this cancer explicitly is a cross- > language > codebase and not rust itself, just to escape the flameware brigade). Hallo, would some sort of official statement by the "entire community" reassure you that the burden of keeping Rust abstractions working with any changes on the C side rests entirely on the Rust side's shoulders? (because that's what the statements made by the latter seem to mean to me) As I see it, at least as long as Rust code is just drivers and abstractions which sit on top of the core infrastructure, which is C, breakages or a hypothetical unmaintainability would only affect the Rust side, whereas the traditional kernel could go on working and being maintained as it always did. I'm thinking about something like a linux/LANGUAGES file, which specifies what languages you can use and what the rules are. Written down transparently black on white. As a counterpart to linux/LICENSES, basically. Philipp ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 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 1 sibling, 1 reply; 92+ messages in thread From: Daniel Almeida @ 2025-01-30 13:35 UTC (permalink / raw) To: phasta Cc: Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH > > Hallo, > > would some sort of official statement by the "entire community" > reassure you that the burden of keeping Rust abstractions working with > any changes on the C side rests entirely on the Rust side's shoulders? > (because that's what the statements made by the latter seem to mean to > me) > This has been offered over and over in this thread, i.e.: ``` If you don't feel comfortable maintaining the Rust abstraction (or just don't want to), that's fine. I don't think anyone expects you to do that, we can take care of that instead. ``` https://lore.kernel.org/rust-for-linux/Z3-NqwAG_96yq8VD@pollux/ Communication is not the issue here. Also, this person waited until v8 to give a single line NAK. This is not very nice. — Daniel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-30 13:35 ` Daniel Almeida @ 2025-01-30 13:43 ` Philipp Stanner 0 siblings, 0 replies; 92+ messages in thread From: Philipp Stanner @ 2025-01-30 13:43 UTC (permalink / raw) To: Daniel Almeida, phasta Cc: Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH On Thu, 2025-01-30 at 10:35 -0300, Daniel Almeida wrote: > > > > > Hallo, > > > > would some sort of official statement by the "entire community" > > reassure you that the burden of keeping Rust abstractions working > > with > > any changes on the C side rests entirely on the Rust side's > > shoulders? > > (because that's what the statements made by the latter seem to mean > > to > > me) > > > > > This has been offered over and over in this thread, i.e.: > > > ``` > If you don't feel comfortable maintaining the Rust abstraction (or > just don't > want to), that's fine. I don't think anyone expects you to do that, > we can take > care of that instead. > ``` > > https://lore.kernel.org/rust-for-linux/Z3-NqwAG_96yq8VD@pollux/ Yup, I've read the whole thread. I was referring to the statements in those mails in my response. My thinking is that such a file is the most official, most binding statement / offer the project has. P. > > Communication is not the issue here. > > Also, this person waited until v8 to give a single line NAK. This is > not very nice. > > — Daniel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-30 13:19 ` Philipp Stanner 2025-01-30 13:35 ` Daniel Almeida @ 2025-01-30 15:46 ` Jason Gunthorpe 2025-01-30 16:11 ` Greg KH 1 sibling, 1 reply; 92+ messages in thread From: Jason Gunthorpe @ 2025-01-30 15:46 UTC (permalink / raw) To: phasta Cc: Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH On Thu, Jan 30, 2025 at 02:19:16PM +0100, Philipp Stanner wrote: > would some sort of official statement by the "entire community" > reassure you that the burden of keeping Rust abstractions working with > any changes on the C side rests entirely on the Rust side's > shoulders? You'd have to reconcile that with the recent event where Linus defered the MM pull request and some C patches were dropped because of rust kbuild bugs: https://lore.kernel.org/linux-mm/CAHk-=whddBhfi5DUi370W3pYs+z3r2E7KYuHjwR=a1eRig5Gxg@mail.gmail.com/ It seems to me the message is now crystal clear, and the opposite of what you claim. All PRs to Linus must not break the rust build and the responsibilty for that falls to all the maintainers. If the Rust team is not quick enough to resolve any issues during the development window then patches must be dropped before sending PRs, or Linus will refuse the PR. Effectively this seems to imply that patches changing some of the C API cannot be merged by maintainers unless accompanied by matching Rust hunks. If there are different instructions to maintainers I would be interested to know. Thus, I would not describe this situation as "rests entirely on the Rust side's shoulders". Regardless, it seem to be where we are now, and I have it on my list to follow Andrew and get a rust compiler setup.. Jason ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-30 15:46 ` Jason Gunthorpe @ 2025-01-30 16:11 ` Greg KH 2025-01-30 17:24 ` Jason Gunthorpe 0 siblings, 1 reply; 92+ messages in thread From: Greg KH @ 2025-01-30 16:11 UTC (permalink / raw) To: Jason Gunthorpe Cc: phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On Thu, Jan 30, 2025 at 11:46:46AM -0400, Jason Gunthorpe wrote: > On Thu, Jan 30, 2025 at 02:19:16PM +0100, Philipp Stanner wrote: > > would some sort of official statement by the "entire community" > > reassure you that the burden of keeping Rust abstractions working with > > any changes on the C side rests entirely on the Rust side's > > shoulders? > > You'd have to reconcile that with the recent event where Linus defered > the MM pull request and some C patches were dropped because of rust > kbuild bugs: > > https://lore.kernel.org/linux-mm/CAHk-=whddBhfi5DUi370W3pYs+z3r2E7KYuHjwR=a1eRig5Gxg@mail.gmail.com/ > > It seems to me the message is now crystal clear, and the opposite of > what you claim. > > All PRs to Linus must not break the rust build and the responsibilty > for that falls to all the maintainers. If the Rust team is not quick > enough to resolve any issues during the development window then > patches must be dropped before sending PRs, or Linus will refuse the > PR. > > Effectively this seems to imply that patches changing some of the C > API cannot be merged by maintainers unless accompanied by matching > Rust hunks. > > If there are different instructions to maintainers I would be > interested to know. That's not the case, the one you point at above was a tooling issue that people missed due to the holidays. Fixing it up was simple enough and people did so and moved on. Once a core api changes in a tree and it hits linux-next and that blows up a rust build, obviously people should notice it then and the rust maintainers/developers have said they will fix it up. So the claim remains the same here. It's just like staging, api changes to subsystems are allowed to break staging, and rust code, and maintainers do NOT have to fix them up there, that's up to the staging and rust maintainers/developers to do so. thanks, greg k-h ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-30 16:11 ` Greg KH @ 2025-01-30 17:24 ` Jason Gunthorpe 2025-01-31 7:47 ` Greg KH 0 siblings, 1 reply; 92+ messages in thread From: Jason Gunthorpe @ 2025-01-30 17:24 UTC (permalink / raw) To: Greg KH Cc: phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On Thu, Jan 30, 2025 at 05:11:43PM +0100, Greg KH wrote: > On Thu, Jan 30, 2025 at 11:46:46AM -0400, Jason Gunthorpe wrote: > > On Thu, Jan 30, 2025 at 02:19:16PM +0100, Philipp Stanner wrote: > > > would some sort of official statement by the "entire community" > > > reassure you that the burden of keeping Rust abstractions working with > > > any changes on the C side rests entirely on the Rust side's > > > shoulders? > > > > You'd have to reconcile that with the recent event where Linus defered > > the MM pull request and some C patches were dropped because of rust > > kbuild bugs: > > > > https://lore.kernel.org/linux-mm/CAHk-=whddBhfi5DUi370W3pYs+z3r2E7KYuHjwR=a1eRig5Gxg@mail.gmail.com/ > > > > It seems to me the message is now crystal clear, and the opposite of > > what you claim. > > > > All PRs to Linus must not break the rust build and the responsibilty > > for that falls to all the maintainers. If the Rust team is not quick > > enough to resolve any issues during the development window then > > patches must be dropped before sending PRs, or Linus will refuse the > > PR. > > > > Effectively this seems to imply that patches changing some of the C > > API cannot be merged by maintainers unless accompanied by matching > > Rust hunks. > > > > If there are different instructions to maintainers I would be > > interested to know. > > That's not the case, the one you point at above was a tooling issue that > people missed due to the holidays. Fixing it up was simple enough and > people did so and moved on. Regardless of holidays, you seem to be saying that Linus should have accepted Andrew's PR and left rust with build failures? I'm also not sure about moved on, Uros's previously accepted patches are still unmerged: Uros Bizjak (6): x86/kgdb: use IS_ERR_PCPU() macro compiler.h: introduce TYPEOF_UNQUAL() macro percpu: use TYPEOF_UNQUAL() in variable declarations percpu: use TYPEOF_UNQUAL() in *_cpu_ptr() accessors percpu: repurpose __percpu tag as a named address space qualifier percpu/x86: enable strict percpu checks via named AS qualifiers Uros has now respun a v4 without a CONFIG_CC_HAS_TYPEOF_UNQUAL that triggered the rust issue. The underlying Rust issue of mismatched compilers messing up kconfig probes looks to still be open. > So the claim remains the same here. It's just like staging, api changes > to subsystems are allowed to break staging, and rust code, and > maintainers do NOT have to fix them up there, that's up to the staging > and rust maintainers/developers to do so. My reading of this paragraph makes me think you expect Linus to have merged Andrew's PR and left the rust build broken so that the rust maintainer/developers could fix it later? Jason ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-30 17:24 ` Jason Gunthorpe @ 2025-01-31 7:47 ` Greg KH 2025-01-31 13:54 ` Jason Gunthorpe 0 siblings, 1 reply; 92+ messages in thread From: Greg KH @ 2025-01-31 7:47 UTC (permalink / raw) To: Jason Gunthorpe Cc: phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On Thu, Jan 30, 2025 at 01:24:37PM -0400, Jason Gunthorpe wrote: > On Thu, Jan 30, 2025 at 05:11:43PM +0100, Greg KH wrote: > > On Thu, Jan 30, 2025 at 11:46:46AM -0400, Jason Gunthorpe wrote: > > > On Thu, Jan 30, 2025 at 02:19:16PM +0100, Philipp Stanner wrote: > > > > would some sort of official statement by the "entire community" > > > > reassure you that the burden of keeping Rust abstractions working with > > > > any changes on the C side rests entirely on the Rust side's > > > > shoulders? > > > > > > You'd have to reconcile that with the recent event where Linus defered > > > the MM pull request and some C patches were dropped because of rust > > > kbuild bugs: > > > > > > https://lore.kernel.org/linux-mm/CAHk-=whddBhfi5DUi370W3pYs+z3r2E7KYuHjwR=a1eRig5Gxg@mail.gmail.com/ > > > > > > It seems to me the message is now crystal clear, and the opposite of > > > what you claim. > > > > > > All PRs to Linus must not break the rust build and the responsibilty > > > for that falls to all the maintainers. If the Rust team is not quick > > > enough to resolve any issues during the development window then > > > patches must be dropped before sending PRs, or Linus will refuse the > > > PR. > > > > > > Effectively this seems to imply that patches changing some of the C > > > API cannot be merged by maintainers unless accompanied by matching > > > Rust hunks. > > > > > > If there are different instructions to maintainers I would be > > > interested to know. > > > > That's not the case, the one you point at above was a tooling issue that > > people missed due to the holidays. Fixing it up was simple enough and > > people did so and moved on. > > Regardless of holidays, you seem to be saying that Linus should have > accepted Andrew's PR and left rust with build failures? I can't answer for Linus, sorry. But a generic "hey, this broke our working toolchain builds" is something that is much much much different than "an api changed so I now have to turn off this driver in my build" issue. thanks, greg k-h ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-31 7:47 ` Greg KH @ 2025-01-31 13:54 ` Jason Gunthorpe 2025-02-03 18:46 ` Hector Martin 0 siblings, 1 reply; 92+ messages in thread From: Jason Gunthorpe @ 2025-01-31 13:54 UTC (permalink / raw) To: Greg KH Cc: phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On Fri, Jan 31, 2025 at 08:47:54AM +0100, Greg KH wrote: > On Thu, Jan 30, 2025 at 01:24:37PM -0400, Jason Gunthorpe wrote: > > On Thu, Jan 30, 2025 at 05:11:43PM +0100, Greg KH wrote: > > > On Thu, Jan 30, 2025 at 11:46:46AM -0400, Jason Gunthorpe wrote: > > > > On Thu, Jan 30, 2025 at 02:19:16PM +0100, Philipp Stanner wrote: > > > > > would some sort of official statement by the "entire community" > > > > > reassure you that the burden of keeping Rust abstractions working with > > > > > any changes on the C side rests entirely on the Rust side's > > > > > shoulders? > > > > > > > > You'd have to reconcile that with the recent event where Linus defered > > > > the MM pull request and some C patches were dropped because of rust > > > > kbuild bugs: > > > > > > > > https://lore.kernel.org/linux-mm/CAHk-=whddBhfi5DUi370W3pYs+z3r2E7KYuHjwR=a1eRig5Gxg@mail.gmail.com/ > > > > > > > > It seems to me the message is now crystal clear, and the opposite of > > > > what you claim. > > > > > > > > All PRs to Linus must not break the rust build and the responsibilty > > > > for that falls to all the maintainers. If the Rust team is not quick > > > > enough to resolve any issues during the development window then > > > > patches must be dropped before sending PRs, or Linus will refuse the > > > > PR. > > > > > > > > Effectively this seems to imply that patches changing some of the C > > > > API cannot be merged by maintainers unless accompanied by matching > > > > Rust hunks. > > > > > > > > If there are different instructions to maintainers I would be > > > > interested to know. > > > > > > That's not the case, the one you point at above was a tooling issue that > > > people missed due to the holidays. Fixing it up was simple enough and > > > people did so and moved on. > > > > Regardless of holidays, you seem to be saying that Linus should have > > accepted Andrew's PR and left rust with build failures? > > I can't answer for Linus, sorry. Then I think we need a clear statement from Linus how he will be working. If he is build testing rust or not. Without that I don't think the Rust team should be saying "any changes on the C side rests entirely on the Rust side's shoulders". It is clearly not the process if Linus is build testing rust and rejecting PRs that fail to build. > But a generic "hey, this broke our > working toolchain builds" is something that is much much much different It broke some builds, it sounded like the typical rust build was not effected because it used the same version of clang for C code and bindgen. Linus was mixing gcc and clang in his build. > than "an api changed so I now have to turn off this driver in my build" > issue. I tested this theory, allnoconfig x86 build, enable 64 bit, rust and PCI only. *NO* Rust drivers enabled. Make a hypothetical C API change: --- a/include/asm-generic/pci_iomap.h +++ b/include/asm-generic/pci_iomap.h @@ -18,7 +18,7 @@ extern void __iomem *pci_iomap_range(struct pci_dev *dev, int bar, extern void __iomem *pci_iomap_wc_range(struct pci_dev *dev, int bar, unsigned long offset, unsigned long maxlen); -extern void pci_iounmap(struct pci_dev *dev, void __iomem *); +extern void pci_iounmap(struct pci_dev *dev, void __iomem *, unsigned int flags); /* Create a virtual mapping cookie for a port on a given PCI device. * Do not call this directly, it exists to make it easier for architectures * to override */ diff --git a/lib/iomap.c b/lib/iomap.c index 4f8b31baa5752a..5b63063a1a811f 100644 --- a/lib/iomap.c +++ b/lib/iomap.c @@ -421,7 +421,7 @@ EXPORT_SYMBOL(ioport_unmap); #ifdef CONFIG_PCI /* Hide the details if this is a MMIO or PIO address space and just do what * you expect in the correct way. */ -void pci_iounmap(struct pci_dev *dev, void __iomem * addr) +void pci_iounmap(struct pci_dev *dev, void __iomem * addr, unsigned int flags) { IO_COND(addr, /* nothing */, iounmap(addr)); } And the result is.. error[E0061]: this function takes 3 arguments but 2 arguments were supplied --> ../rust/kernel/pci.rs:320:13 | 320 | bindings::pci_iounmap(pdev.as_raw(), ioptr as _); | ^^^^^^^^^^^^^^^^^^^^^--------------------------- an argument of type `u32` is missing | note: function defined here --> /tmp/x/build/rust/bindings/bindings_generated.rs:3:1444598 | 3 | ...> * mut ffi :: c_void ; } extern "C" { pub fn pci_iounmap (dev : * mut pci_dev , arg1 : * mut ffi :: c_v... | ^^^^^^^^^^^ help: provide the argument | 320 | bindings::pci_iounmap(pdev.as_raw(), ioptr as _, /* u32 */); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Build fails. Can't seem to fix this using kconfig without turning off CONFIG_RUST, exactly the same outcome as Uros's case. Doesn't seem "much much much different" to me. This shouldn't be surprising. It doesn't work like C. Rust builds the PCI bindings always once CONFIG_PCI is turned on. It doesn't matter if no rust driver is being built that consumes those bindings. It won't work like staging does where you can just turn off one driver. Jason ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-31 13:54 ` Jason Gunthorpe @ 2025-02-03 18:46 ` Hector Martin 2025-02-03 19:16 ` Jason Gunthorpe ` (2 more replies) 0 siblings, 3 replies; 92+ messages in thread From: Hector Martin @ 2025-02-03 18:46 UTC (permalink / raw) To: Jason Gunthorpe, Greg KH, Linus Torvalds Cc: phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On 2025/01/31 22:54, Jason Gunthorpe wrote: > On Fri, Jan 31, 2025 at 08:47:54AM +0100, Greg KH wrote: >> On Thu, Jan 30, 2025 at 01:24:37PM -0400, Jason Gunthorpe wrote: >>> On Thu, Jan 30, 2025 at 05:11:43PM +0100, Greg KH wrote: >>>> On Thu, Jan 30, 2025 at 11:46:46AM -0400, Jason Gunthorpe wrote: >>>>> On Thu, Jan 30, 2025 at 02:19:16PM +0100, Philipp Stanner wrote: >>>>>> would some sort of official statement by the "entire community" >>>>>> reassure you that the burden of keeping Rust abstractions working with >>>>>> any changes on the C side rests entirely on the Rust side's >>>>>> shoulders? >>>>> >>>>> You'd have to reconcile that with the recent event where Linus defered >>>>> the MM pull request and some C patches were dropped because of rust >>>>> kbuild bugs: >>>>> >>>>> https://lore.kernel.org/linux-mm/CAHk-=whddBhfi5DUi370W3pYs+z3r2E7KYuHjwR=a1eRig5Gxg@mail.gmail.com/ >>>>> >>>>> It seems to me the message is now crystal clear, and the opposite of >>>>> what you claim. >>>>> >>>>> All PRs to Linus must not break the rust build and the responsibilty >>>>> for that falls to all the maintainers. If the Rust team is not quick >>>>> enough to resolve any issues during the development window then >>>>> patches must be dropped before sending PRs, or Linus will refuse the >>>>> PR. >>>>> >>>>> Effectively this seems to imply that patches changing some of the C >>>>> API cannot be merged by maintainers unless accompanied by matching >>>>> Rust hunks. >>>>> >>>>> If there are different instructions to maintainers I would be >>>>> interested to know. >>>> >>>> That's not the case, the one you point at above was a tooling issue that >>>> people missed due to the holidays. Fixing it up was simple enough and >>>> people did so and moved on. >>> >>> Regardless of holidays, you seem to be saying that Linus should have >>> accepted Andrew's PR and left rust with build failures? >> >> I can't answer for Linus, sorry. > > Then I think we need a clear statement from Linus how he will be > working. If he is build testing rust or not. > > Without that I don't think the Rust team should be saying "any changes > on the C side rests entirely on the Rust side's shoulders". > > It is clearly not the process if Linus is build testing rust and > rejecting PRs that fail to build. Adding Linus My 2c: If Linus doesn't pipe up with an authoritative answer to this thread, Miguel and the other Rust folks should just merge this series once it is reviewed and ready, ignoring Christoph's overt attempt at sabotaging the project. If Linus pulls it, what Christoph says doesn't matter. If Linus doesn't pull it, the R4L project is essentially dead until either Linus or Christoph make a move. Everything else is beating around the bush. Rust folks: Please don't waste your time and mental cycles on drama like this. It's not worth your time. Either Linus likes it, or he doesn't. Everything else is distractions orchestrated by a subset of saboteur maintainers who are trying to demoralize you until you give up, because they know they're going to be on the losing side of history sooner or later. No amount of sabotage from old entrenched maintainers is going to stop the world from moving forward towards memory-safe languages. FWIW, in my opinion, the "cancer" comment from Christoph would be enough to qualify for Code-of-Conduct action, but I doubt anything of the sort will happen. > >> But a generic "hey, this broke our >> working toolchain builds" is something that is much much much different > > It broke some builds, it sounded like the typical rust build was not > effected because it used the same version of clang for C code and > bindgen. Linus was mixing gcc and clang in his build. > >> than "an api changed so I now have to turn off this driver in my build" >> issue. > > I tested this theory, allnoconfig x86 build, enable 64 bit, rust and > PCI only. *NO* Rust drivers enabled. > > Make a hypothetical C API change: > > --- a/include/asm-generic/pci_iomap.h > +++ b/include/asm-generic/pci_iomap.h > @@ -18,7 +18,7 @@ extern void __iomem *pci_iomap_range(struct pci_dev *dev, int bar, > extern void __iomem *pci_iomap_wc_range(struct pci_dev *dev, int bar, > unsigned long offset, > unsigned long maxlen); > -extern void pci_iounmap(struct pci_dev *dev, void __iomem *); > +extern void pci_iounmap(struct pci_dev *dev, void __iomem *, unsigned int flags); > /* Create a virtual mapping cookie for a port on a given PCI device. > * Do not call this directly, it exists to make it easier for architectures > * to override */ > diff --git a/lib/iomap.c b/lib/iomap.c > index 4f8b31baa5752a..5b63063a1a811f 100644 > --- a/lib/iomap.c > +++ b/lib/iomap.c > @@ -421,7 +421,7 @@ EXPORT_SYMBOL(ioport_unmap); > #ifdef CONFIG_PCI > /* Hide the details if this is a MMIO or PIO address space and just do what > * you expect in the correct way. */ > -void pci_iounmap(struct pci_dev *dev, void __iomem * addr) > +void pci_iounmap(struct pci_dev *dev, void __iomem * addr, unsigned int flags) > { > IO_COND(addr, /* nothing */, iounmap(addr)); > } > > And the result is.. > > error[E0061]: this function takes 3 arguments but 2 arguments were supplied > --> ../rust/kernel/pci.rs:320:13 > | > 320 | bindings::pci_iounmap(pdev.as_raw(), ioptr as _); > | ^^^^^^^^^^^^^^^^^^^^^--------------------------- an argument of type `u32` is missing > | > note: function defined here > --> /tmp/x/build/rust/bindings/bindings_generated.rs:3:1444598 > | > 3 | ...> * mut ffi :: c_void ; } extern "C" { pub fn pci_iounmap (dev : * mut pci_dev , arg1 : * mut ffi :: c_v... > | ^^^^^^^^^^^ > help: provide the argument > | > 320 | bindings::pci_iounmap(pdev.as_raw(), ioptr as _, /* u32 */); > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Build fails. > > Can't seem to fix this using kconfig without turning off CONFIG_RUST, > exactly the same outcome as Uros's case. > > Doesn't seem "much much much different" to me. > > This shouldn't be surprising. It doesn't work like C. Rust builds the > PCI bindings always once CONFIG_PCI is turned on. It doesn't matter if > no rust driver is being built that consumes those bindings. It won't > work like staging does where you can just turn off one driver. > > Jason > > - Hector ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 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-05 18:52 ` On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) Simona Vetter 2 siblings, 1 reply; 92+ messages in thread From: Jason Gunthorpe @ 2025-02-03 19:16 UTC (permalink / raw) To: Hector Martin Cc: Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On Tue, Feb 04, 2025 at 03:46:14AM +0900, Hector Martin wrote: > > My 2c: If Linus doesn't pipe up with an authoritative answer to this > thread, Miguel and the other Rust folks should just merge this > series Please don't hijack this side thread. This is about Linus's policy for merging C code that breaks Rust builds. You should put this comment on the branch with Christoph's NAK. Thanks, Jason ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-02-03 19:16 ` Jason Gunthorpe @ 2025-02-03 23:41 ` Hector Martin 0 siblings, 0 replies; 92+ messages in thread From: Hector Martin @ 2025-02-03 23:41 UTC (permalink / raw) To: Jason Gunthorpe Cc: Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On 2025/02/04 4:16, Jason Gunthorpe wrote: > On Tue, Feb 04, 2025 at 03:46:14AM +0900, Hector Martin wrote: >> >> My 2c: If Linus doesn't pipe up with an authoritative answer to this >> thread, Miguel and the other Rust folks should just merge this >> series > > Please don't hijack this side thread. > > This is about Linus's policy for merging C code that breaks Rust > builds. You should put this comment on the branch with Christoph's > NAK. > Sorry for the thread mishap. It's kind of hard to redirect to the other branch now though... - Hector ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-02-03 18:46 ` Hector Martin 2025-02-03 19:16 ` Jason Gunthorpe @ 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 2 siblings, 1 reply; 92+ messages in thread From: Paolo Bonzini @ 2025-02-03 19:22 UTC (permalink / raw) To: Hector Martin, Jason Gunthorpe, Greg KH, Linus Torvalds Cc: phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On 2/3/25 19:46, Hector Martin wrote: > Adding Linus > > My 2c: If Linus doesn't pipe up with an authoritative answer to this > thread, Miguel and the other Rust folks should just merge this series > once it is reviewed and ready, ignoring Christoph's overt attempt at > sabotaging the project. Hold your horses... I agree that they should just merge the series in the unlikely event that Linus doesn't chime in over the next two months, but I would very strongly suggest that it's sent to Linus (assuming he doesn't jump in now) as a separate pull request. This is almost always a good thing to do when you have commits that merit specific attention (example: https://www.uwsg.indiana.edu/hypermail/linux/kernel/2109.2/10311.html). My 2 cents as someone that is certainly not any kind of VIP, but has been in MAINTAINERS for quite a while. > Rust folks: Please don't waste your time and mental cycles on drama like > this. It's not worth your time. Either Linus likes it, or he doesn't. > Everything else is distractions orchestrated by a subset of saboteur > maintainers who are trying to demoralize you until you give up, because > they know they're going to be on the losing side of history sooner or > later. No amount of sabotage from old entrenched maintainers is going to > stop the world from moving forward towards memory-safe languages. I have a question, which is unrelated to my opinion of Rust for Linux: in what way do you think this tirade is actually helping? > FWIW, in my opinion, the "cancer" comment from Christoph would be enough > to qualify for Code-of-Conduct action, but I doubt anything of the sort > will happen. FWIW I agree that it was borderline and probably on the wrong side of the edge. But I am happy for one that Christoph has since expanded beyond the "cancer" comment, because that's at least a technical argument, unlike yours above. Paolo ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-02-03 19:22 ` Paolo Bonzini @ 2025-02-03 23:05 ` Hector Martin 0 siblings, 0 replies; 92+ messages in thread From: Hector Martin @ 2025-02-03 23:05 UTC (permalink / raw) To: Paolo Bonzini, Jason Gunthorpe, Greg KH, Linus Torvalds Cc: phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On 2025/02/04 4:22, Paolo Bonzini wrote: > On 2/3/25 19:46, Hector Martin wrote: >> Adding Linus >> >> My 2c: If Linus doesn't pipe up with an authoritative answer to this >> thread, Miguel and the other Rust folks should just merge this series >> once it is reviewed and ready, ignoring Christoph's overt attempt at >> sabotaging the project. > > Hold your horses... I agree that they should just merge the series in > the unlikely event that Linus doesn't chime in over the next two months, > but I would very strongly suggest that it's sent to Linus (assuming he > doesn't jump in now) as a separate pull request. > > This is almost always a good thing to do when you have commits that > merit specific attention (example: > https://www.uwsg.indiana.edu/hypermail/linux/kernel/2109.2/10311.html). Sure, as a separate PR is fine. > My 2 cents as someone that is certainly not any kind of VIP, but has > been in MAINTAINERS for quite a while. > >> Rust folks: Please don't waste your time and mental cycles on drama like >> this. It's not worth your time. Either Linus likes it, or he doesn't. >> Everything else is distractions orchestrated by a subset of saboteur >> maintainers who are trying to demoralize you until you give up, because >> they know they're going to be on the losing side of history sooner or >> later. No amount of sabotage from old entrenched maintainers is going to >> stop the world from moving forward towards memory-safe languages. > > I have a question, which is unrelated to my opinion of Rust for Linux: > in what way do you think this tirade is actually helping? There have already been high-profile departures from the Rust for Linux project due to the open hostility of certain kernel maintainers. The tension in the air is palpable, and so is the lowering morale. I'm encouraging the people involved to stop playing nice and start playing hardball in these cases, because playing nice does not work with some people. Taking the high road only works with people who want to cooperate and reach a solution that works for everyone. People who openly do not want to cooperate nor reach any sort of reasonable solution should be shunned and ignored, as is the case here. > >> FWIW, in my opinion, the "cancer" comment from Christoph would be enough >> to qualify for Code-of-Conduct action, but I doubt anything of the sort >> will happen. > > FWIW I agree that it was borderline and probably on the wrong side of > the edge. But I am happy for one that Christoph has since expanded > beyond the "cancer" comment, because that's at least a technical > argument, unlike yours above. My argument above may not be "technical" in the technology sense, but it is quite specific and objective: Christoph has made it *very* clear that he is not intending to reach any sort of workable solution. He has decided that he doesn't want Rust in the Linux kernel and will do whatever he can to stop it, which fundamentally clashes with the goals of the R4L project in an irreconcilable way. He may have his own "technical" reasoning for this, but this is irrelevant, because there is no way to appeal to his technical concerns and the technical goals of the R4L project simultaneously. What he is doing is quite literally the dictionary definition of "sabotage". Since his goal is to sabotage the R4L project, in its fundamental goal, no amount of purely technical discussion will allow us to reach a workable solution. Therefore, the only possible reaction is social in nature: Ignore Christoph, and work around him. - Hector ^ permalink raw reply [flat|nested] 92+ messages in thread
* On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-03 18:46 ` Hector Martin 2025-02-03 19:16 ` Jason Gunthorpe 2025-02-03 19:22 ` Paolo Bonzini @ 2025-02-05 18:52 ` Simona Vetter 2025-02-05 20:36 ` Dave Airlie 2025-02-07 9:41 ` Hector Martin 2 siblings, 2 replies; 92+ messages in thread From: Simona Vetter @ 2025-02-05 18:52 UTC (permalink / raw) To: Hector Martin Cc: Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Tue, Feb 04, 2025 at 03:46:14AM +0900, Hector Martin wrote: > Adding Linus > > My 2c: If Linus doesn't pipe up with an authoritative answer to this > thread, Miguel and the other Rust folks should just merge this series > once it is reviewed and ready, ignoring Christoph's overt attempt at > sabotaging the project. If Linus pulls it, what Christoph says doesn't > matter. If Linus doesn't pull it, the R4L project is essentially dead > until either Linus or Christoph make a move. Everything else is beating > around the bush. > > Rust folks: Please don't waste your time and mental cycles on drama like > this. It's not worth your time. Either Linus likes it, or he doesn't. > Everything else is distractions orchestrated by a subset of saboteur > maintainers who are trying to demoralize you until you give up, because > they know they're going to be on the losing side of history sooner or > later. No amount of sabotage from old entrenched maintainers is going to > stop the world from moving forward towards memory-safe languages. > > FWIW, in my opinion, the "cancer" comment from Christoph would be enough > to qualify for Code-of-Conduct action, but I doubt anything of the sort > will happen. Yeah no. https://chaos.social/@sima/113942119012147959 This was about you, because typing a proper answer takes a bit longer. It was also about your toots on fedi, like this: https://social.treehouse.systems/@marcan/113941468353031993 And "haha it's only a joke" does not work with your public profile and following. I do understand the frustration and temptation to just burn it all to the ground, head the call of the sirens, or maybe for me more pick up goat farming in the Swiss Alps. But you can't have it both and expect to also be part of and contribute to the same community. And personally I don't appreciate getting drenched in gasoline while I'm trying to quench flames on the ground. And this isn't the first time or the second, by now it's a pretty clear pattern over some years. And with the first I could explain why you react like that and you had my full understanding, but eventually that runs a bit thin as an excuse. Now I'm left with the unlikely explanation that you just like thundering in as the cavalry, fashionably late, maximally destructive, because it entertains the masses on fedi or reddit or wherever. I have no idea what you're trying to achieve here, I really don't get it, but I am for sure fed up dealing with the fallout. Cheers, Sima -- Simona Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 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-07 9:41 ` Hector Martin 1 sibling, 1 reply; 92+ messages in thread From: Dave Airlie @ 2025-02-05 20:36 UTC (permalink / raw) To: Hector Martin, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Thu, 6 Feb 2025 at 04:52, Simona Vetter <simona.vetter@ffwll.ch> wrote: > > On Tue, Feb 04, 2025 at 03:46:14AM +0900, Hector Martin wrote: > > Adding Linus > > > > My 2c: If Linus doesn't pipe up with an authoritative answer to this > > thread, Miguel and the other Rust folks should just merge this series > > once it is reviewed and ready, ignoring Christoph's overt attempt at > > sabotaging the project. If Linus pulls it, what Christoph says doesn't > > matter. If Linus doesn't pull it, the R4L project is essentially dead > > until either Linus or Christoph make a move. Everything else is beating > > around the bush. > > > > Rust folks: Please don't waste your time and mental cycles on drama like > > this. It's not worth your time. Either Linus likes it, or he doesn't. > > Everything else is distractions orchestrated by a subset of saboteur > > maintainers who are trying to demoralize you until you give up, because > > they know they're going to be on the losing side of history sooner or > > later. No amount of sabotage from old entrenched maintainers is going to > > stop the world from moving forward towards memory-safe languages. > > > > FWIW, in my opinion, the "cancer" comment from Christoph would be enough > > to qualify for Code-of-Conduct action, but I doubt anything of the sort > > will happen. > > Yeah no. > > https://chaos.social/@sima/113942119012147959 > > This was about you, because typing a proper answer takes a bit longer. It > was also about your toots on fedi, like this: > > https://social.treehouse.systems/@marcan/113941468353031993 > > And "haha it's only a joke" does not work with your public profile and following. > > I do understand the frustration and temptation to just burn it all to the > ground, head the call of the sirens, or maybe for me more pick up goat > farming in the Swiss Alps. But you can't have it both and expect to also > be part of and contribute to the same community. And personally I don't > appreciate getting drenched in gasoline while I'm trying to quench flames > on the ground. > > And this isn't the first time or the second, by now it's a pretty clear > pattern over some years. And with the first I could explain why you react > like that and you had my full understanding, but eventually that runs a > bit thin as an excuse. Now I'm left with the unlikely explanation that > you just like thundering in as the cavalry, fashionably late, maximally > destructive, because it entertains the masses on fedi or reddit or > wherever. I have no idea what you're trying to achieve here, I really > don't get it, but I am for sure fed up dealing with the fallout. > To back up Sima here, we don't need grandstanding, brigading, playing to the crowd, streamer drama creation or any of that in discussions around this. The r4l team and drm maintainer team have this sort of thing in hand, it's not like we don't understand the community of the Linux kernel, and having this first reaction to blow shit up and dramatise it just isn't helpful. Being toxic on the right side of an argument is still toxic, please try and be better, and maybe take a step back and consider is what you are posting going to help the discussion or just adding pointless drama to it. Dave. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-05 20:36 ` Dave Airlie @ 2025-02-06 9:19 ` Hector Martin 2025-02-06 17:58 ` Linus Torvalds 2025-02-06 19:37 ` Danilo Krummrich 0 siblings, 2 replies; 92+ messages in thread From: Hector Martin @ 2025-02-06 9:19 UTC (permalink / raw) To: Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On 2025/02/06 5:36, Dave Airlie wrote: > On Thu, 6 Feb 2025 at 04:52, Simona Vetter <simona.vetter@ffwll.ch> wrote: >> >> On Tue, Feb 04, 2025 at 03:46:14AM +0900, Hector Martin wrote: >>> Adding Linus >>> >>> My 2c: If Linus doesn't pipe up with an authoritative answer to this >>> thread, Miguel and the other Rust folks should just merge this series >>> once it is reviewed and ready, ignoring Christoph's overt attempt at >>> sabotaging the project. If Linus pulls it, what Christoph says doesn't >>> matter. If Linus doesn't pull it, the R4L project is essentially dead >>> until either Linus or Christoph make a move. Everything else is beating >>> around the bush. >>> >>> Rust folks: Please don't waste your time and mental cycles on drama like >>> this. It's not worth your time. Either Linus likes it, or he doesn't. >>> Everything else is distractions orchestrated by a subset of saboteur >>> maintainers who are trying to demoralize you until you give up, because >>> they know they're going to be on the losing side of history sooner or >>> later. No amount of sabotage from old entrenched maintainers is going to >>> stop the world from moving forward towards memory-safe languages. >>> >>> FWIW, in my opinion, the "cancer" comment from Christoph would be enough >>> to qualify for Code-of-Conduct action, but I doubt anything of the sort >>> will happen. >> >> Yeah no. >> >> https://chaos.social/@sima/113942119012147959 >> >> This was about you, because typing a proper answer takes a bit longer. It >> was also about your toots on fedi, like this: >> >> https://social.treehouse.systems/@marcan/113941468353031993 >> >> And "haha it's only a joke" does not work with your public profile and following. >> >> I do understand the frustration and temptation to just burn it all to the >> ground, head the call of the sirens, or maybe for me more pick up goat >> farming in the Swiss Alps. But you can't have it both and expect to also >> be part of and contribute to the same community. And personally I don't >> appreciate getting drenched in gasoline while I'm trying to quench flames >> on the ground. >> >> And this isn't the first time or the second, by now it's a pretty clear >> pattern over some years. And with the first I could explain why you react >> like that and you had my full understanding, but eventually that runs a >> bit thin as an excuse. Now I'm left with the unlikely explanation that >> you just like thundering in as the cavalry, fashionably late, maximally >> destructive, because it entertains the masses on fedi or reddit or >> wherever. I have no idea what you're trying to achieve here, I really >> don't get it, but I am for sure fed up dealing with the fallout. >> > > To back up Sima here, we don't need grandstanding, brigading, playing > to the crowd, streamer drama creation or any of that in discussions > around this. > > The r4l team and drm maintainer team have this sort of thing in hand, > it's not like we don't understand the community of the Linux kernel, > and having this first reaction to blow shit up and dramatise it just > isn't helpful. > > Being toxic on the right side of an argument is still toxic, please > try and be better, and maybe take a step back and consider is what you > are posting going to help the discussion or just adding pointless > drama to it. > > Dave. I'm tired. I'm tired of seeing positive, technically impressive kernel projects blockaded delayed by maintainers with no technical justification, and at best end up moving along at a glacial pace. I'm tired of seeing important contributors and maintainers give up and throw the towel after enduring repeated misbehavior and hostility towards their efforts from others. I'm tired of getting messages, privately and publicly, from all kinds of people, saying they won't touch the kernel with a 10-foot pole due to the hostility and the baroque, regressive process. I'm tired of seeing people get away with using words like "cancer" to describe others' work, with zero repercussion. I'm tired of *politely and calmly* calling out hostile and unwelcoming behavior from maintainers and suggest ways to improve, only to be ignored and nothing change (note: this refers to other instances, not this instance). I'm tired of having to spend hours or days of my time to upstream simple things, because even the simplest of changes en up in a bikeshed. I'm tired of having to manually format code instead of using clang-format. I'm tired of drive-by nitpickers who send useless review comments on code they don't take the time to understand. I'm tired of having to review patches in an email client, where I can't even tell which patches are for me to merge and not without writing complex filtering rules to correlate email bodies with kernel subsystem paths, which I don't have the time to write and maintain. I'm tired of having to type a half dozen `b4` commands just to send a change. And I'm tired of hearing things will get better if I just "trust the process" or let people work from within, while nothing seems to have actually changed in years despite endless discussion about these problems on the sidelines. If shaming on social media does not work, then tell me what does, because I'm out of ideas. - Hector ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-06 9:19 ` Hector Martin @ 2025-02-06 17:58 ` Linus Torvalds 2025-02-07 12:16 ` Dr. Greg 2025-02-13 19:22 ` 33KK 2025-02-06 19:37 ` Danilo Krummrich 1 sibling, 2 replies; 92+ messages in thread From: Linus Torvalds @ 2025-02-06 17:58 UTC (permalink / raw) To: Hector Martin Cc: Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Thu, 6 Feb 2025 at 01:19, Hector Martin <marcan@marcan.st> wrote: > > If shaming on social media does not work, then tell me what does, > because I'm out of ideas. How about you accept the fact that maybe the problem is you. You think you know better. But the current process works. It has problems, but problems are a fact of life. There is no perfect. However, I will say that the social media brigading just makes me not want to have anything at all to do with your approach. Because if we have issues in the kernel development model, then social media sure as hell isn't the solution. The same way it sure as hell wasn't the solution to politics. Technical patches and discussions matter. Social media brigading - no than\k you. Linus ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-06 17:58 ` Linus Torvalds @ 2025-02-07 12:16 ` Dr. Greg 2025-02-08 4:26 ` Steven Rostedt 2025-02-08 20:44 ` Theodore Ts'o 2025-02-13 19:22 ` 33KK 1 sibling, 2 replies; 92+ messages in thread From: Dr. Greg @ 2025-02-07 12:16 UTC (permalink / raw) To: Linus Torvalds Cc: Hector Martin, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Thu, Feb 06, 2025 at 09:58:36AM -0800, Linus Torvalds wrote: Good morning to everyone. > On Thu, 6 Feb 2025 at 01:19, Hector Martin <marcan@marcan.st> wrote: > > > > If shaming on social media does not work, then tell me what does, > > because I'm out of ideas. > Because if we have issues in the kernel development model, then > social media sure as hell isn't the solution. The same way it sure > as hell wasn't the solution to politics. > > Technical patches and discussions matter. Social media brigading - no > thank you. I truely wish that technical patches and discussions were the currency that matter but I believe we are struggling with that, at least in some venues in the kernel development process. No one should construe that statement as an endorsement of berating people on social media as the 'fix'. I come at this from the perspective of having worked on Linux since around December of 1991. I first met you and Tove in 1995 at the Free Software Conference at MIT that Stallman sponsored. When we first met, I told you that cancer patients in North Dakota were enjoying more time with their families because of what we were able to do with Linux and optimizing medical processes at our Cancer Center. RedHat paid me to speak at a number of conferences in the 90's talking about how Linux was going to dominate enterprise computing, given that it was about technology people doing the 'right' technology thing. I'm seeing things that make me regret those words. Probably the last technical contribution of my career is leading an initiative to provide the Linux community a generic security modeling architecture. Not to supplant or replace anything currently being done, but to provide a flexible alternative to the development of alternate and/or customized workload models, particularly in this era of machine learning and modeling. Four patch series over two years, as of yesterday, not a single line of code ever reviewed. For a contribution that touches nothing outside of its own directory and does nothing unless people choose to execute a workload under its control. We were meticulous in our submissions to avoid wasting maintainers time. We even waited two months without hearing a word before we sent an inquiry as to the status of one of the submissions. We were told, rather curtly, that anything we sent would likely be ignored if we ever inquired about them. We tried to engage, perhaps to excess, in technical discussions attempting to explain why and how we chose to implement what we were proposing. Including input from advisors who are running production IT systems that feel that there needs to be better approaches to addressing their security needs. There were never any relevant technical exchanges. The discussion consisted of, we have decided to do things a certain way, no discussion, if you don't like that you should really consider doing something other than submitting to upstream Linux. The all powerful sub-system maintainer model works well if the big technology companies can employ omniscient individuals in these roles, but those types are a bit hard to come by. Lacking that, there is the tangible risk of stifling innovation and Linux is the only place that innovation can occur in the operating system space. Not sure what the fix is, from a project management perspective the technology industry has never faced a challenge like this. The fork model, which was the classic protection in open-source, doesn't work at this scale. We have a Code Of Conduct that we can't scream or hurl four letter words and insults at one another. Maybe it already exists but a Code Of Standards for maintainers would seem to be an imperative if we are going to move forward productively. Jim are you listening? Obviously respect and open-mindedness to new ideas appears to be the grease that makes all of this run smoothly. Unfortunately that seems to be about as rare a commodity as omniscience in our industry. > Linus Linus, best wishes to you and your family, it has been a fascinating ride and thing to watch. As always, Dr. Greg The Quixote Project - Flailing at the Travails of Cybersecurity https://github.com/Quixote-Project ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 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-08 20:44 ` Theodore Ts'o 1 sibling, 2 replies; 92+ messages in thread From: Steven Rostedt @ 2025-02-08 4:26 UTC (permalink / raw) To: Dr. Greg Cc: Linus Torvalds, Hector Martin, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Fri, Feb 07, 2025 at 06:16:38AM -0600, Dr. Greg wrote: > > Not sure what the fix is, from a project management perspective the > technology industry has never faced a challenge like this. The fork > model, which was the classic protection in open-source, doesn't work > at this scale. Maybe not quite a fork, but I wonder if the Rust project did something similar to what PREEMPT_RT did. That was to keep an out of tree patch. The full patch was just merged last September after being out of tree for a good 20 years. In the beginning there was a few things in that patch that Christoph was against, but over time he became accepting of it. Yes, being out of tree is very difficult because you have to constantly rebase (we actually found quilt being a better tool than git in this case!). But it also gives you full flexibility to try new approaches. Just because something is out of tree doesn't mean it can't be published and used. Red Hat and SUSE, as well as many others shipped PREEMPT_RT while it was out of tree. Note, even though PREEMPT_RT started in 2004 and wasn't fully merged until 2024, it slowly did creep in bit by bit. For example, here's a few things that came from the RT patch, and each was rewritten at least 3 times to become acceptable by the upstream maintainers: - NOHZ - High res timers - threaded interrupts - mutex code (yes, before RT everything used a semaphore) - lockdep - ftrace - generic interrupt code - generic timer code - priority inheritance - SCHED_DEADLINE - RT push/pull scheduling and more. Point being, if you are having issues with getting code upstream, don't be afraid to make it out of tree. Just make it easy for others to use. And slowly move your code into mainline. This is also a way to prove beyond a doubt how useful your code is. The number of users is a technical argument. Linus does pull things in when there is a large user base, even over other maintainer's objections (see sched_ext). It worked for us, it can work for you ;-) -- Steve ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-08 4:26 ` Steven Rostedt @ 2025-02-08 4:32 ` Steven Rostedt 2025-02-08 8:31 ` Hector Martin 1 sibling, 0 replies; 92+ messages in thread From: Steven Rostedt @ 2025-02-08 4:32 UTC (permalink / raw) To: Dr. Greg Cc: Linus Torvalds, Hector Martin, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Fri, Feb 07, 2025 at 11:26:50PM -0500, Steven Rostedt wrote: > > Note, even though PREEMPT_RT started in 2004 and wasn't fully merged until > 2024, it slowly did creep in bit by bit. For example, here's a few things that > came from the RT patch, and each was rewritten at least 3 times to become > acceptable by the upstream maintainers: > > - NOHZ > - High res timers > - threaded interrupts > - mutex code (yes, before RT everything used a semaphore) > - lockdep > - ftrace > - generic interrupt code > - generic timer code > - priority inheritance > - SCHED_DEADLINE > - RT push/pull scheduling > > and more. > Here's a little bit of Linux trivia. KVM was first introduced to Linux via the RT patch. Because it was such a new technology and they didn't want to break the Linux workflow, we agreed to take their changes so that they could try out different methods and have users without being committed to something and have their changes break upstream Linux. Sound familiar? -- Steve ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 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 1 sibling, 1 reply; 92+ messages in thread From: Hector Martin @ 2025-02-08 8:31 UTC (permalink / raw) To: Steven Rostedt, Dr. Greg Cc: Linus Torvalds, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On 2025/02/08 13:26, Steven Rostedt wrote: > On Fri, Feb 07, 2025 at 06:16:38AM -0600, Dr. Greg wrote: >> >> Not sure what the fix is, from a project management perspective the >> technology industry has never faced a challenge like this. The fork >> model, which was the classic protection in open-source, doesn't work >> at this scale. > > Maybe not quite a fork, but I wonder if the Rust project did something similar > to what PREEMPT_RT did. That was to keep an out of tree patch. The full patch > was just merged last September after being out of tree for a good 20 years. > > In the beginning there was a few things in that patch that Christoph was > against, but over time he became accepting of it. > > Yes, being out of tree is very difficult because you have to constantly rebase > (we actually found quilt being a better tool than git in this case!). But it > also gives you full flexibility to try new approaches. Just because something > is out of tree doesn't mean it can't be published and used. Red Hat and SUSE, > as well as many others shipped PREEMPT_RT while it was out of tree. By kernel and mesa policy, while a drm/ kernel driver is not merged with a stable UAPI, the mesa side cannot be merged/enabled either. That means that every day the driver isn't upstream, our users suffer due to various container technologies not shipping the driver in userspace since they ship upstream mesa. The process is *designed* to encourage upstreaming early and *punish* downstream trees. It's not just distros shipping, or even typical container technologies like Flatpak (we have a workaround for that specific one). We'd need to get stuff like Android/AOSP to ship the patched userspace driver so it works in Waydroid, which some people want to use. It is an impossible task. Never mind that distros aren't, in fact, inclined to ship out-of-tree kernels. PREEMPT_RT was an exception due to its general usefulness, and even then was not available everywhere, and had a reasonable excuse for being out-of-tree so long due to its intrusiveness in core code. Rust and the Rust drivers aren't even remotely as intrusive, they just stay off to the side in their own directories. Nobody wants to ship downstream kernels just for random hardware support. Out of tree doesn't work. People, both in the kernel and out of the kernel, want things in tree. - Hector ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-08 8:31 ` Hector Martin @ 2025-02-10 9:41 ` Icenowy Zheng 2025-02-10 10:24 ` Danilo Krummrich 0 siblings, 1 reply; 92+ messages in thread From: Icenowy Zheng @ 2025-02-10 9:41 UTC (permalink / raw) To: Hector Martin, Steven Rostedt, Dr. Greg Cc: Linus Torvalds, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development 在 2025-02-08星期六的 17:31 +0900,Hector Martin写道: > > By kernel and mesa policy, while a drm/ kernel driver is not merged > with > a stable UAPI, the mesa side cannot be merged/enabled either. That > means > that every day the driver isn't upstream, our users suffer due to > various container technologies not shipping the driver in userspace > since they ship upstream mesa. > > The process is *designed* to encourage upstreaming early and *punish* > downstream trees. Well, at least some Mesa drivers are developed against some "vendor" (even not community downstream) kernel drivers, e.g. powervr one; although in the Asahi case there's no such vendor thing (because the HW vendor is Darwin-only). In addition, I think at least some early etnaviv development is based on drm/etnaviv drivers w/ in-kernel version code earlier than the first in-kernel-tree version code (Well drm version code rarely changes, but I think in the case of etnaviv it really represents the UAPI). Furtherly, the monorepo nature of Linux kernel means to refactor an interface, it's usually the person changing the callee that need to change all callers to satify the interface change; having Rust code in tree calling the interface effectively means adding the responsibility of fixing the Rust code when the interface changes, which could be not acceptable by the C-only maintainers. In regards of adding a maintainer, having more maintainers means more communication. The situation of the current problem really shows how difficult communication is, right? ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-10 9:41 ` Icenowy Zheng @ 2025-02-10 10:24 ` Danilo Krummrich 2025-02-13 3:49 ` Icenowy Zheng 0 siblings, 1 reply; 92+ messages in thread From: Danilo Krummrich @ 2025-02-10 10:24 UTC (permalink / raw) To: Icenowy Zheng Cc: Hector Martin, Steven Rostedt, Dr. Greg, Linus Torvalds, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Mon, Feb 10, 2025 at 05:41:30PM +0800, Icenowy Zheng wrote: > Furtherly, the monorepo nature of Linux kernel means to refactor an > interface, it's usually the person changing the callee that need to > change all callers to satify the interface change; having Rust code in > tree calling the interface effectively means adding the responsibility > of fixing the Rust code when the interface changes, which could be not > acceptable by the C-only maintainers. In regards of adding a > maintainer, having more maintainers means more communication. This is exactly the same as for every new driver / component, regardless of whether it is written in C or in Rust. It is absolutely common that driver maintainers help with integrating core API changes, if necessary. I don't see why the same process should not work for Rust abstractions. (Additionally, in this particular case even one of the reviewers of DMA MAPPING HELPERS offered to be a reviewer of the Rust abstractions too, in order to keep eye on the DMA API angle.) ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-10 10:24 ` Danilo Krummrich @ 2025-02-13 3:49 ` Icenowy Zheng 2025-02-13 6:41 ` Abdiel Janulgue 2025-02-13 11:34 ` Danilo Krummrich 0 siblings, 2 replies; 92+ messages in thread From: Icenowy Zheng @ 2025-02-13 3:49 UTC (permalink / raw) To: Danilo Krummrich Cc: Hector Martin, Steven Rostedt, Dr. Greg, Linus Torvalds, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development 在 2025-02-10星期一的 11:24 +0100,Danilo Krummrich写道: > On Mon, Feb 10, 2025 at 05:41:30PM +0800, Icenowy Zheng wrote: > > Furtherly, the monorepo nature of Linux kernel means to refactor an > > interface, it's usually the person changing the callee that need to > > change all callers to satify the interface change; having Rust code > > in > > tree calling the interface effectively means adding the > > responsibility > > of fixing the Rust code when the interface changes, which could be > > not > > acceptable by the C-only maintainers. In regards of adding a > > maintainer, having more maintainers means more communication. > > This is exactly the same as for every new driver / component, > regardless of > whether it is written in C or in Rust. > > It is absolutely common that driver maintainers help with integrating > core API > changes, if necessary. > > I don't see why the same process should not work for Rust > abstractions. Because integrating API changes could involve change to contexts of API calls, which could be difficult for Rust situation, especially when it's not required for core API maintainers to be able to write Rust. > > (Additionally, in this particular case even one of the reviewers of > DMA MAPPING HELPERS offered to be a reviewer of the Rust abstractions > too, in > order to keep eye on the DMA API angle.) Sorry, but I did a fact check on this, and I found that the only "reviewer" of DMA MAPPING HELPERS is Robin Murphy, he has only one reply in this thread, and the reply only says "Indeed, FWIW it seems like the appropriate level of abstraction to me, judging by the other wrappers living in rust/kernel/ already", he didn't offer to be a reviewer, and he still says "Rust folks are happy to take responsibility for un-breaking the Rust build if and when it happens". He is just saying he's going to accept the abstraction, which should be not able to forcibly override Christoph's explicit NACK here. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 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 1 sibling, 1 reply; 92+ messages in thread From: Abdiel Janulgue @ 2025-02-13 6:41 UTC (permalink / raw) To: Icenowy Zheng, Danilo Krummrich Cc: Hector Martin, Steven Rostedt, Dr. Greg, Linus Torvalds, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Miguel Ojeda, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development Hi, On 13/02/2025 05:49, Icenowy Zheng wrote: > > Sorry, but I did a fact check on this, and I found that the only > "reviewer" of DMA MAPPING HELPERS is Robin Murphy, he has only one > reply in this thread, and the reply only says "Indeed, FWIW it seems > like the appropriate level of abstraction to me, > judging by the other wrappers living in rust/kernel/ already", he > didn't offer to be a reviewer, Robin did offer: https://lore.kernel.org/rust-for-linux/4956d01e-2d06-4edd-813b-9da94b482069@arm.com/ ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-13 6:41 ` Abdiel Janulgue @ 2025-02-13 9:50 ` Icenowy Zheng 0 siblings, 0 replies; 92+ messages in thread From: Icenowy Zheng @ 2025-02-13 9:50 UTC (permalink / raw) To: Abdiel Janulgue, Danilo Krummrich Cc: Hector Martin, Steven Rostedt, Dr. Greg, Linus Torvalds, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Miguel Ojeda, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development 在 2025-02-13星期四的 08:41 +0200,Abdiel Janulgue写道: > Hi, > > On 13/02/2025 05:49, Icenowy Zheng wrote: > > > > Sorry, but I did a fact check on this, and I found that the only > > "reviewer" of DMA MAPPING HELPERS is Robin Murphy, he has only one > > reply in this thread, and the reply only says "Indeed, FWIW it > > seems > > like the appropriate level of abstraction to me, > > judging by the other wrappers living in rust/kernel/ already", he > > didn't offer to be a reviewer, > > Robin did offer: > > https://lore.kernel.org/rust-for-linux/4956d01e-2d06-4edd-813b-9da94b482069@arm.com/ Well okay it's a further thing. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-13 3:49 ` Icenowy Zheng 2025-02-13 6:41 ` Abdiel Janulgue @ 2025-02-13 11:34 ` Danilo Krummrich 1 sibling, 0 replies; 92+ messages in thread From: Danilo Krummrich @ 2025-02-13 11:34 UTC (permalink / raw) To: Icenowy Zheng Cc: Hector Martin, Steven Rostedt, Dr. Greg, Linus Torvalds, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Thu, Feb 13, 2025 at 11:49:20AM +0800, Icenowy Zheng wrote: > 在 2025-02-10星期一的 11:24 +0100,Danilo Krummrich写道: > > > > (Additionally, in this particular case even one of the reviewers of > > DMA MAPPING HELPERS offered to be a reviewer of the Rust abstractions > > too, in > > order to keep eye on the DMA API angle.) > > Sorry, but I did a fact check on this, and I found that the only > "reviewer" of DMA MAPPING HELPERS is Robin Murphy, he has only one > reply in this thread, and the reply only says "Indeed, FWIW it seems > like the appropriate level of abstraction to me, > judging by the other wrappers living in rust/kernel/ already", he > didn't offer to be a reviewer, As Abdiel pointed out already, he did offer it in [1]. But that's not the relevant part, but I think how you handled being in doubt is relevant. I think the correct way would have been to just ask for a pointer that proves the statement in question. Instead you just went ahead with the big words "fact check" and then even got it wrong. In your "fact check" you did not put any disclaimer to e.g. indicate that you might not have the full picture, etc. Ultimately, the way you replied to this, comes across as an immediate accuse of lying. I really think that we should *not* pick up this way of arguing that nowadays became all too present. - Danilo [1] https://lore.kernel.org/rust-for-linux/4956d01e-2d06-4edd-813b-9da94b482069@arm.com/ ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-07 12:16 ` Dr. Greg 2025-02-08 4:26 ` Steven Rostedt @ 2025-02-08 20:44 ` Theodore Ts'o 2025-02-09 0:47 ` Danilo Krummrich ` (3 more replies) 1 sibling, 4 replies; 92+ messages in thread From: Theodore Ts'o @ 2025-02-08 20:44 UTC (permalink / raw) To: Dr. Greg Cc: Linus Torvalds, Hector Martin, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Fri, Feb 07, 2025 at 06:16:38AM -0600, Dr. Greg wrote: > > The all powerful sub-system maintainer model works well if the big > technology companies can employ omniscient individuals in these roles, > but those types are a bit hard to come by. I'll let you in a secret. The maintainers are not "all-powerfui". We are the "thin blue line" that is trying to keep the code to be maintainable and high quality. Like most leaders of volunteer organization, whether it is the Internet Engineerint Task Force (the standards body for the Internet), we actually have very little power. We can not *command* people to work on retiring technical debt, or to improve testing infrastructure, or work on some particular feature that we'd very like for our users. All we can do is stop things from being accepted (either in our subsystem, or the imprimatur of the IETF). Hopefully, we're only stopping bad things from progressing, but that *really* is all we can actually do. One of the things which gets very frustrating from the maintainer's perspective is development teams that are only interested in their pet feature, and we *know*, through very bitter experience, that 95+% of the time, once the code is accepted, the engineers which contribute the code will disappear, never to be seen again. As a result, a very common dynamic is that maintainers will exercise the one and only power which they have --- which is to refuse to accept code until it is pretty much perfect --- since once we accept the code, we instantly lose all leverge, and the contributors will be disappear, and we will be left with the responsibility of cleanig up the mess. (And once there are users, we can't even rip out the code, since that would be a user-visible regression.) Occasionally, there is an accusation that different standards that might apply for people who are in the "gold old buys club". But what isn't appreciated, is that it is precisely because people who are long-term members of the community are trusted to stick around and will support code that the have sponsored. For example, Darrick Wong, who contributed ext4 metadata checksuming support before we moved on to become the XFS maintainer, is still reviewing and making contributions to code that he contributed many years to ext4. I've been known to submit fixes to test bugs for xfs-specific tests in xfstests that I discovered when running daily spinner tests on the linux git tree. Just in the past two weeks, I've spent 15+ hours working on cleaning up a casefold "security fix" that had nasty on-disk backwards compatibility issues. Part of it was that it was ext4 (although I discovered that there was also fsck.f2fs problems that had been overlooked), but the *other* part of why I spent so much time was that I sponsored the casefolding patches, and so I felt I certain moral responsibility to make sure the code was continued to be maintained. (And note, this has nothing to do with who employs me; the 15-20 hours that I spent working on creating the fix and the test scripts was purely on my own time, on the weekend, or late at night. The time that I spend doing this isn't reflected in my performance reviews, or promotion propects --- in fact, arguably, over the past 15 years, this has probably slowed down my promotion prospects; I've only been promoted once since joining said big tech company...) > Not sure what the fix is, from a project management perspective the > technology industry has never faced a challenge like this. The fork > model, which was the classic protection in open-source, doesn't work > at this scale. Well, here's my suggestion. Teams that want to get features, especially ones that might be potentially disruptive, into the tree, need to spend time becoming part of the *community*. This means that they need to participate in part of the joint effort to keep the code maintainable and high quaity --- even if it isn't part of their company's short-term goals, or directly related to their pet feature that they are trying to get upstream. This was the trust of my "Beyond Upstream First" presentation which I gave to the Linux Foundation Member Summit last fall[1]. [1] https://docs.google.com/presentation/d/11rMc8PBeyMItV6hv31OHSZ626_6FCZxjX6ZxEAehCpQ/edit#slide=id.p Now, I'll say that the Rust developers are making strides in the right direction here. Miguel has stood for election for the Technical Adviory Board, and has been contributing in various ways beyond just Rust for Linux. Ultimately, Cristoph's concern is that Rust is going to make life harder for maintainers because of particular build breaks getting in the way of the very limited bandwidth that Maintainers have (and again, a lot of the work that we do gets done on our own personal time; it's rare that even those maintainers employed by a "big technology company" have complete freedom to work on whatever they want; and they certainly don't have minions employed to do all of the grunt work to support code maintenance work, especially if we let crappy code slip past us in the name of "time to market" concerns.) So I think we'll get past this. It might take some more effort, and more trust building --- on both sides --- but I'm fairly optismistic that it will happen. It might not happe as *fast* as people might like; as Linus pointed out, it took ten years for the Clang compiler to be considered 100% fully supported --- and this was without needing to worrying about language issues, including an upstream language community which refuses to make any kind of backwards compatibility guarantees, and which is *actively* hostile to a second Rust compiler implementation (I suspect because it might limit their ability to make arbitrary backwards-incompatble language changes). > Obviously respect and open-mindedness to new ideas appears to be the > grease that makes all of this run smoothly. Unfortunately that seems > to be about as rare a commodity as omniscience in our industry. The other thing which is super rare is people and companies who care about tech debt cleanup, code maintainability, and code quality. Instead of complaining about maintainers for who are unreasonably caring about these things, when they are desparately under-resourced to do as good of a job as they industry demands, how about meeting us half-way and *helping* us with these sort of long-term code health issues? Maybe if you engage us as part of the community, we'll be a lot more open to adding changes that might increase the code maintenance burden? Cheers, - Ted ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-08 20:44 ` Theodore Ts'o @ 2025-02-09 0:47 ` Danilo Krummrich 2025-02-09 3:42 ` comex ` (2 subsequent siblings) 3 siblings, 0 replies; 92+ messages in thread From: Danilo Krummrich @ 2025-02-09 0:47 UTC (permalink / raw) To: Theodore Ts'o Cc: Dr. Greg, Linus Torvalds, Hector Martin, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development Ted, On Sat, Feb 08, 2025 at 03:44:16PM -0500, Theodore Ts'o wrote: > This was the trust of my "Beyond Upstream First" presentation which I > gave to the Linux Foundation Member Summit last fall[1]. > > [1] https://docs.google.com/presentation/d/11rMc8PBeyMItV6hv31OHSZ626_6FCZxjX6ZxEAehCpQ/edit#slide=id.p > > Now, I'll say that the Rust developers are making strides in the right > direction here. Please let me add that a lot of those Rust kernel developers also have been kernel developers before there has been Rust in the kernel and do still contribute and even maintain C components, drivers and / or subsystems. I think missing trust should not be a relevent factor in this matter. > Miguel has stood for election for the Technical > Adviory Board, and has been contributing in various ways beyond just > Rust for Linux. Thanks for pointing this out. - Danilo ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 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-13 19:52 ` Ronja Meyer 3 siblings, 0 replies; 92+ messages in thread From: comex @ 2025-02-09 3:42 UTC (permalink / raw) To: Theodore Ts'o Cc: Dr. Greg, Linus Torvalds, Hector Martin, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Feb 8, 2025, at 12:44 PM, Theodore Ts'o <tytso@mit.edu> wrote: > > including an upstream language > community which refuses to make any kind of backwards compatibility > guarantees, and which is *actively* hostile to a second Rust compiler > implementation (I suspect because it might limit their ability to make > arbitrary backwards-incompatble language changes). Rust does, of course, make all sorts of backward compatibility guarantees for stabilized features. The list of unstable features used by Rust for Linux is still long, but getting shorter. https://github.com/Rust-for-Linux/linux/issues/2 ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 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-13 19:52 ` Ronja Meyer 3 siblings, 1 reply; 92+ messages in thread From: David Airlie @ 2025-02-13 10:20 UTC (permalink / raw) To: Theodore Ts'o Cc: Dr. Greg, Linus Torvalds, Hector Martin, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, open list:DMA MAPPING HELPERS, DRI Development On Sun, Feb 9, 2025 at 6:48 AM Theodore Ts'o <tytso@mit.edu> wrote: > > On Fri, Feb 07, 2025 at 06:16:38AM -0600, Dr. Greg wrote: > > > > The all powerful sub-system maintainer model works well if the big > > technology companies can employ omniscient individuals in these roles, > > but those types are a bit hard to come by. > > I'll let you in a secret. The maintainers are not "all-powerfui". We > are the "thin blue line" that is trying to keep the code to be > maintainable and high quality. Like most leaders of volunteer > organization, whether it is the Internet Engineerint Task Force (the > standards body for the Internet), we actually have very little power. > We can not *command* people to work on retiring technical debt, or to > improve testing infrastructure, or work on some particular feature > that we'd very like for our users. Just as a courtesy to others can we not use the "thin blue line" analogy in this community, it has had some bad connotation thrown on it in the US context over the past few years, and I'd rather not as a maintainer be aligned with current connotation/interpretations of it, despite having family involved in our local force. I'm open to suggestions for any better analogies. Dave. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-13 10:20 ` David Airlie @ 2025-02-20 16:24 ` Simona Vetter 2025-02-20 16:37 ` Jason Gunthorpe 0 siblings, 1 reply; 92+ messages in thread From: Simona Vetter @ 2025-02-20 16:24 UTC (permalink / raw) To: David Airlie Cc: Theodore Ts'o, Dr. Greg, Linus Torvalds, Hector Martin, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, open list:DMA MAPPING HELPERS, DRI Development On Thu, Feb 13, 2025 at 08:20:52PM +1000, David Airlie wrote: > On Sun, Feb 9, 2025 at 6:48 AM Theodore Ts'o <tytso@mit.edu> wrote: > > > > On Fri, Feb 07, 2025 at 06:16:38AM -0600, Dr. Greg wrote: > > > > > > The all powerful sub-system maintainer model works well if the big > > > technology companies can employ omniscient individuals in these roles, > > > but those types are a bit hard to come by. > > > > I'll let you in a secret. The maintainers are not "all-powerfui". We > > are the "thin blue line" that is trying to keep the code to be > > maintainable and high quality. Like most leaders of volunteer > > organization, whether it is the Internet Engineerint Task Force (the > > standards body for the Internet), we actually have very little power. > > We can not *command* people to work on retiring technical debt, or to > > improve testing infrastructure, or work on some particular feature > > that we'd very like for our users. > > Just as a courtesy to others can we not use the "thin blue line" > analogy in this community, it has had some bad connotation thrown on > it in the US context over the past few years, and I'd rather not as a > maintainer be aligned with current connotation/interpretations of it, > despite having family involved in our local force. Agreed. I dropped a bit the ball on this, because at first I thought this was only posted on part of the thread that wasn't cc'ed to dri-devel - I can't pick a fight with the kernel community at large for everything that happens. And then I let Dave handle this, because I couldn't come up with anything that's not a nuclear table flip. 2 weeks later I'm still not better, so let me instead express positively what kind of maintainership I strive for by linking to an old talk of mine: https://blog.ffwll.ch/2017/01/maintainers-dont-scale.html > I'm open to suggestions for any better analogies. Better analogy aside, I fundamentally disagree with understanding maintainership as a gatekeeper role that exists to keep the chaos out. My goal is to help build a community where people enjoy collaborating, and then gtfo so I don't hinder them. I think the talk I linked above is holding up quite well even years later, but the last part really embodies that idea, so let me just quote that: Be a Steward, Not a Lord I think one of key advantages of open source is that people stick around for a very long time. Even when they switch jobs or move around. Maybe the usual “for life” qualifier isn’t really a great choice, since it sounds more like a mandatory sentence than something done by choice. What I object to is the “dictator” part, since if your goal is to grow a great community and maybe reach world domination, then you as the maintainer need to serve that community. And not that the community serves you. Cheers, Sima -- Simona Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-20 16:24 ` Simona Vetter @ 2025-02-20 16:37 ` Jason Gunthorpe 2025-02-20 16:52 ` Jarkko Sakkinen 0 siblings, 1 reply; 92+ messages in thread From: Jason Gunthorpe @ 2025-02-20 16:37 UTC (permalink / raw) To: David Airlie, Theodore Ts'o, Dr. Greg, Linus Torvalds, Hector Martin, Dave Airlie, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, open list:DMA MAPPING HELPERS, DRI Development On Thu, Feb 20, 2025 at 05:24:01PM +0100, Simona Vetter wrote: > Better analogy aside, I fundamentally disagree with understanding > maintainership as a gatekeeper role that exists to keep the chaos out. My > goal is to help build a community where people enjoy collaborating, and > then gtfo so I don't hinder them. I think the talk I linked above is > holding up quite well even years later, but the last part really embodies > that idea, so let me just quote that: > > Be a Steward, Not a Lord > > I think one of key advantages of open source is that people stick > around for a very long time. Even when they switch jobs or move > around. Maybe the usual “for life” qualifier isn’t really a great > choice, since it sounds more like a mandatory sentence than something > done by choice. What I object to is the “dictator” part, since if your > goal is to grow a great community and maybe reach world domination, > then you as the maintainer need to serve that community. And not that > the community serves you. +1 I agree and try, as best I can, to embody this. Jason ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-20 16:37 ` Jason Gunthorpe @ 2025-02-20 16:52 ` Jarkko Sakkinen 0 siblings, 0 replies; 92+ messages in thread From: Jarkko Sakkinen @ 2025-02-20 16:52 UTC (permalink / raw) To: Jason Gunthorpe, David Airlie, Theodore Ts'o, Dr. Greg, Linus Torvalds, Hector Martin, Dave Airlie, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, open list:DMA MAPPING HELPERS, DRI Development On Thu, 2025-02-20 at 12:37 -0400, Jason Gunthorpe wrote: > > I think one of key advantages of open source is that people > > stick > > around for a very long time. Even when they switch jobs or move > > around. Maybe the usual “for life” qualifier isn’t really a > > great > > choice, since it sounds more like a mandatory sentence than > > something > > done by choice. What I object to is the “dictator” part, since > > if your > > goal is to grow a great community and maybe reach world > > domination, > > then you as the maintainer need to serve that community. And > > not that > > the community serves you. > > +1 > > I agree and try, as best I can, to embody this. I keep four simple rules of email response list these days when I response to LKML: 1. Be honest. 2. Address your concerns. 3. Ask for help where you need it. 4. Admit your possible misconceptions (getting things wrong is not a mistake). It's quite easy actually shift away from these even if you don't do it purposely. So I actually just read what I'm going to respond and reflect to these :-) It's anyhow usually best to keep a short break and breath-in/outs before triggering send, right? The fourth one addresses so called "toxic positive" responses as addresses in the associated Mastodon thread [1] :-) > Jason [1] https://social.kernel.org/notice/ArH99Q2ErS20vJB7Tc BR, Jarkko ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-08 20:44 ` Theodore Ts'o ` (2 preceding siblings ...) 2025-02-13 10:20 ` David Airlie @ 2025-02-13 19:52 ` Ronja Meyer 3 siblings, 0 replies; 92+ messages in thread From: Ronja Meyer @ 2025-02-13 19:52 UTC (permalink / raw) To: Theodore Ts'o, Dr. Greg Cc: Linus Torvalds, Hector Martin, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Bj??rn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On 08.02.2025 21:44, Theodore Ts'o wrote: > I'll let you in a secret. The maintainers are not "all-powerfui". We > are the "thin blue line" that is trying to keep the code to be > maintainable and high quality. Like most leaders of volunteer > organization, whether it is the Internet Engineerint Task Force (the > standards body for the Internet), we actually have very little power. > […] structurelessness becomes a way of masking power, and […] is usually most strongly advocated by those who are the most powerful (whether they are conscious of their power or not). As long as the structure of the group is informal, the rules of how decisions are made are known only to a few and awareness of power is limited to those who know the rules. Those who do not know the rules and are not chosen for initiation must remain in confusion, or suffer from paranoid delusions that something is happening of which they are not quite aware. […] From "The Tyranny of Structurelessness", written by Jo Freeman in 1970. https://www.jofreeman.com/joreen/tyranny.htm - Ronja ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-06 17:58 ` Linus Torvalds 2025-02-07 12:16 ` Dr. Greg @ 2025-02-13 19:22 ` 33KK 1 sibling, 0 replies; 92+ messages in thread From: 33KK @ 2025-02-13 19:22 UTC (permalink / raw) To: torvalds Cc: a.hindborg, abdiel.janulgue, airlied, airlied, alex.gaynor, aliceryhl, benno.lossin, bjorn3_gh, boqun.feng, dakr, daniel.almeida, dri-devel, gary, gregkh, hch, iommu, jgg, kernel, linux-kernel, m.szyprowski, marcan, miguel.ojeda.sandonis, ojeda, phasta, robin.murphy, rust-for-linux, tmgross Honestly, how about you accept the fact that maybe the problem is you? You're not doing any good by just scolding Hector for "social media brigading" and not addressing the core issue, especially considering that LKML drama always ends up on social media and on reaction content farms anyway, without the "brigading", and Hector wasn't the one who started the drama. You can't expect people to just keep going on and on in circular conversations on the mailing list with somebody who isn't even engaging in good faith. These conversations are about as technical as high school bullying, with you being the teacher who punishes the one who tried to speak out, because they didn't want to deal with figuring out who is right or wrong, and the victim is trying their best to work out a solution for an unsolvable problem, since there's no solution that the other side would accept. Obviously, the people involved are tired of having this shit show happen again and again and of course they will end up going to vent on social media, break down, or leave, since they're not heard on the mailing list, and their mental health, time and energy is clearly not respected by any of the adults present in the room, judging by the complete inaction on the part of Linux's leadership. You can't just pretend that multiple people leaving because of this is not a problem. You can't just have people burn their time, energy and mental health on pointless "discussions" and end up burning out, breaking down or leaving instead of getting anything done. You can't just keep having your maintainers break down one after another. This is not normal. This is not healthy. The process isn't "working". Just letting these "discussions" keep playing out like this is terrible leadership, and is clearly not working well for mental health of people trying to get involved with Linux. You either want the R4L project to succeed and have new maintainers want to get involved with the project, and you tell the hostile C maintainers to shut up and cope with it, or you want the R4L project to fail and constantly have these pointless "discussions" which boil down to some out of touch maintainer bullying someone about something that should've been resolved long ago. And as far as the *barely* technical arguments in the thread go: The code is clearly exactly where it should be, in rust/kernel/dma, where else is this supposed to go? Duplicating the bindings in multiple drivers would just make the situation much worse, since now you have to worry about breaking multiple copies of the bindings. R4L also proposed that they will maintain the bindings. Is the minor inconvenience of another maintainer having to review breaking changes to DMA interfaces or some similar process to prevent build breakages such a big deal compared to the pretty significant benefits Rust provides? The Rust-based drivers were developed very quickly and ended up being way extremely stable with relatively little effort compared to writing the same driver in C. I think the benefits are pretty clear, if you can write a driver without spending most of the time barely managing to tracking memory ownership in your head, making sure you're not misusing underdocumented kernel APIs, etc. obviously you're going to be significantly more productive, and it's also easier for a new maintainer to get involved, since it's harder to break something. Also, when writing safe bindings you have to double-check the safety of the API, which helps to notice unsoundness in the C interface itself. > The only reason Linux managed to survive so long is by not having internal > boundaries The actual reason Linux managed to survive so long is because of people working together. Nobody understands the entirety of the kernel source, maintenance of subsystems is split between different people that work together. What Christoph is doing here, is pretty much opposite of that. He is actively trying to prevent R4L from writing bindings to DMA, which are crucial to the project. Effectively saying that the project should just go away entirely. Christoph pretty clearly has no valid argument here. NOTE: I am not affiliated in any way with R4L or Linux maintainers, I'm just a Linux user watching this shitshow unfold, and am very disappointed about how it's being handled. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-06 9:19 ` Hector Martin 2025-02-06 17:58 ` Linus Torvalds @ 2025-02-06 19:37 ` Danilo Krummrich 2025-02-06 20:16 ` Hector Martin 1 sibling, 1 reply; 92+ messages in thread From: Danilo Krummrich @ 2025-02-06 19:37 UTC (permalink / raw) To: Hector Martin Cc: Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Thu, Feb 06, 2025 at 06:19:42PM +0900, Hector Martin wrote: > > If shaming on social media does not work, then tell me what does, Most importantly be *consistent* with good technical arguments, calmly focus on your actual matter rather than escalating any surrounding details. Accept that sometimes things can't be reached directly, but additional work is needed to change the preconditions. Goals aren't reached by burning bridges, but by building them. Sometimes you may not be able to build a bridge where you would like to. But you can still look for alternative routes with and within the community. Surely, it does take time and energy, but certainly there's no shortcut. - Danilo ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-06 19:37 ` Danilo Krummrich @ 2025-02-06 20:16 ` Hector Martin 2025-02-07 17:14 ` Konstantin Ryabitsev 0 siblings, 1 reply; 92+ messages in thread From: Hector Martin @ 2025-02-06 20:16 UTC (permalink / raw) To: Danilo Krummrich Cc: Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On 2025/02/07 4:37, Danilo Krummrich wrote: > On Thu, Feb 06, 2025 at 06:19:42PM +0900, Hector Martin wrote: >> >> If shaming on social media does not work, then tell me what does, > > Most importantly be *consistent* with good technical arguments, calmly focus on > your actual matter rather than escalating any surrounding details. > > Accept that sometimes things can't be reached directly, but additional work is > needed to change the preconditions. > > Goals aren't reached by burning bridges, but by building them. Sometimes you > may not be able to build a bridge where you would like to. But you can still > look for alternative routes with and within the community. > > Surely, it does take time and energy, but certainly there's no shortcut. I'm not talking about individual technical problems. You cannot solve social and community problems with technical arguments. Yes, given enough patience and technical argumentation, you can get code into the kernel, or maybe even get some existing code refactored. That doesn't change the fact that the process is often quite terrible, hostile to newcomers, demoralizing, and by wide consensus much worse than practically any other FOSS project, even those of similar scope to the kernel. And what I see, is very little effort to improve that status quo, or at least very little that yields any actual change that isn't just band-aids (e.g. tooling like b4, which is nice and appreciated, but doesn't fix any underlying issues). And that's not going to change no matter how many long technical arguments we have on the MLs (or even off MLs, since MLs are also not particularly good for this, and I've seen multiple arguments only reach a resolution after being redirected to IRC). But I've used up all my spoons for this, and clearly Linus doesn't think there's a problem in this thread worth replying to other than myself, so I'm giving up on fighting for any change or being part of the kernel maintainer community. Whether the rest of the kernel community chooses to continue to live in an ugly bubble or actually try to fix some of these systemic issues, is up to them. - Hector ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-06 20:16 ` Hector Martin @ 2025-02-07 17:14 ` Konstantin Ryabitsev 2025-02-07 18:02 ` Hector Martin 0 siblings, 1 reply; 92+ messages in thread From: Konstantin Ryabitsev @ 2025-02-07 17:14 UTC (permalink / raw) To: Hector Martin Cc: Danilo Krummrich, Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Fri, Feb 07, 2025 at 05:16:28AM +0900, Hector Martin wrote: > And what I see, is very little effort to improve that status quo, or at > least very little that yields any actual change that isn't just > band-aids (e.g. tooling like b4, which is nice and appreciated, but > doesn't fix any underlying issues). And that's not going to change no > matter how many long technical arguments we have on the MLs (or even off > MLs, since MLs are also not particularly good for this, and I've seen > multiple arguments only reach a resolution after being redirected to IRC). From my perspective, there are several camps clashing when it comes to the kernel development model. One is people who are (rightfully) pointing out that using the mailing lists was fine 20 years ago, but the world of software development has vastly moved on to forges. The other camp is people who (also rightfully) point out that kernel development has always been decentralized and we should resist all attempts to get ourselves into a position where Linux is dependent on any single Benevolent Entity (Github, Gitlab, LF, kernel.org, etc), because this would give that entity too much political or commercial control or, at the very least, introduce SPoFs. At best, I can hope to make both camps grumpily agree to coexist. I *am* very wary of Benevolent Entities, because we have too many very recent examples of companies "realigning priorities" when political winds shift. Programs and initiatives that have until recently been poster board examples of progress and benevolence are shuttered and defunded. I am concerned that we're only a couple of mood swings away from someone deciding that free software should not be allowed to exist because it benefits America's foes. Many of us remember all too well when large tech giants treated Linux as a "cancer" to be opposed, and I can certainly see that idea easily re-entering some Big Brain in Charge. From my perspective, I would like to ensure that Linux development can continue without a hard dependency on a single centralized forge -- whether controlled by a large commercial entity, or even a standalone one that is operated by kernel.org. It's becoming shockingly difficult to operate a public resource on the web unless you're willing to put it behind a large commercial CDN that will protect you from hostile bots (and if you do that, you're back to depending on the whims of a Benevolent Entity). We're trying to get lore.kernel.org to the point where it's like a global messaging bus that is indexed and searchable. Currently, you mostly have to send things to a mailing list for them to end up on lore, but it's gradually becoming less and less the case. We're already bridging with bugzilla and we should be able to bridge with forges soon, too (currently delayed again because I'm scrambling to move kernel.org frontends away from Equinix). Who knows, we may be actually leapfrogging the forge era of software development straight into "AI" agents era -- but that remains to be seen. Anyway, all of this is to say that I'm happy that you've found b4 useful, but I wouldn't view it as a band-aid -- it's just a very small and email-centric way to interact with the kernel lore. -K ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-07 17:14 ` Konstantin Ryabitsev @ 2025-02-07 18:02 ` Hector Martin 2025-02-07 18:16 ` Konstantin Ryabitsev ` (2 more replies) 0 siblings, 3 replies; 92+ messages in thread From: Hector Martin @ 2025-02-07 18:02 UTC (permalink / raw) To: Konstantin Ryabitsev Cc: Danilo Krummrich, Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On 2025/02/08 2:14, Konstantin Ryabitsev wrote: > On Fri, Feb 07, 2025 at 05:16:28AM +0900, Hector Martin wrote: >> And what I see, is very little effort to improve that status quo, or at >> least very little that yields any actual change that isn't just >> band-aids (e.g. tooling like b4, which is nice and appreciated, but >> doesn't fix any underlying issues). And that's not going to change no >> matter how many long technical arguments we have on the MLs (or even off >> MLs, since MLs are also not particularly good for this, and I've seen >> multiple arguments only reach a resolution after being redirected to IRC). > > From my perspective, there are several camps clashing when it comes to the > kernel development model. One is people who are (rightfully) pointing out that > using the mailing lists was fine 20 years ago, but the world of software > development has vastly moved on to forges. > > The other camp is people who (also rightfully) point out that kernel > development has always been decentralized and we should resist all attempts to > get ourselves into a position where Linux is dependent on any single > Benevolent Entity (Github, Gitlab, LF, kernel.org, etc), because this would > give that entity too much political or commercial control or, at the very > least, introduce SPoFs. > > At best, I can hope to make both camps grumpily agree to coexist. > > I *am* very wary of Benevolent Entities, because we have too many very recent > examples of companies "realigning priorities" when political winds shift. > Programs and initiatives that have until recently been poster board examples > of progress and benevolence are shuttered and defunded. I am concerned that > we're only a couple of mood swings away from someone deciding that free > software should not be allowed to exist because it benefits America's foes. > Many of us remember all too well when large tech giants treated Linux as a > "cancer" to be opposed, and I can certainly see that idea easily re-entering > some Big Brain in Charge. > > From my perspective, I would like to ensure that Linux development can > continue without a hard dependency on a single centralized forge -- whether > controlled by a large commercial entity, or even a standalone one that is > operated by kernel.org. It's becoming shockingly difficult to operate a public > resource on the web unless you're willing to put it behind a large commercial > CDN that will protect you from hostile bots (and if you do that, you're back > to depending on the whims of a Benevolent Entity). > > We're trying to get lore.kernel.org to the point where it's like a global > messaging bus that is indexed and searchable. Currently, you mostly have to > send things to a mailing list for them to end up on lore, but it's gradually > becoming less and less the case. We're already bridging with bugzilla and we > should be able to bridge with forges soon, too (currently delayed again > because I'm scrambling to move kernel.org frontends away from Equinix). Who > knows, we may be actually leapfrogging the forge era of software development > straight into "AI" agents era -- but that remains to be seen. > > Anyway, all of this is to say that I'm happy that you've found b4 useful, but > I wouldn't view it as a band-aid -- it's just a very small and email-centric > way to interact with the kernel lore. > The centralization concern is valid, but there are technical solutions to this, such as forge federation. It's possible to set up a forge environment to be less of a SPoF, such as by ensuring all data is open and archiveable to allow for migration and backup restore, even by third parties (you can make practically ~all forge data public except for login passwords, and we have email-based reset processes for those). It's also possible to simply shard, and let different subsystems choose their own forge infrastructure, so downtime has a more limited effect. Meanwhile, for better or worse, much of Linux infra *is* centralized - for example, the mailing lists themselves, and a lot of the Git hosting. There's also the fact that there is enough support for Linux that finding a Benevolent Entity to provide stuff like DDoS protection is not particularly hard, and such services are easily replaceable should priorities change (and indeed are the kind of service that can only be provided by a large entity, whether paid or sponsored, by nature). Heck, even I have a Benevolent Entity sponsoring a CDN frontend for Asahi sites and installer images (bunny.net, they're nice, highly recommended). At the end of the day, I do not believe a theoretical breakdown of Linux infra would be a major long-term setback to Linux kernel development. The kernel already survived the great BitKeeper to Git migration, and this time there's no proprietary software to be yanked out from under the kernel (at least assuming the forge of choice is FOSS and self-hostable, which seems like a no-brainer given the concerns). As long as everyone has the Git trees, infrastructure can be rebuilt. As long as everyone has email and git, development can continue ad-hoc. Sure, it would cause a blip, but it's not like we would switch to a forge, the forge would go down for a few days, and it would not be the end of the world. Just ask the freedesktop folks (a good case study on how infra is hard, but not impossible, and even if imperfect, even if at times frustrating, it still functions, and well enough to still be wildly positive compared to not having that infra at all). But I'm afraid you'll find much if not most of the true opposition to forges is not technical, it is philosophical or preference-based (even though it may be presented as technical opposition, sometimes to intentionally mislead). This is, in fact, quite a mirror of the R4L situation, where technical arguments ("show me you can write a real driver") quickly lead to non-technical arguments when solutions are proposed ("it's cancer"). I actually considered moving soc/apple development to a forge personally in the near future (obviously not my call to make any more), and I was fully expecting a pile of pushback, "because that's not how we do things here". Who knows, I might have gotten a "fuck you, either you accept email patches or I remove you from MAINTAINTERS" from Linus. All that said, thanks for b4. I might have given up much earlier, not due to flamewars but due to exhaustion with poor tooling, if it didn't exist. - Hector ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-07 18:02 ` Hector Martin @ 2025-02-07 18:16 ` Konstantin Ryabitsev 2025-02-09 8:25 ` Neal Gompa 2025-02-07 18:33 ` Linus Torvalds 2025-02-07 18:53 ` Dr. David Alan Gilbert 2 siblings, 1 reply; 92+ messages in thread From: Konstantin Ryabitsev @ 2025-02-07 18:16 UTC (permalink / raw) To: Hector Martin Cc: Danilo Krummrich, Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Sat, Feb 08, 2025 at 03:02:11AM +0900, Hector Martin wrote: > The centralization concern is valid, but there are technical solutions > to this, such as forge federation. Unfortunately, forge federation is really only between Forgejo instances and is still pretty nascent, afaict. The most promising development in decentralized forges that I've seen is Radicle, but I'm yet to try it again ever since they got collectively drunk on bitcoin coolaid a few years ago. > Meanwhile, for better or worse, much of Linux infra *is* centralized - > for example, the mailing lists themselves, and a lot of the Git hosting. Yes, but it's at least resilient. If someone knocks out vger.kernel.org, kernel development will still continue because maintainers are still cc'd directly via email, and email is still the only widely adopted federated platform that we have, with nothing else coming anywhere close. > At the end of the day, I do not believe a theoretical breakdown of Linux > infra would be a major long-term setback to Linux kernel development. We know it's the case when kernel.org went off the air for months in 2011. :) Let's keep it that way! > But I'm afraid you'll find much if not most of the true opposition to > forges is not technical, it is philosophical or preference-based (even > though it may be presented as technical opposition, sometimes to > intentionally mislead). This is, in fact, quite a mirror of the R4L > situation, where technical arguments ("show me you can write a real > driver") quickly lead to non-technical arguments when solutions are > proposed ("it's cancer"). > > I actually considered moving soc/apple development to a forge personally > in the near future (obviously not my call to make any more), and I was > fully expecting a pile of pushback, "because that's not how we do things > here". Who knows, I might have gotten a "fuck you, either you accept > email patches or I remove you from MAINTAINTERS" from Linus. It is my goal to be able to give subsystems a way to use forges without it impacting how they interact with upstream or handle tree-wide changes. That is, once I'm done moving things from one Benevolent Company to another. > All that said, thanks for b4. I might have given up much earlier, not > due to flamewars but due to exhaustion with poor tooling, if it didn't > exist. I'm happy to hear that. Best wishes, -K ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-07 18:16 ` Konstantin Ryabitsev @ 2025-02-09 8:25 ` Neal Gompa 2025-02-10 17:28 ` Mark Brown 0 siblings, 1 reply; 92+ messages in thread From: Neal Gompa @ 2025-02-09 8:25 UTC (permalink / raw) To: Hector Martin, Konstantin Ryabitsev Cc: Danilo Krummrich, Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, David Airlie, open list:DMA MAPPING HELPERS, DRI Development On Friday, February 7, 2025 1:16:11 PM Eastern Standard Time Konstantin Ryabitsev wrote: > On Sat, Feb 08, 2025 at 03:02:11AM +0900, Hector Martin wrote: > > The centralization concern is valid, but there are technical solutions > > to this, such as forge federation. > > Unfortunately, forge federation is really only between Forgejo instances and > is still pretty nascent, afaict. The most promising development in > decentralized forges that I've seen is Radicle, but I'm yet to try it again > ever since they got collectively drunk on bitcoin coolaid a few years ago. Strictly speaking, this isn't true. Forgefed federation was tested very early on with Codeberg's Gitea fork (before it was called Forgejo) and Pagure with its Forgefed extension[1]. The initial design and development was across three forge systems (Vervis, Forgejo, and Pagure). Even before that, Pagure has data portability built into its design in a way no other forge has today: all project metadata is stored as JSON data checked into specialized Git repos. That means it's trivial to mirror and archive projects to have redundant instances or failover instances to support whatever reliability and high availability guarantees you'd like. And insofar as cross system contributions, Pagure supports making pull requests that pull from arbitrary Git servers (as long as the Pagure instance can connect to it) with its remote pull request feature. That has been a core feature for nearly the entire time it has existed. It's not that it wasn't possible, it's just nobody cares. In the 11 years since Pagure was created, literally no other forge has even intimated that they want even *some* of the concepts Pagure has. Extensibility and portability are simply not important concepts to anyone anymore. If it was, maybe more people would have been excited about Pagure, I'd have more contributors to that project, and there'd be more deployments out there showing it off. It is what it is, I guess. ☹️ [1]: https://pagure.io/pagure-forgefed > > Meanwhile, for better or worse, much of Linux infra *is* centralized - > > for example, the mailing lists themselves, and a lot of the Git hosting. > > Yes, but it's at least resilient. If someone knocks out vger.kernel.org, > kernel development will still continue because maintainers are still cc'd > directly via email, and email is still the only widely adopted federated > platform that we have, with nothing else coming anywhere close. > That's really a self-inflicted choice. Adoption is always a catch-22. If you really wanted federated forge development and have some aspect of decentralized development, you always can even with forges or other tools. It's just not something being considered or explored in the Linux kernel community, despite how much some folks dislike the email-based workflow. > > At the end of the day, I do not believe a theoretical breakdown of Linux > > infra would be a major long-term setback to Linux kernel development. > > We know it's the case when kernel.org went off the air for months in 2011. > :) Let's keep it that way! > > > But I'm afraid you'll find much if not most of the true opposition to > > forges is not technical, it is philosophical or preference-based (even > > though it may be presented as technical opposition, sometimes to > > intentionally mislead). This is, in fact, quite a mirror of the R4L > > situation, where technical arguments ("show me you can write a real > > driver") quickly lead to non-technical arguments when solutions are > > proposed ("it's cancer"). > > > > I actually considered moving soc/apple development to a forge personally > > in the near future (obviously not my call to make any more), and I was > > fully expecting a pile of pushback, "because that's not how we do things > > here". Who knows, I might have gotten a "fuck you, either you accept > > email patches or I remove you from MAINTAINTERS" from Linus. > > It is my goal to be able to give subsystems a way to use forges without it > impacting how they interact with upstream or handle tree-wide changes. That > is, once I'm done moving things from one Benevolent Company to another. > Honestly, this is probably not possible. If a subsystem moves to a forge workflow, it pretty much means tree-wide changes need to work partially that way too. -- 真実はいつも一つ!/ Always, there's only one truth! ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-09 8:25 ` Neal Gompa @ 2025-02-10 17:28 ` Mark Brown 2025-02-14 7:10 ` Neal Gompa 0 siblings, 1 reply; 92+ messages in thread From: Mark Brown @ 2025-02-10 17:28 UTC (permalink / raw) To: Neal Gompa Cc: Hector Martin, Konstantin Ryabitsev, Danilo Krummrich, Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, David Airlie, open list:DMA MAPPING HELPERS, DRI Development [-- Attachment #1: Type: text/plain, Size: 1073 bytes --] On Sun, Feb 09, 2025 at 03:25:26AM -0500, Neal Gompa wrote: > On Friday, February 7, 2025 1:16:11 PM Eastern Standard Time Konstantin > Ryabitsev wrote: > > It is my goal to be able to give subsystems a way to use forges without it > > impacting how they interact with upstream or handle tree-wide changes. That > > is, once I'm done moving things from one Benevolent Company to another. > Honestly, this is probably not possible. If a subsystem moves to a forge > workflow, it pretty much means tree-wide changes need to work partially that > way too. We do actually have some people using forges already, for example the SOF people do a bunch of their review on github and then turn that into patch serieses which they send via the normal email route when they're happy with them. I think tree wide stuff flows in via back merges or rebases, one of the benefits of delegation is that it's not my problem. This all works perfectly well from my side, as far as I know it's fine for the SOF people too. It certainly doesn't seem insurmountable. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 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 0 siblings, 2 replies; 92+ messages in thread From: Neal Gompa @ 2025-02-14 7:10 UTC (permalink / raw) To: Mark Brown Cc: Hector Martin, Konstantin Ryabitsev, Danilo Krummrich, Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, David Airlie, open list:DMA MAPPING HELPERS, DRI Development On Mon, Feb 10, 2025 at 12:28 PM Mark Brown <broonie@kernel.org> wrote: > > On Sun, Feb 09, 2025 at 03:25:26AM -0500, Neal Gompa wrote: > > On Friday, February 7, 2025 1:16:11 PM Eastern Standard Time Konstantin > > Ryabitsev wrote: > > > > It is my goal to be able to give subsystems a way to use forges without it > > > impacting how they interact with upstream or handle tree-wide changes. That > > > is, once I'm done moving things from one Benevolent Company to another. > > > Honestly, this is probably not possible. If a subsystem moves to a forge > > workflow, it pretty much means tree-wide changes need to work partially that > > way too. > > We do actually have some people using forges already, for example the > SOF people do a bunch of their review on github and then turn that into > patch serieses which they send via the normal email route when they're > happy with them. I think tree wide stuff flows in via back merges or > rebases, one of the benefits of delegation is that it's not my problem. > This all works perfectly well from my side, as far as I know it's fine > for the SOF people too. It certainly doesn't seem insurmountable. It might be working as long as a subsystem continues to allow receiving patches via email. As soon as a subsystem decides to stop doing that (which is absolutely their right given the model of subsystem maintenance that the Linux project has), I think this will break down very quickly. I wonder which team will be the first one to do it. It's not a question of if, but when. -- 真実はいつも一つ!/ Always, there's only one truth! ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-14 7:10 ` Neal Gompa @ 2025-02-14 19:49 ` Al Viro 2025-02-19 15:03 ` Mark Brown 1 sibling, 0 replies; 92+ messages in thread From: Al Viro @ 2025-02-14 19:49 UTC (permalink / raw) To: Neal Gompa Cc: Mark Brown, Hector Martin, Konstantin Ryabitsev, Danilo Krummrich, Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, David Airlie, open list:DMA MAPPING HELPERS, DRI Development On Fri, Feb 14, 2025 at 02:10:57AM -0500, Neal Gompa wrote: > On Mon, Feb 10, 2025 at 12:28 PM Mark Brown <broonie@kernel.org> wrote: > > > > On Sun, Feb 09, 2025 at 03:25:26AM -0500, Neal Gompa wrote: > > > On Friday, February 7, 2025 1:16:11 PM Eastern Standard Time Konstantin > > > Ryabitsev wrote: > > > > > > It is my goal to be able to give subsystems a way to use forges without it > > > > impacting how they interact with upstream or handle tree-wide changes. That > > > > is, once I'm done moving things from one Benevolent Company to another. > > > > > Honestly, this is probably not possible. If a subsystem moves to a forge > > > workflow, it pretty much means tree-wide changes need to work partially that > > > way too. > > > > We do actually have some people using forges already, for example the > > SOF people do a bunch of their review on github and then turn that into > > patch serieses which they send via the normal email route when they're > > happy with them. I think tree wide stuff flows in via back merges or > > rebases, one of the benefits of delegation is that it's not my problem. > > This all works perfectly well from my side, as far as I know it's fine > > for the SOF people too. It certainly doesn't seem insurmountable. > > It might be working as long as a subsystem continues to allow > receiving patches via email. As soon as a subsystem decides to stop > doing that (which is absolutely their right given the model of > subsystem maintenance that the Linux project has), I think this will > break down very quickly. > > I wonder which team will be the first one to do it. It's not a > question of if, but when. Then it will be a matter of patches affecting their subtree getting merged through the mainline. All there is to it... ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-14 7:10 ` Neal Gompa 2025-02-14 19:49 ` Al Viro @ 2025-02-19 15:03 ` Mark Brown 1 sibling, 0 replies; 92+ messages in thread From: Mark Brown @ 2025-02-19 15:03 UTC (permalink / raw) To: Neal Gompa Cc: Hector Martin, Konstantin Ryabitsev, Danilo Krummrich, Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, David Airlie, open list:DMA MAPPING HELPERS, DRI Development [-- Attachment #1: Type: text/plain, Size: 1439 bytes --] On Fri, Feb 14, 2025 at 02:10:57AM -0500, Neal Gompa wrote: > On Mon, Feb 10, 2025 at 12:28 PM Mark Brown <broonie@kernel.org> wrote: > > We do actually have some people using forges already, for example the > > SOF people do a bunch of their review on github and then turn that into > > patch serieses which they send via the normal email route when they're > > happy with them. I think tree wide stuff flows in via back merges or > > rebases, one of the benefits of delegation is that it's not my problem. > > This all works perfectly well from my side, as far as I know it's fine > > for the SOF people too. It certainly doesn't seem insurmountable. > It might be working as long as a subsystem continues to allow > receiving patches via email. As soon as a subsystem decides to stop > doing that (which is absolutely their right given the model of > subsystem maintenance that the Linux project has), I think this will > break down very quickly. Eh, probably they'll just get bypassed for the affected patches if they really just drop everything on the floor. That's effectively what's happening with SOF in that I take patches for it (which seems to work for everyone, people do review stuff that comes in on the list). That tends to be what happens if people are unresponsive. More likely there'f be some bridging effort of some kind with pressure applied to get substantial work done on the forge. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-07 18:02 ` Hector Martin 2025-02-07 18:16 ` Konstantin Ryabitsev @ 2025-02-07 18:33 ` Linus Torvalds 2025-02-07 19:18 ` Hector Martin 2025-02-07 18:53 ` Dr. David Alan Gilbert 2 siblings, 1 reply; 92+ messages in thread From: Linus Torvalds @ 2025-02-07 18:33 UTC (permalink / raw) To: Hector Martin Cc: Konstantin Ryabitsev, Danilo Krummrich, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Fri, 7 Feb 2025 at 10:02, Hector Martin <marcan@marcan.st> wrote: > > Meanwhile, for better or worse, much of Linux infra *is* centralized - > for example, the mailing lists themselves, and a lot of the Git hosting. The mailing lists are mostly on kernel.org, but the git hosting most certainly is not centralized in any way. The kernel.org git repositories used to be special in that I didn't require signed tags for them, because I trusted the user maintenance. But I was encouraging signed tags even back then, and once it got to the point where most were signed anyway, I just made it a rule. So now kernel.org isn't special even in that respect. Now, kernel.org is very much _convenient_. And you see that in the stats: of my pulls in the last year, 85% have been from kernel.org. But that is very much because it is convenient, not because it's centralized. But that still leaves the 15% that aren't kernel.org. Since I did the stats, in case anybody is interested, the top non-kernel.org hosts for my pulls are github.com, git.samba.org, gitlab.freedesktop.org, evilpiepirate.org, git.infradead.org and git.lwn.net (and there's a handful of other ones in there). (And while I did the stats just for *my* pulls, if you look at total merges over-all, the non-korg repositories are actually at 20% - I think my percentages are higher simply because I tend to pull from mostly top-level maintainers, and those are even more likely to use a kernel.org account). More importtantly, not being centralized was very much a basic tenet of git, so *if* git.kernel.org were to become problematic, it's very easy to move git repositories anywhere else. Very much by design. Linus ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-07 18:33 ` Linus Torvalds @ 2025-02-07 19:18 ` Hector Martin 0 siblings, 0 replies; 92+ messages in thread From: Hector Martin @ 2025-02-07 19:18 UTC (permalink / raw) To: Linus Torvalds Cc: Konstantin Ryabitsev, Danilo Krummrich, Dave Airlie, Jason Gunthorpe, Greg KH, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On 2025/02/08 3:33, Linus Torvalds wrote: > On Fri, 7 Feb 2025 at 10:02, Hector Martin <marcan@marcan.st> wrote: >> >> Meanwhile, for better or worse, much of Linux infra *is* centralized - >> for example, the mailing lists themselves, and a lot of the Git hosting. > > The mailing lists are mostly on kernel.org, but the git hosting most > certainly is not centralized in any way. > > The kernel.org git repositories used to be special in that I didn't > require signed tags for them, because I trusted the user maintenance. > But I was encouraging signed tags even back then, and once it got to > the point where most were signed anyway, I just made it a rule. So now > kernel.org isn't special even in that respect. > > Now, kernel.org is very much _convenient_. And you see that in the > stats: of my pulls in the last year, 85% have been from kernel.org. > But that is very much because it is convenient, not because it's > centralized. > > But that still leaves the 15% that aren't kernel.org. For all intents and purposes, 85% centralized might as well be fully centralized. That is, any downtime on kernel.org will affect the community effectively the same as downtime on a true central SPOF would. > More importtantly, not being centralized was very much a basic tenet > of git, so *if* git.kernel.org were to become problematic, it's very > easy to move git repositories anywhere else. Very much by design. And this is why, over focus on *decentraliation*, I think we should be focusing on *recoverability* and *data availability*. There are two distinct scenarios. If kernel.org goes down for a while, that screws with people's workflow. They can find alternatives, but it will cause immediate, acute disruption, even while using "decentralized" git. You still need to tell people where the new repos are, reconfigure remotes, etc.. If the disruption is expected to be short-lived, a lot of people will choose to just ride it out, rather than find alternatives, or will only use alternatives in an ad-hoc manner where strictly necessary. Nobody does a "true" complete migration to another Git hosting when faced with a brief, temporary outage (heck, even just the time it takes to push a Linux Git tree from scratch to somewhere new is much longer than ideal, more so if your internet connection isn't the best or the routing to the server in question isn't great). At most you push whatever you're working on as needed somewhere else. If kernel.org goes down permanently or long term (or becomes problematic), that's when you start doing a full migration. And thanks to the Git design, this is possible - not because it's decentralized per se, but because everyone has local copies of almost everything, and they can easily be restored onto a new service. The same goes for a forge scenario. If it goes down briefly, you fix it, and you can still use email to communicate with people ad hoc and send git changes around through any other hosting. It's still Git at the end of the day. Emailed patches and Git trees aren't going to become unusable just because most or all of the regular development happens on a forge. And if it goes down permanently or long term, or becomes problematic, what really matters isn't that it's "decentralized" as in federation. It's that the data is available, in much the same way it is for lore.kernel.org, and that people are actively backing it up (and it isn't hard to arrange for a handful of folks/organizations to have up to date mirrors, you don't need a Git-like scenario where literally everyone has full repo dumps; heck, I have a big NAS at home, I'd volunteer myself). Then, the service can be restored elsewhere when needed. If the issue is with the specific forge software used, you can always develop a migration plan to a different software (which, if the risk is managed properly, shouldn't be a time-critical process anyway). - Hector ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-07 18:02 ` Hector Martin 2025-02-07 18:16 ` Konstantin Ryabitsev 2025-02-07 18:33 ` Linus Torvalds @ 2025-02-07 18:53 ` Dr. David Alan Gilbert 2 siblings, 0 replies; 92+ messages in thread From: Dr. David Alan Gilbert @ 2025-02-07 18:53 UTC (permalink / raw) To: Hector Martin Cc: Konstantin Ryabitsev, Danilo Krummrich, Dave Airlie, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development * Hector Martin (marcan@marcan.st) wrote: > On 2025/02/08 2:14, Konstantin Ryabitsev wrote: > > On Fri, Feb 07, 2025 at 05:16:28AM +0900, Hector Martin wrote: > >> And what I see, is very little effort to improve that status quo, or at > >> least very little that yields any actual change that isn't just > >> band-aids (e.g. tooling like b4, which is nice and appreciated, but > >> doesn't fix any underlying issues). And that's not going to change no > >> matter how many long technical arguments we have on the MLs (or even off > >> MLs, since MLs are also not particularly good for this, and I've seen > >> multiple arguments only reach a resolution after being redirected to IRC). > > > > From my perspective, there are several camps clashing when it comes to the > > kernel development model. One is people who are (rightfully) pointing out that > > using the mailing lists was fine 20 years ago, but the world of software > > development has vastly moved on to forges. > > > > The other camp is people who (also rightfully) point out that kernel > > development has always been decentralized and we should resist all attempts to > > get ourselves into a position where Linux is dependent on any single > > Benevolent Entity (Github, Gitlab, LF, kernel.org, etc), because this would > > give that entity too much political or commercial control or, at the very > > least, introduce SPoFs. > > > > At best, I can hope to make both camps grumpily agree to coexist. > > > > I *am* very wary of Benevolent Entities, because we have too many very recent > > examples of companies "realigning priorities" when political winds shift. > > Programs and initiatives that have until recently been poster board examples > > of progress and benevolence are shuttered and defunded. I am concerned that > > we're only a couple of mood swings away from someone deciding that free > > software should not be allowed to exist because it benefits America's foes. > > Many of us remember all too well when large tech giants treated Linux as a > > "cancer" to be opposed, and I can certainly see that idea easily re-entering > > some Big Brain in Charge. > > > > From my perspective, I would like to ensure that Linux development can > > continue without a hard dependency on a single centralized forge -- whether > > controlled by a large commercial entity, or even a standalone one that is > > operated by kernel.org. It's becoming shockingly difficult to operate a public > > resource on the web unless you're willing to put it behind a large commercial > > CDN that will protect you from hostile bots (and if you do that, you're back > > to depending on the whims of a Benevolent Entity). > > > > We're trying to get lore.kernel.org to the point where it's like a global > > messaging bus that is indexed and searchable. Currently, you mostly have to > > send things to a mailing list for them to end up on lore, but it's gradually > > becoming less and less the case. We're already bridging with bugzilla and we > > should be able to bridge with forges soon, too (currently delayed again > > because I'm scrambling to move kernel.org frontends away from Equinix). Who > > knows, we may be actually leapfrogging the forge era of software development > > straight into "AI" agents era -- but that remains to be seen. > > > > Anyway, all of this is to say that I'm happy that you've found b4 useful, but > > I wouldn't view it as a band-aid -- it's just a very small and email-centric > > way to interact with the kernel lore. > > > > The centralization concern is valid, but there are technical solutions > to this, such as forge federation. It's possible to set up a forge > environment to be less of a SPoF, such as by ensuring all data is open > and archiveable to allow for migration and backup restore, even by third > parties (you can make practically ~all forge data public except for > login passwords, and we have email-based reset processes for those). > It's also possible to simply shard, and let different subsystems choose > their own forge infrastructure, so downtime has a more limited effect. > > Meanwhile, for better or worse, much of Linux infra *is* centralized - > for example, the mailing lists themselves, and a lot of the Git hosting. Although, many of the subsystems have their own patchworks or other systems anyway dotted in random places. It's actually something I find quite hard, it might seem there is *a* Linux contribution process, but if you do fixups or devices all over rather than in one subsystem you end up tripping over the oddities of each maintainer; then trying to figure out when they're prepared to take a patch, or where to check for whether they've taken it, or whether to expect it to turn up in -next can all be quite random. <snip> > - Hector Dave > > -- -----Open up your eyes, open up your mind, open up your code ------- / Dr. David Alan Gilbert | Running GNU/Linux | Happy \ \ dave @ treblig.org | | In Hex / \ _________________________|_____ http://www.treblig.org |_______/ ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 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-07 9:41 ` Hector Martin 2025-02-07 10:20 ` Hector Martin 1 sibling, 1 reply; 92+ messages in thread From: Hector Martin @ 2025-02-07 9:41 UTC (permalink / raw) To: Simona Vetter Cc: Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On 2025/02/06 3:52, Simona Vetter wrote: > On Tue, Feb 04, 2025 at 03:46:14AM +0900, Hector Martin wrote: >> Adding Linus >> >> My 2c: If Linus doesn't pipe up with an authoritative answer to this >> thread, Miguel and the other Rust folks should just merge this series >> once it is reviewed and ready, ignoring Christoph's overt attempt at >> sabotaging the project. If Linus pulls it, what Christoph says doesn't >> matter. If Linus doesn't pull it, the R4L project is essentially dead >> until either Linus or Christoph make a move. Everything else is beating >> around the bush. >> >> Rust folks: Please don't waste your time and mental cycles on drama like >> this. It's not worth your time. Either Linus likes it, or he doesn't. >> Everything else is distractions orchestrated by a subset of saboteur >> maintainers who are trying to demoralize you until you give up, because >> they know they're going to be on the losing side of history sooner or >> later. No amount of sabotage from old entrenched maintainers is going to >> stop the world from moving forward towards memory-safe languages. >> >> FWIW, in my opinion, the "cancer" comment from Christoph would be enough >> to qualify for Code-of-Conduct action, but I doubt anything of the sort >> will happen. > > Yeah no. > > https://chaos.social/@sima/113942119012147959 > > This was about you, because typing a proper answer takes a bit longer. It > was also about your toots on fedi, like this: > > https://social.treehouse.systems/@marcan/113941468353031993 > > And "haha it's only a joke" does not work with your public profile and following. > > I do understand the frustration and temptation to just burn it all to the > ground, head the call of the sirens, or maybe for me more pick up goat > farming in the Swiss Alps. But you can't have it both and expect to also > be part of and contribute to the same community. And personally I don't > appreciate getting drenched in gasoline while I'm trying to quench flames > on the ground. > > And this isn't the first time or the second, by now it's a pretty clear > pattern over some years. And with the first I could explain why you react > like that and you had my full understanding, but eventually that runs a > bit thin as an excuse. Now I'm left with the unlikely explanation that > you just like thundering in as the cavalry, fashionably late, maximally > destructive, because it entertains the masses on fedi or reddit or > wherever. I have no idea what you're trying to achieve here, I really > don't get it, but I am for sure fed up dealing with the fallout. > > Cheers, Sima Since we're into complaining about social media posts on the list now, I'm going to link one of yours: https://chaos.social/@sima/113961496955043901 An R4L maintainer quit after multiple rounds of hostility, including some completely unacceptable public comments bordering on downright harassment from tytso, a situation which was widely publicized. If, according to you, that's "shockingly smooth" with "no outsized drama" other than "what I stirred up" (I guess you also missed the whole LWN post about this thread before I posted anything on Fedi? That's how I even found out about this), then I'm glad I'm disengaging with this community. The Stockholm syndrome and utter denial is palpable. I thought I could work with you on these issues; I don't know what happened over the past year since we last had a private conversation about this, but clearly you've changed your mind. Thus, as you kindly requested of me in social media, https://chaos.social/@sima/113961283260455876 I will now proceed to fuck off. Good luck. - Hector ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 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 0 siblings, 2 replies; 92+ messages in thread From: Hector Martin @ 2025-02-07 10:20 UTC (permalink / raw) To: Simona Vetter Cc: Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On 2025/02/07 18:41, Hector Martin wrote: > On 2025/02/06 3:52, Simona Vetter wrote: >> On Tue, Feb 04, 2025 at 03:46:14AM +0900, Hector Martin wrote: >>> Adding Linus >>> >>> My 2c: If Linus doesn't pipe up with an authoritative answer to this >>> thread, Miguel and the other Rust folks should just merge this series >>> once it is reviewed and ready, ignoring Christoph's overt attempt at >>> sabotaging the project. If Linus pulls it, what Christoph says doesn't >>> matter. If Linus doesn't pull it, the R4L project is essentially dead >>> until either Linus or Christoph make a move. Everything else is beating >>> around the bush. >>> >>> Rust folks: Please don't waste your time and mental cycles on drama like >>> this. It's not worth your time. Either Linus likes it, or he doesn't. >>> Everything else is distractions orchestrated by a subset of saboteur >>> maintainers who are trying to demoralize you until you give up, because >>> they know they're going to be on the losing side of history sooner or >>> later. No amount of sabotage from old entrenched maintainers is going to >>> stop the world from moving forward towards memory-safe languages. >>> >>> FWIW, in my opinion, the "cancer" comment from Christoph would be enough >>> to qualify for Code-of-Conduct action, but I doubt anything of the sort >>> will happen. >> >> Yeah no. >> >> https://chaos.social/@sima/113942119012147959 >> >> This was about you, because typing a proper answer takes a bit longer. It >> was also about your toots on fedi, like this: >> >> https://social.treehouse.systems/@marcan/113941468353031993 >> >> And "haha it's only a joke" does not work with your public profile and following. >> >> I do understand the frustration and temptation to just burn it all to the >> ground, head the call of the sirens, or maybe for me more pick up goat >> farming in the Swiss Alps. But you can't have it both and expect to also >> be part of and contribute to the same community. And personally I don't >> appreciate getting drenched in gasoline while I'm trying to quench flames >> on the ground. >> >> And this isn't the first time or the second, by now it's a pretty clear >> pattern over some years. And with the first I could explain why you react >> like that and you had my full understanding, but eventually that runs a >> bit thin as an excuse. Now I'm left with the unlikely explanation that >> you just like thundering in as the cavalry, fashionably late, maximally >> destructive, because it entertains the masses on fedi or reddit or >> wherever. I have no idea what you're trying to achieve here, I really >> don't get it, but I am for sure fed up dealing with the fallout. >> >> Cheers, Sima > > Since we're into complaining about social media posts on the list now, > I'm going to link one of yours: > > https://chaos.social/@sima/113961496955043901 > > An R4L maintainer quit after multiple rounds of hostility, including > some completely unacceptable public comments bordering on downright > harassment from tytso, a situation which was widely publicized. > > If, according to you, that's "shockingly smooth" with "no outsized > drama" other than "what I stirred up" (I guess you also missed the whole > LWN post about this thread before I posted anything on Fedi? That's how > I even found out about this), then I'm glad I'm disengaging with this > community. The Stockholm syndrome and utter denial is palpable. > > I thought I could work with you on these issues; I don't know what > happened over the past year since we last had a private conversation > about this, but clearly you've changed your mind. > > Thus, as you kindly requested of me in social media, > > https://chaos.social/@sima/113961283260455876 > > I will now proceed to fuck off. Good luck. Oh, and one last thing. I've heard that, in whatever backroom conversations you've been having about this situation, there has apparently been a belief, explicit or implicit, that I am in any way employed to work on the Linux kernel. Unlike most people in this thread, I don't enjoy the luxury of a cushy tech job that pays me to deal with this community. I am supported exclusively by donations, which incidentally, have been steadily *de*creasing since the start of the Asahi Linux project. The project has zero corporate sponsorship. And I do believe the fact that essentially all high-level Linux kernel maintainers and contributors are paid by corporations to do it is a major factor that has caused this community to become wildly out of touch with what it means to be a community FOSS project. - Hector ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-07 10:20 ` Hector Martin @ 2025-02-07 10:51 ` Greg KH 2025-02-07 13:49 ` Simona Vetter 1 sibling, 0 replies; 92+ messages in thread From: Greg KH @ 2025-02-07 10:51 UTC (permalink / raw) To: Hector Martin Cc: Simona Vetter, Jason Gunthorpe, Linus Torvalds, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Fri, Feb 07, 2025 at 07:20:03PM +0900, Hector Martin wrote: > And I do believe the fact that essentially all high-level Linux kernel > maintainers and contributors are paid by corporations to do it is a > major factor that has caused this community to become wildly out of > touch with what it means to be a community FOSS project. Please note, that ever since I started keeping track of this type of thing, way back in 2003 or so, it has been the case that over 80% of the contributions come from company-funded developers. Which means it really goes back before that as well. And that's good, it means that we have backing to do this properly, from the companies that benifit from it. To not have that would make it much harder for any of this to work properly at all. So don't try to play the "you all work for companies" card, that isn't going to fly as obviously we all speak for ourselves here, and our companies _know_ they can't tell us what to do, but they give us insight into the problems that they have with Linux in order for us to help change it to make it better for everyone. Because again, everyone has the same problems (individuals and companies), and so solving it for one "group", solves it for everyone. thanks, greg k-h ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 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 1 sibling, 2 replies; 92+ messages in thread From: Simona Vetter @ 2025-02-07 13:49 UTC (permalink / raw) To: Hector Martin Cc: Simona Vetter, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Fri, Feb 07, 2025 at 07:20:03PM +0900, Hector Martin wrote: > On 2025/02/07 18:41, Hector Martin wrote: > > On 2025/02/06 3:52, Simona Vetter wrote: > >> On Tue, Feb 04, 2025 at 03:46:14AM +0900, Hector Martin wrote: > >>> Adding Linus > >>> > >>> My 2c: If Linus doesn't pipe up with an authoritative answer to this > >>> thread, Miguel and the other Rust folks should just merge this series > >>> once it is reviewed and ready, ignoring Christoph's overt attempt at > >>> sabotaging the project. If Linus pulls it, what Christoph says doesn't > >>> matter. If Linus doesn't pull it, the R4L project is essentially dead > >>> until either Linus or Christoph make a move. Everything else is beating > >>> around the bush. > >>> > >>> Rust folks: Please don't waste your time and mental cycles on drama like > >>> this. It's not worth your time. Either Linus likes it, or he doesn't. > >>> Everything else is distractions orchestrated by a subset of saboteur > >>> maintainers who are trying to demoralize you until you give up, because > >>> they know they're going to be on the losing side of history sooner or > >>> later. No amount of sabotage from old entrenched maintainers is going to > >>> stop the world from moving forward towards memory-safe languages. > >>> > >>> FWIW, in my opinion, the "cancer" comment from Christoph would be enough > >>> to qualify for Code-of-Conduct action, but I doubt anything of the sort > >>> will happen. > >> > >> Yeah no. > >> > >> https://chaos.social/@sima/113942119012147959 > >> > >> This was about you, because typing a proper answer takes a bit longer. It > >> was also about your toots on fedi, like this: > >> > >> https://social.treehouse.systems/@marcan/113941468353031993 > >> > >> And "haha it's only a joke" does not work with your public profile and following. > >> > >> I do understand the frustration and temptation to just burn it all to the > >> ground, head the call of the sirens, or maybe for me more pick up goat > >> farming in the Swiss Alps. But you can't have it both and expect to also > >> be part of and contribute to the same community. And personally I don't > >> appreciate getting drenched in gasoline while I'm trying to quench flames > >> on the ground. > >> > >> And this isn't the first time or the second, by now it's a pretty clear > >> pattern over some years. And with the first I could explain why you react > >> like that and you had my full understanding, but eventually that runs a > >> bit thin as an excuse. Now I'm left with the unlikely explanation that > >> you just like thundering in as the cavalry, fashionably late, maximally > >> destructive, because it entertains the masses on fedi or reddit or > >> wherever. I have no idea what you're trying to achieve here, I really > >> don't get it, but I am for sure fed up dealing with the fallout. > >> > >> Cheers, Sima > > > > Since we're into complaining about social media posts on the list now, > > I'm going to link one of yours: > > > > https://chaos.social/@sima/113961496955043901 > > > > An R4L maintainer quit after multiple rounds of hostility, including > > some completely unacceptable public comments bordering on downright > > harassment from tytso, a situation which was widely publicized. > > > > If, according to you, that's "shockingly smooth" with "no outsized > > drama" other than "what I stirred up" (I guess you also missed the whole > > LWN post about this thread before I posted anything on Fedi? That's how > > I even found out about this), then I'm glad I'm disengaging with this > > community. The Stockholm syndrome and utter denial is palpable. Yes, the kernel's conduct is still not where I think it needs to be. And there are still cases occuring with some regularity which would be unacceptable on dri-devel and sanctioned under the freedesktop.org code of conduct. But that's not really new, it's not really specific to the r4l project, and despite that it's still not good enough, it's definitely much better than 10 years ago. That all aside, I put the "outsized" very intentionally in my comment. It carries a lot more than just the above paragraph in just one small word. > > I thought I could work with you on these issues; I don't know what > > happened over the past year since we last had a private conversation > > about this, but clearly you've changed your mind. I got seriously annoyed with you about two years ago for the first time, but kept chatting for quite a while longer. Nothing changed. Like I said, I'm not complaining about this specific case here, but about a pattern that you've established consistently over a fair amount of time. And if you're wondering why you didn't realize this: It's impossible to change people by telling them they're wrong. What does tend to work is explaining different perspectives, so that they can figure it out themselves. And sometimes that's just way too subtle to ever register. > > Thus, as you kindly requested of me in social media, > > > > https://chaos.social/@sima/113961283260455876 > > > > I will now proceed to fuck off. Good luck. I wasn't fully awake yet this morning, but I have no issue standing behind that thread in it's entirety. Lightly edited for typos below, with one sentence added for a bit more context: This isn't about "being civil" or "friendly" and even less about "don't call out". This is about calling out in an ineffective and imprecise way, so that the people actually trying to change things are busy patching up your collateral damage instead of implementing real changes, while all you've achieved is airing your frustration for internet drama points. Aside from that I've learned through private feedback since my first mail here that your social media brigading has had much more of a chilling effect on contributors than I assumed, which is not acceptable. When you're that harmful with your calling out, eventually I'm going to be fed up, and you get a live round shot across your bow. And if that then causes you to ragequit, because you can't actually deal with the heat you've been dishing out coming back around the corner: Fuck off. Or as Dave Airlie put it upthread in this conversation: "Being toxic on the right side of an argument is still toxic, [...]" So please do call out broken things, do change things, I've been doing it for well over a decade in the linux kernel. But do it in a way that you're not just becoming part of the problem and making it bigger. > Oh, and one last thing. I've heard that, in whatever backroom > conversations you've been having about this situation, there has > apparently been a belief, explicit or implicit, that I am in any way > employed to work on the Linux kernel. > > Unlike most people in this thread, I don't enjoy the luxury of a cushy > tech job that pays me to deal with this community. I am supported > exclusively by donations, which incidentally, have been steadily > *de*creasing since the start of the Asahi Linux project. The project has > zero corporate sponsorship. > > And I do believe the fact that essentially all high-level Linux kernel > maintainers and contributors are paid by corporations to do it is a > major factor that has caused this community to become wildly out of > touch with what it means to be a community FOSS project. I'm really not in favor of chiding people for how they earn money, because this world isn't fair and critizing people for how they get their bills paid is generally not ok. But this is a bit too much to just let it slide. It's fairly plausible that you need the social media brigading to generate attention that you can convert into enough donations to support the asahi project. But someone has to clean up the mess your shitstorms create, it's sure not you, which means my and other people's mental health essentially pay your bills. And I really do not appreciate that dynamic. Cheers, Sima -- Simona Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-07 13:49 ` Simona Vetter @ 2025-02-07 14:54 ` Hector Martin 2025-02-10 7:52 ` Simona Vetter 1 sibling, 0 replies; 92+ messages in thread From: Hector Martin @ 2025-02-07 14:54 UTC (permalink / raw) To: Simona Vetter, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On 2025/02/07 22:49, Simona Vetter wrote: > On Fri, Feb 07, 2025 at 07:20:03PM +0900, Hector Martin wrote: >> On 2025/02/07 18:41, Hector Martin wrote: >>> On 2025/02/06 3:52, Simona Vetter wrote: >>>> On Tue, Feb 04, 2025 at 03:46:14AM +0900, Hector Martin wrote: >>>>> Adding Linus >>>>> >>>>> My 2c: If Linus doesn't pipe up with an authoritative answer to this >>>>> thread, Miguel and the other Rust folks should just merge this series >>>>> once it is reviewed and ready, ignoring Christoph's overt attempt at >>>>> sabotaging the project. If Linus pulls it, what Christoph says doesn't >>>>> matter. If Linus doesn't pull it, the R4L project is essentially dead >>>>> until either Linus or Christoph make a move. Everything else is beating >>>>> around the bush. >>>>> >>>>> Rust folks: Please don't waste your time and mental cycles on drama like >>>>> this. It's not worth your time. Either Linus likes it, or he doesn't. >>>>> Everything else is distractions orchestrated by a subset of saboteur >>>>> maintainers who are trying to demoralize you until you give up, because >>>>> they know they're going to be on the losing side of history sooner or >>>>> later. No amount of sabotage from old entrenched maintainers is going to >>>>> stop the world from moving forward towards memory-safe languages. >>>>> >>>>> FWIW, in my opinion, the "cancer" comment from Christoph would be enough >>>>> to qualify for Code-of-Conduct action, but I doubt anything of the sort >>>>> will happen. >>>> >>>> Yeah no. >>>> >>>> https://chaos.social/@sima/113942119012147959 >>>> >>>> This was about you, because typing a proper answer takes a bit longer. It >>>> was also about your toots on fedi, like this: >>>> >>>> https://social.treehouse.systems/@marcan/113941468353031993 >>>> >>>> And "haha it's only a joke" does not work with your public profile and following. >>>> >>>> I do understand the frustration and temptation to just burn it all to the >>>> ground, head the call of the sirens, or maybe for me more pick up goat >>>> farming in the Swiss Alps. But you can't have it both and expect to also >>>> be part of and contribute to the same community. And personally I don't >>>> appreciate getting drenched in gasoline while I'm trying to quench flames >>>> on the ground. >>>> >>>> And this isn't the first time or the second, by now it's a pretty clear >>>> pattern over some years. And with the first I could explain why you react >>>> like that and you had my full understanding, but eventually that runs a >>>> bit thin as an excuse. Now I'm left with the unlikely explanation that >>>> you just like thundering in as the cavalry, fashionably late, maximally >>>> destructive, because it entertains the masses on fedi or reddit or >>>> wherever. I have no idea what you're trying to achieve here, I really >>>> don't get it, but I am for sure fed up dealing with the fallout. >>>> >>>> Cheers, Sima >>> >>> Since we're into complaining about social media posts on the list now, >>> I'm going to link one of yours: >>> >>> https://chaos.social/@sima/113961496955043901 >>> >>> An R4L maintainer quit after multiple rounds of hostility, including >>> some completely unacceptable public comments bordering on downright >>> harassment from tytso, a situation which was widely publicized. >>> >>> If, according to you, that's "shockingly smooth" with "no outsized >>> drama" other than "what I stirred up" (I guess you also missed the whole >>> LWN post about this thread before I posted anything on Fedi? That's how >>> I even found out about this), then I'm glad I'm disengaging with this >>> community. The Stockholm syndrome and utter denial is palpable. > > Yes, the kernel's conduct is still not where I think it needs to be. And > there are still cases occuring with some regularity which would be > unacceptable on dri-devel and sanctioned under the freedesktop.org code of > conduct. But that's not really new, it's not really specific to the r4l > project, and despite that it's still not good enough, it's definitely much > better than 10 years ago. > > That all aside, I put the "outsized" very intentionally in my comment. It > carries a lot more than just the above paragraph in just one small word. > >>> I thought I could work with you on these issues; I don't know what >>> happened over the past year since we last had a private conversation >>> about this, but clearly you've changed your mind. > > I got seriously annoyed with you about two years ago for the first time, > but kept chatting for quite a while longer. Nothing changed. Like I said, > I'm not complaining about this specific case here, but about a pattern > that you've established consistently over a fair amount of time. > > And if you're wondering why you didn't realize this: It's impossible to > change people by telling them they're wrong. What does tend to work is > explaining different perspectives, so that they can figure it out > themselves. And sometimes that's just way too subtle to ever register. > >>> Thus, as you kindly requested of me in social media, >>> >>> https://chaos.social/@sima/113961283260455876 >>> >>> I will now proceed to fuck off. Good luck. > > I wasn't fully awake yet this morning, but I have no issue standing behind > that thread in it's entirety. Lightly edited for typos below, with one > sentence added for a bit more context: > > This isn't about "being civil" or "friendly" and even less about "don't > call out". This is about calling out in an ineffective and imprecise way, > so that the people actually trying to change things are busy patching up > your collateral damage instead of implementing real changes, while all > you've achieved is airing your frustration for internet drama points. > > Aside from that I've learned through private feedback since my first mail > here that your social media brigading has had much more of a chilling > effect on contributors than I assumed, which is not acceptable. > > When you're that harmful with your calling out, eventually I'm going to be > fed up, and you get a live round shot across your bow. And if that then > causes you to ragequit, because you can't actually deal with the heat > you've been dishing out coming back around the corner: > > Fuck off. > > Or as Dave Airlie put it upthread in this conversation: > > "Being toxic on the right side of an argument is still toxic, [...]" > > So please do call out broken things, do change things, I've been doing it > for well over a decade in the linux kernel. But do it in a way that you're > not just becoming part of the problem and making it bigger. > >> Oh, and one last thing. I've heard that, in whatever backroom >> conversations you've been having about this situation, there has >> apparently been a belief, explicit or implicit, that I am in any way >> employed to work on the Linux kernel. >> >> Unlike most people in this thread, I don't enjoy the luxury of a cushy >> tech job that pays me to deal with this community. I am supported >> exclusively by donations, which incidentally, have been steadily >> *de*creasing since the start of the Asahi Linux project. The project has >> zero corporate sponsorship. >> >> And I do believe the fact that essentially all high-level Linux kernel >> maintainers and contributors are paid by corporations to do it is a >> major factor that has caused this community to become wildly out of >> touch with what it means to be a community FOSS project. > > I'm really not in favor of chiding people for how they earn money, because > this world isn't fair and critizing people for how they get their bills > paid is generally not ok. But this is a bit too much to just let it slide. > > It's fairly plausible that you need the social media brigading to generate > attention that you can convert into enough donations to support the asahi > project. But someone has to clean up the mess your shitstorms create, it's > sure not you, which means my and other people's mental health essentially > pay your bills. And I really do not appreciate that dynamic. > If I were trying to get more funds, I'd be spending my time finding corporate sponsors, not documenting the failings of the Linux kernel community in public. Believe it or not, no, the latter doesn't get me more donations. Given you have now decided to add "baseless public accusations from a position of power" to the list of abuses perpetrated by Linux kernel maintainers, I think it's about time we stop having this conversation. - Hector ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.) 2025-02-07 13:49 ` Simona Vetter 2025-02-07 14:54 ` Hector Martin @ 2025-02-10 7:52 ` Simona Vetter 1 sibling, 0 replies; 92+ messages in thread From: Simona Vetter @ 2025-02-10 7:52 UTC (permalink / raw) To: Hector Martin, Simona Vetter, Jason Gunthorpe, Greg KH, Linus Torvalds, phasta, Christoph Hellwig, Danilo Krummrich, Miguel Ojeda, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, DRI Development On Fri, Feb 07, 2025 at 02:49:50PM +0100, Simona Vetter wrote: > When you're that harmful with your calling out, eventually I'm going to be > fed up, and you get a live round shot across your bow. And if that then > causes you to ragequit, because you can't actually deal with the heat > you've been dishing out coming back around the corner: > > Fuck off. With some sleep, a w/e and slightly less ill temper: As I'd say in Swiss German, this was suboptimal wording. Or in plain English, a disaster, I screwed up. I do not rescind the sentiment I expressed though. I cannot stand people who punch where they're stronger, and eschew conflict and fold the moment someone hits back. > Or as Dave Airlie put it upthread in this conversation: > > "Being toxic on the right side of an argument is still toxic, [...]" The irony has not entirely escaped me. Oh well. Remorsefully, Sima -- Simona Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-08 15:16 ` Miguel Ojeda 2025-01-08 15:18 ` Christoph Hellwig @ 2025-02-08 23:55 ` Carlos Bilbao 2025-02-09 6:44 ` David Airlie 1 sibling, 1 reply; 92+ messages in thread From: Carlos Bilbao @ 2025-02-08 23:55 UTC (permalink / raw) To: Miguel Ojeda, Christoph Hellwig Cc: Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS, Greg KH Hello, On 1/8/25 09:16, Miguel Ojeda wrote: > On Wed, Jan 8, 2025 at 3:00 PM Christoph Hellwig <hch@lst.de> wrote: >> >> No rust code in kernel/dma, please. > > What do you suggest? This is it. What do people suggest? This thread has received a lot of attention -- maybe it's an opportunity for the community to brainstorm. Here's an idea: Some maintainers clearly hate wrappers/bindings to Rust, while others don't mind as long as the R4L folks commit to the maintenance duties. Depending on the subsystem, it will be a completely different conversation. It seems to me that right now, every time the R4L folks interact with a new subsystem, they need to understand the maintainer's stance. That looks like an exhausting process. Would it make sense to have a C middleman that Rust calls instead of binding directly to the C funcs? This dispatcher would provide a simpler, stable API with fixed function signatures, even if the C functions change. If a C func is removed/changed, only the C dispatcher would need to be adapted, but until that happens, a new error could be returned to the Rust side (not ideal, but Rust doesn't just break). This would obviously impose some limitations on the Rust side, but it might be less conflictive than direct bindings. Also, in Abdiel's case here (for example), he'd explicitly take on the maintenance of the Rust abstraction and its DMA dispatchers, leaving no ambiguity about ownership. > > Thanks! > > Cheers, > Miguel > > Thanks, Carlos ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 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 0 siblings, 1 reply; 92+ messages in thread From: David Airlie @ 2025-02-09 6:44 UTC (permalink / raw) To: Carlos Bilbao Cc: Miguel Ojeda, Christoph Hellwig, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Marek Szyprowski, open list:DMA MAPPING HELPERS, Greg KH On Sun, Feb 9, 2025 at 9:55 AM Carlos Bilbao <bilbao@vt.edu> wrote: > > Hello, > > On 1/8/25 09:16, Miguel Ojeda wrote: > > On Wed, Jan 8, 2025 at 3:00 PM Christoph Hellwig <hch@lst.de> wrote: > >> > >> No rust code in kernel/dma, please. > > > > What do you suggest? > > This is it. What do people suggest? This thread has received a lot of > attention -- maybe it's an opportunity for the community to brainstorm. > Here's an idea: > > Some maintainers clearly hate wrappers/bindings to Rust, while others don't > mind as long as the R4L folks commit to the maintenance duties. Depending on > the subsystem, it will be a completely different conversation. It seems to > me that right now, every time the R4L folks interact with a new subsystem, > they need to understand the maintainer's stance. That looks like an > exhausting process. > That is the process we are committed to, everyone has a voice and gets to be heard, and we move forward in the appropriate manner with each maintainer. Bypassing maintainers is the last resort, not engaging at all with maintainers isn't a productive way forward either. Your below attempt is trying to create a technical solution to a social problem. > Would it make sense to have a C middleman that Rust calls instead of > binding directly to the C funcs? This dispatcher would provide a simpler, > stable API with fixed function signatures, even if the C functions change. > If a C func is removed/changed, only the C dispatcher would need to be > adapted, but until that happens, a new error could be returned to the Rust > side (not ideal, but Rust doesn't just break). > > This would obviously impose some limitations on the Rust side, but it might > be less conflictive than direct bindings. Also, in Abdiel's case here (for > example), he'd explicitly take on the maintenance of the Rust abstraction > and its DMA dispatchers, leaving no ambiguity about ownership. > This just adds overheads for everyone to little advantage for the cases where maintainers are fine with all the other approaches. Also the bindings code in rust is usually pretty trivial to change, it's not like you can really abstract things that far, changing APIs is hard no matter what, understanding the nuances in every C driver can takes months of work adding rust bindings to your changes is rarely going to be the limiting factor. We have learned over the years to not make API changes that are subtle or hidden, and can leave out of tree or in development users broken in subtle ways and as long as we keep making API changes like that, updating the rust code is the least of anyone's worries. This isn't like having to learn Mandarin vs English, it's code written with a different syntax, it's not even perl. Dave. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-02-09 6:44 ` David Airlie @ 2025-02-09 16:19 ` Carlos Bilbao 2025-02-09 16:28 ` Carlos Bilbao 0 siblings, 1 reply; 92+ messages in thread From: Carlos Bilbao @ 2025-02-09 16:19 UTC (permalink / raw) To: David Airlie, carlos.bilbao@kernel.org Cc: Miguel Ojeda, Christoph Hellwig, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Marek Szyprowski, open list:DMA MAPPING HELPERS, Greg KH Hello David, On 2/9/25 00:44, David Airlie wrote: > On Sun, Feb 9, 2025 at 9:55 AM Carlos Bilbao <bilbao@vt.edu> wrote: >> >> Hello, >> >> On 1/8/25 09:16, Miguel Ojeda wrote: >>> On Wed, Jan 8, 2025 at 3:00 PM Christoph Hellwig <hch@lst.de> wrote: >>>> >>>> No rust code in kernel/dma, please. >>> >>> What do you suggest? >> >> This is it. What do people suggest? This thread has received a lot of >> attention -- maybe it's an opportunity for the community to brainstorm. >> Here's an idea: >> >> Some maintainers clearly hate wrappers/bindings to Rust, while others don't >> mind as long as the R4L folks commit to the maintenance duties. Depending on >> the subsystem, it will be a completely different conversation. It seems to >> me that right now, every time the R4L folks interact with a new subsystem, >> they need to understand the maintainer's stance. That looks like an >> exhausting process. >> > > That is the process we are committed to, everyone has a voice and gets > to be heard, and we move forward in the appropriate manner with each > maintainer. Bypassing maintainers is the last resort, not engaging at > all with maintainers isn't a productive way forward either. Your below > attempt is trying to create a technical solution to a social problem. > >> Would it make sense to have a C middleman that Rust calls instead of >> binding directly to the C funcs? This dispatcher would provide a simpler, >> stable API with fixed function signatures, even if the C functions change. >> If a C func is removed/changed, only the C dispatcher would need to be >> adapted, but until that happens, a new error could be returned to the Rust >> side (not ideal, but Rust doesn't just break). >> >> This would obviously impose some limitations on the Rust side, but it might >> be less conflictive than direct bindings. Also, in Abdiel's case here (for >> example), he'd explicitly take on the maintenance of the Rust abstraction >> and its DMA dispatchers, leaving no ambiguity about ownership. >> > > This just adds overheads for everyone to little advantage for the > cases where maintainers are fine with all the other approaches. I'm not sure there's a need to worry about overhead in this hypothetical case if the dispatcher is merely a translator and doesn't validate inputs, copy buffers, or such. It would be less than calling from userspace. What I meant to say (I wasn't clear before) was for this solution to apply to cases where maintainers are firmly against all alternatives. Obviously, if all the parties involved are happy, direct bindings are preferable. > > Also the bindings code in rust is usually pretty trivial to change, > it's not like you can really abstract things that far, changing APIs > is hard no matter what, understanding the nuances in every C driver > can takes months of work adding rust bindings to your changes is > rarely going to be the limiting factor. We have learned over the years > to not make API changes that are subtle or hidden, and can leave out > of tree or in development users broken in subtle ways and as long as > we keep making API changes like that, updating the rust code is the > least of anyone's worries. This isn't like having to learn Mandarin vs > English, it's code written with a different syntax, it's not even > perl. I'm not sure there's a need to worry about overhead in this hypothetical case if the dispatcher is merely a translator and doesn't validate inputs, copy buffers, or such. It would be less than calling from userspace. What I meant to say (and wasn't clear before) is that this solution could apply to cases where maintainers are firmly against all better alternatives. Of course, if all the parties involved are happy with direct bindings, that's preferable. But as you said, this is a social problem, so maybe it's not a one-size-fits-all solution. I agree that in some cases, abstracting the API could be complicated, but I’d focus on keeping it simple and providing Rust with the minimum subset it needs to keep things moving forward. Abdiel's PR is a good example -- by keeping the functions in his CoherentAllocation, we keep that option, but lose the granularity of DMA mapping attributes (which would be some default in the C dispatcher). I agree that making subtle API changes is risky, and it would def. be something to keep an eye on. And yes, with this approach, some Rust developers may eventually miss certain DMA functionalities in the future; but that would still be better than the current situation, where _all_ Rust devs are missing all DMA capabilities. > > Dave. > Thanks, Carlos ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-02-09 16:19 ` Carlos Bilbao @ 2025-02-09 16:28 ` Carlos Bilbao 0 siblings, 0 replies; 92+ messages in thread From: Carlos Bilbao @ 2025-02-09 16:28 UTC (permalink / raw) To: David Airlie, carlos.bilbao@kernel.org Cc: Miguel Ojeda, Christoph Hellwig, Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Marek Szyprowski, open list:DMA MAPPING HELPERS, Greg KH On 2/9/25 10:19, Carlos Bilbao wrote: > Hello David, > > On 2/9/25 00:44, David Airlie wrote: >> On Sun, Feb 9, 2025 at 9:55 AM Carlos Bilbao <bilbao@vt.edu> wrote: >>> Hello, >>> >>> On 1/8/25 09:16, Miguel Ojeda wrote: >>>> On Wed, Jan 8, 2025 at 3:00 PM Christoph Hellwig <hch@lst.de> wrote: >>>>> No rust code in kernel/dma, please. >>>> What do you suggest? >>> This is it. What do people suggest? This thread has received a lot of >>> attention -- maybe it's an opportunity for the community to brainstorm. >>> Here's an idea: >>> >>> Some maintainers clearly hate wrappers/bindings to Rust, while others don't >>> mind as long as the R4L folks commit to the maintenance duties. Depending on >>> the subsystem, it will be a completely different conversation. It seems to >>> me that right now, every time the R4L folks interact with a new subsystem, >>> they need to understand the maintainer's stance. That looks like an >>> exhausting process. >>> >> That is the process we are committed to, everyone has a voice and gets >> to be heard, and we move forward in the appropriate manner with each >> maintainer. Bypassing maintainers is the last resort, not engaging at >> all with maintainers isn't a productive way forward either. Your below >> attempt is trying to create a technical solution to a social problem. >> >>> Would it make sense to have a C middleman that Rust calls instead of >>> binding directly to the C funcs? This dispatcher would provide a simpler, >>> stable API with fixed function signatures, even if the C functions change. >>> If a C func is removed/changed, only the C dispatcher would need to be >>> adapted, but until that happens, a new error could be returned to the Rust >>> side (not ideal, but Rust doesn't just break). >>> >>> This would obviously impose some limitations on the Rust side, but it might >>> be less conflictive than direct bindings. Also, in Abdiel's case here (for >>> example), he'd explicitly take on the maintenance of the Rust abstraction >>> and its DMA dispatchers, leaving no ambiguity about ownership. >>> >> This just adds overheads for everyone to little advantage for the >> cases where maintainers are fine with all the other approaches. > I'm not sure there's a need to worry about overhead in this hypothetical > case if the dispatcher is merely a translator and doesn't validate inputs, > copy buffers, or such. It would be less than calling from userspace. > > What I meant to say (I wasn't clear before) was for this solution to apply > to cases where maintainers are firmly against all alternatives. Obviously, > if all the parties involved are happy, direct bindings are preferable. > > >> Also the bindings code in rust is usually pretty trivial to change, >> it's not like you can really abstract things that far, changing APIs >> is hard no matter what, understanding the nuances in every C driver >> can takes months of work adding rust bindings to your changes is >> rarely going to be the limiting factor. We have learned over the years >> to not make API changes that are subtle or hidden, and can leave out >> of tree or in development users broken in subtle ways and as long as >> we keep making API changes like that, updating the rust code is the >> least of anyone's worries. This isn't like having to learn Mandarin vs >> English, it's code written with a different syntax, it's not even >> perl. > I'm not sure there's a need to worry about overhead in this hypothetical > case if the dispatcher is merely a translator and doesn't validate inputs, > copy buffers, or such. It would be less than calling from userspace. > > What I meant to say (and wasn't clear before) is that this solution could > apply to cases where maintainers are firmly against all better > alternatives. Of course, if all the parties involved are happy with direct > bindings, that's preferable. But as you said, this is a social problem, so > maybe it's not a one-size-fits-all solution. I accidentally copied this twice after rephrasing, not trying to be annoying x). > > I agree that in some cases, abstracting the API could be complicated, but > I’d focus on keeping it simple and providing Rust with the minimum subset > it needs to keep things moving forward. Abdiel's PR is a good example -- > by keeping the functions in his CoherentAllocation, we keep that option, > but lose the granularity of DMA mapping attributes (which would be some > default in the C dispatcher). > > I agree that making subtle API changes is risky, and it would def. be > something to keep an eye on. > > And yes, with this approach, some Rust developers may eventually miss > certain DMA functionalities in the future; but that would still be better > than the current situation, where _all_ Rust devs are missing all DMA > capabilities. > >> Dave. >> > Thanks, > Carlos ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 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 18:08 ` Daniel Sedlak 2025-01-08 19:09 ` Daniel Almeida 2025-01-12 0:41 ` kernel test robot 2025-02-04 16:54 ` Thomas Hampton 3 siblings, 1 reply; 92+ messages in thread From: Daniel Sedlak @ 2025-01-08 18:08 UTC (permalink / raw) To: Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux Cc: Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On 1/8/25 1:27 PM, Abdiel Janulgue wrote: > +/// Possible attributes associated with a DMA mapping. > +/// > +/// They can be combined with the operators `|`, `&`, and `!`. > +/// > +/// Values can be used from the [`attrs`] module. > +#[derive(Clone, Copy, PartialEq)] > +pub struct Attrs(pub u32); Shouldn't this be non-pub? It seems unfortunate to leak C representation to the Rust world and allow its construction without going through constructor method. Also #[repr(transparent)] may be well suited? [1] Link: https://doc.rust-lang.org/nomicon/other-reprs.html#reprtransparent [1] > + > +impl Attrs { > + /// Get the raw representation of this attribute. > + pub(crate) fn as_raw(self) -> usize { > + self.0.try_into().unwrap() > + } Shouldn't be the return type u32 instead of usize? Or at least to my understanding the raw means C representation which should be the type that bindgen generates. > + > + /// Check whether `flags` is contained in `self`. > + pub fn contains(self, flags: Attrs) -> bool { > + (self & flags) == flags > + } > +} Daniel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-08 18:08 ` Daniel Sedlak @ 2025-01-08 19:09 ` Daniel Almeida 2025-01-09 11:14 ` Abdiel Janulgue 0 siblings, 1 reply; 92+ messages in thread From: Daniel Almeida @ 2025-01-08 19:09 UTC (permalink / raw) To: Daniel Sedlak Cc: Abdiel Janulgue, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS Hi Abdiel, I was trying to test this again, but it apparently doesn’t compile for the reasons Daniel Sedlak pointed out above. Send a new version and I’ll test it for you. — Daniel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 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 0 siblings, 2 replies; 92+ messages in thread From: Abdiel Janulgue @ 2025-01-09 11:14 UTC (permalink / raw) To: Daniel Almeida, Daniel Sedlak Cc: aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On 08/01/2025 21:09, Daniel Almeida wrote: > I was trying to test this again, but it apparently doesn’t compile for the reasons > Daniel Sedlak pointed out above. > Okay, now I noticed the problem. bindgen generates this rust signature for dma_alloc_attrs(): extern "C" { pub fn dma_alloc_attrs( dev: *mut device, size: usize, dma_handle: *mut dma_addr_t, flag: gfp_t, attrs: ffi::c_ulong, ) -> *mut ffi::c_void; } We are interested in the last argument 'attrs'. For some reason it seems ffi::c_ulong is defined as usize at least on top of `rust-next` commit 0c5928deada15a8d075516e6e0d9ee19011bb000. In previous versions ffi::c_ulong used to be u64. I also noticed that core::ffi::c_ulong is u64 while crate::ffi::c_ulong is usize. In the previous versions they're both u64. So my mistake here as is I tried to match the signature manually by using usize as suggested by the compiler. Maybe we should stick to ffi::c_ulong return type for Attrs::as_raw() to be in sync the bindgen-generated interface? Regards, Abdiel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-09 11:14 ` Abdiel Janulgue @ 2025-01-09 11:19 ` Miguel Ojeda 2025-01-09 11:32 ` Miguel Ojeda 1 sibling, 0 replies; 92+ messages in thread From: Miguel Ojeda @ 2025-01-09 11:19 UTC (permalink / raw) To: Abdiel Janulgue Cc: Daniel Almeida, Daniel Sedlak, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On Thu, Jan 9, 2025 at 12:14 PM Abdiel Janulgue <abdiel.janulgue@gmail.com> wrote: > > We are interested in the last argument 'attrs'. For some reason it seems > ffi::c_ulong is defined as usize at least on top of `rust-next` commit > 0c5928deada15a8d075516e6e0d9ee19011bb000. We are moving to a custom mapping instead of using `core::ffi` directly. Please see commit 1bae8729e50a ("rust: map `long` to `isize` and `char` to `u8`"): The following FFI types are replaced compared to `core::ffi`: 1. `char` type is now always mapped to `u8`, since kernel uses `-funsigned-char` on the C code. `core::ffi` maps it to platform default ABI, which can be either signed or unsigned. 2. `long` is now always mapped to `isize`. It's very common in the kernel to use `long` to represent a pointer-sized integer, and in fact `intptr_t` is a typedef of `long` in the kernel. Enforce this mapping rather than mapping to `i32/i64` depending on platform can save us a lot of unnecessary casts. + // In the kernel, `intptr_t` is defined to be `long` in all platforms, so we can map the type to + // `isize`. + c_long = isize; + c_ulong = usize; Cheers, Miguel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 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 1 sibling, 1 reply; 92+ messages in thread From: Miguel Ojeda @ 2025-01-09 11:32 UTC (permalink / raw) To: Abdiel Janulgue Cc: Daniel Almeida, Daniel Sedlak, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On Thu, Jan 9, 2025 at 12:14 PM Abdiel Janulgue <abdiel.janulgue@gmail.com> wrote: > > using usize as suggested by the compiler. Maybe we should stick to > ffi::c_ulong return type for Attrs::as_raw() to be in sync the > bindgen-generated interface? In the past, `bindgen` also generated code using the `core::ffi::` mapping, but now uses it uses the `ffi` (the crate) instead (starting with commit d072acda4862 ("rust: use custom FFI integer types") in mainline). Note that in mainline, `ffi` (the crate) still redirects to `core::ffi`, since we split the change in 2 kernel cycles to make it easier to migrate. But in `rust-next`, `ffi` (the crate) already uses the new mapping. The idea is that you can already use `ffi` (the crate) -- so please use that. I hope that helps! Cheers, Miguel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-09 11:32 ` Miguel Ojeda @ 2025-01-10 8:07 ` Abdiel Janulgue 0 siblings, 0 replies; 92+ messages in thread From: Abdiel Janulgue @ 2025-01-10 8:07 UTC (permalink / raw) To: Miguel Ojeda Cc: Daniel Almeida, Daniel Sedlak, aliceryhl, robin.murphy, rust-for-linux, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On 09/01/2025 13:32, Miguel Ojeda wrote: > > Note that in mainline, `ffi` (the crate) still redirects to > `core::ffi`, since we split the change in 2 kernel cycles to make it > easier to migrate. But in `rust-next`, `ffi` (the crate) already uses > the new mapping. > > The idea is that you can already use `ffi` (the crate) -- so please use that. > > I hope that helps! > > Cheers, > Miguel Thanks, sticking to ffi::c_ulong does indeed fix this. Regards, Abdiel ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 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 18:08 ` Daniel Sedlak @ 2025-01-12 0:41 ` kernel test robot 2025-02-04 16:54 ` Thomas Hampton 3 siblings, 0 replies; 92+ messages in thread From: kernel test robot @ 2025-01-12 0:41 UTC (permalink / raw) To: Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux Cc: llvm, oe-kbuild-all, Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, linux-kernel, Christoph Hellwig, Marek Szyprowski, airlied, iommu, Abdiel Janulgue Hi Abdiel, kernel test robot noticed the following build errors: [auto build test ERROR on v6.13-rc6] [also build test ERROR on linus/master] [cannot apply to next-20250110] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Abdiel-Janulgue/rust-error-Add-EOVERFLOW/20250108-202929 base: v6.13-rc6 patch link: https://lore.kernel.org/r/20250108122825.136021-3-abdiel.janulgue%40gmail.com patch subject: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. config: um-randconfig-001-20250112 (https://download.01.org/0day-ci/archive/20250112/202501120855.PXuydC6T-lkp@intel.com/config) compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project f5cd181ffbb7cb61d582fe130d46580d5969d47a) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250112/202501120855.PXuydC6T-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202501120855.PXuydC6T-lkp@intel.com/ All errors (new ones prefixed by >>): >> error[E0425]: cannot find function `dma_alloc_attrs` in crate `bindings` --> rust/kernel/dma.rs:145:23 | 145 | bindings::dma_alloc_attrs( | ^^^^^^^^^^^^^^^ help: a function with a similar name exists: `dma_alloc_pages` | ::: rust/bindings/bindings_generated.rs:39433:5 | 39433 | / pub fn dma_alloc_pages( 39434 | | dev: *mut device, 39435 | | size: usize, 39436 | | dma_handle: *mut dma_addr_t, 39437 | | dir: dma_data_direction, 39438 | | gfp: gfp_t, 39439 | | ) -> *mut page; | |__________________- similarly named function `dma_alloc_pages` defined here -- >> error[E0425]: cannot find function `dma_free_attrs` in crate `bindings` --> rust/kernel/dma.rs:262:23 | 262 | bindings::dma_free_attrs( | ^^^^^^^^^^^^^^ help: a function with a similar name exists: `dma_free_pages` | ::: rust/bindings/bindings_generated.rs:39442:5 | 39442 | / pub fn dma_free_pages( 39443 | | dev: *mut device, 39444 | | size: usize, 39445 | | page: *mut page, 39446 | | dma_handle: dma_addr_t, 39447 | | dir: dma_data_direction, 39448 | | ); | |_____- similarly named function `dma_free_pages` defined here -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-01-08 12:27 ` [PATCH v8 2/2] rust: add dma coherent allocator abstraction Abdiel Janulgue ` (2 preceding siblings ...) 2025-01-12 0:41 ` kernel test robot @ 2025-02-04 16:54 ` Thomas Hampton 2025-02-05 2:41 ` Thomas Hampton 3 siblings, 1 reply; 92+ messages in thread From: Thomas Hampton @ 2025-02-04 16:54 UTC (permalink / raw) To: Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux Cc: Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On 1/8/2025 6:27 AM, Abdiel Janulgue wrote: > + /// Returns the base address, dma handle, attributes and the size of the allocated region. > + /// The caller takes ownership of the returned resources, i.e., will have the responsibility > + /// in calling `bindings::dma_free_attrs`. > + pub fn into_parts(self) -> (*mut T, bindings::dma_addr_t, usize, usize) { > + let size = self.count * core::mem::size_of::<T>(); > + let ret = ( > + self.cpu_addr, > + self.dma_handle, > + self.dma_attrs.as_raw(), > + size, > + ); > + // Drop the device's reference count associated with this object. This is needed as no > + // destructor will be called on this object once this function returns. > + // SAFETY: the device pointer is still valid as of this point due to the type invariants > + // on `CoherentAllocation`. > + unsafe { bindings::put_device(self.dev.as_raw()) } > + core::mem::forget(self); > + ret > + } Would it be feasible and prudent to avoid exposing `pub fn into_parts`, `pub fn first_ptr`, `pub fn first_ptr_mut`? It seems like some sort of functional access method might be better for keeping future Rust code maintainable and Rusty. For example, making client code from: > { > let ctrl_id = unsafe { &*(id.first_ptr() as *const NvmeIdCtrl) }; > number_of_namespaces = ctrl_id.nn.into(); > mdts = ctrl_id.mdts; > } Into something like, pub fn expose(self, op: F) where F: Fn(*const T) { op(self.cpu_addr); } let number_of_namespaces; let mdts; id.expose(|data| { let ctrl_id = &*(data as *const NvmeIdCtrl); number_of_namespaces = ctrl_id.nn.into(); mdts = ctrl_id.mdts; }); And to avoid code docs like: > /// The caller <...> will have the responsibility in calling `bindings::dma_free_attrs`. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction. 2025-02-04 16:54 ` Thomas Hampton @ 2025-02-05 2:41 ` Thomas Hampton 0 siblings, 0 replies; 92+ messages in thread From: Thomas Hampton @ 2025-02-05 2:41 UTC (permalink / raw) To: Abdiel Janulgue, daniel.almeida, aliceryhl, robin.murphy, rust-for-linux Cc: Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich, Valentin Obst, open list, Christoph Hellwig, Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS On Tue, Feb 4, 2025 at 10:54 AM Thomas Hampton <thomas.j.hampton@gmail.com> wrote: > On second thought, this wouldn't prevent the construction of a closure that simply extracts the pointer itself, nevermind. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 0/2] Add dma coherent allocator abstraction 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-02-10 8:54 ` Pyrex 2025-02-10 9:09 ` Danilo Krummrich 2 siblings, 1 reply; 92+ messages in thread From: Pyrex @ 2025-02-10 8:54 UTC (permalink / raw) To: abdiel.janulgue Cc: a.hindborg, airlied, alex.gaynor, aliceryhl, benno.lossin, bjorn3_gh, boqun.feng, dakr, daniel.almeida, gary, hch, iommu, kernel, linux-kernel, m.szyprowski, ojeda, robin.murphy, rust-for-linux, tmgross I'm nervy about the Rust code here. - read()'s comment says it takes a snapshot, but it doesn't - read()'s name implies it does a read, but it doesn't. It returns a live, dangerous view - into_parts()'s comment claims to decrement the refcount. One, it doesn't. Two, it probably shouldn't, if it's supposed to transfer ownership. - write() shouldn't take an immutable receiver without unsafe - write() is unsound if used with the slice from read() - the mutation in write() breaks read() without contradicting its `Safety` requirements - write() memcpys T, which isn't explicitly Copy This doesn't have to be this unsafe. AsBytes + FromBytes implies Copy (or at least it _should_) -- so the view could be of Cell. ^ permalink raw reply [flat|nested] 92+ messages in thread
* Re: [PATCH v8 0/2] Add dma coherent allocator abstraction 2025-02-10 8:54 ` [PATCH v8 0/2] Add " Pyrex @ 2025-02-10 9:09 ` Danilo Krummrich 0 siblings, 0 replies; 92+ messages in thread From: Danilo Krummrich @ 2025-02-10 9:09 UTC (permalink / raw) To: Pyrex Cc: abdiel.janulgue, a.hindborg, airlied, alex.gaynor, aliceryhl, benno.lossin, bjorn3_gh, boqun.feng, daniel.almeida, gary, hch, iommu, kernel, linux-kernel, m.szyprowski, ojeda, robin.murphy, rust-for-linux, tmgross Hi, On Mon, Feb 10, 2025 at 12:54:25AM -0800, Pyrex wrote: > I'm nervy about the Rust code here. Code reviews are always welcome! However, please make sure to consider the following. When sending feedback, please try to keep up with the latest version [1] of the patchset. Please send your comments inline keeping the relevant context and removing the irrelevant parts in your reply. Otherwise it is impossible to have a discussion that everyone can follow. Thanks! [1] https://lore.kernel.org/rust-for-linux/20250123104333.1340512-1-abdiel.janulgue@gmail.com/ ^ permalink raw reply [flat|nested] 92+ messages in thread
end of thread, other threads:[~2025-02-20 16:52 UTC | newest] Thread overview: 92+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 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-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
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).