[PATCH 0/8] dma::Coherent & dma::CoherentInit API

Danilo Krummrich posted 8 patches 1 month, 1 week ago
drivers/gpu/nova-core/dma.rs      |  19 +-
drivers/gpu/nova-core/falcon.rs   |   7 +-
drivers/gpu/nova-core/firmware.rs |  10 +-
drivers/gpu/nova-core/gsp.rs      |  65 ++--
drivers/gpu/nova-core/gsp/boot.rs |   7 +-
drivers/gpu/nova-core/gsp/cmdq.rs |  55 +--
drivers/gpu/nova-core/gsp/fw.rs   |  82 ++--
rust/kernel/device.rs             |   4 +-
rust/kernel/dma.rs                | 626 +++++++++++++++++++++++-------
samples/rust/rust_dma.rs          |   8 +-
10 files changed, 619 insertions(+), 264 deletions(-)
[PATCH 0/8] dma::Coherent & dma::CoherentInit API
Posted by Danilo Krummrich 1 month, 1 week ago
This patch series introduces the dma::Coherent API Gary worked out in the
context of his I/O projection work.

Additionally, introduce dma::CoherentInit, a type that encapsulates a
dma::Coherent object before its DMA address is exposed to the device.
dma::CoherentInit can guarantee exclusive access to the inner dma::Coherent
object and implement Deref and DerefMut.

Also add Coherent::init() and Coherent::init_with_attrs() so we can directly
initialize a new dma::Coherent object through an impl Init<T, E>.

Danilo Krummrich (5):
  rust: dma: use "kernel vertical" style for imports
  rust: dma: introduce dma::CoherentInit for memory initialization
  rust: dma: add Coherent:init() and Coherent::init_with_attrs()
  gpu: nova-core: use Coherent::init to initialize GspFwWprMeta
  gpu: nova-core: convert Gsp::new() to use CoherentInit

Gary Guo (3):
  rust: dma: add generalized container for types other than slices
  rust: dma: add zeroed constructor to `Coherent`
  gpu: nova-core: convert to new dma::Coherent API

 drivers/gpu/nova-core/dma.rs      |  19 +-
 drivers/gpu/nova-core/falcon.rs   |   7 +-
 drivers/gpu/nova-core/firmware.rs |  10 +-
 drivers/gpu/nova-core/gsp.rs      |  65 ++--
 drivers/gpu/nova-core/gsp/boot.rs |   7 +-
 drivers/gpu/nova-core/gsp/cmdq.rs |  55 +--
 drivers/gpu/nova-core/gsp/fw.rs   |  82 ++--
 rust/kernel/device.rs             |   4 +-
 rust/kernel/dma.rs                | 626 +++++++++++++++++++++++-------
 samples/rust/rust_dma.rs          |   8 +-
 10 files changed, 619 insertions(+), 264 deletions(-)


base-commit: 1195fcbda62f12108dc9be56fa4173897905b90c
-- 
2.53.0
Re: [PATCH 0/8] dma::Coherent & dma::CoherentInit API
Posted by Andreas Hindborg 2 weeks, 2 days ago
"Danilo Krummrich" <dakr@kernel.org> writes:

> This patch series introduces the dma::Coherent API Gary worked out in the
> context of his I/O projection work.
>
> Additionally, introduce dma::CoherentInit, a type that encapsulates a
> dma::Coherent object before its DMA address is exposed to the device.
> dma::CoherentInit can guarantee exclusive access to the inner dma::Coherent
> object and implement Deref and DerefMut.
>
> Also add Coherent::init() and Coherent::init_with_attrs() so we can directly
> initialize a new dma::Coherent object through an impl Init<T, E>.
>
> Danilo Krummrich (5):
>   rust: dma: use "kernel vertical" style for imports
>   rust: dma: introduce dma::CoherentInit for memory initialization
>   rust: dma: add Coherent:init() and Coherent::init_with_attrs()
>   gpu: nova-core: use Coherent::init to initialize GspFwWprMeta
>   gpu: nova-core: convert Gsp::new() to use CoherentInit
>
> Gary Guo (3):
>   rust: dma: add generalized container for types other than slices
>   rust: dma: add zeroed constructor to `Coherent`
>   gpu: nova-core: convert to new dma::Coherent API
>
>  drivers/gpu/nova-core/dma.rs      |  19 +-
>  drivers/gpu/nova-core/falcon.rs   |   7 +-
>  drivers/gpu/nova-core/firmware.rs |  10 +-
>  drivers/gpu/nova-core/gsp.rs      |  65 ++--
>  drivers/gpu/nova-core/gsp/boot.rs |   7 +-
>  drivers/gpu/nova-core/gsp/cmdq.rs |  55 +--
>  drivers/gpu/nova-core/gsp/fw.rs   |  82 ++--
>  rust/kernel/device.rs             |   4 +-
>  rust/kernel/dma.rs                | 626 +++++++++++++++++++++++-------
>  samples/rust/rust_dma.rs          |   8 +-
>  10 files changed, 619 insertions(+), 264 deletions(-)
>
>
> base-commit: 1195fcbda62f12108dc9be56fa4173897905b90c

What did you base this on?


Best regards,
Andreas Hindborg
Re: [PATCH 0/8] dma::Coherent & dma::CoherentInit API
Posted by Danilo Krummrich 2 weeks, 2 days ago
On 3/24/26 1:33 PM, Andreas Hindborg wrote:
> What did you base this on?

drm-rust-next
Re: [PATCH 0/8] dma::Coherent & dma::CoherentInit API
Posted by Andreas Hindborg 2 weeks, 2 days ago
"Danilo Krummrich" <dakr@kernel.org> writes:

> On 3/24/26 1:33 PM, Andreas Hindborg wrote:
>> What did you base this on?
>
> drm-rust-next

I don't think 1195fcbda62f12108dc9be56fa4173897905b90c is in
drm-rust-next - or any of the other branches in of
https://gitlab.freedesktop.org/drm/rust/kernel.git .


Best regards,
Andreas Hindborg
Re: [PATCH 0/8] dma::Coherent & dma::CoherentInit API
Posted by Danilo Krummrich 2 weeks, 2 days ago
On 3/24/26 1:46 PM, Andreas Hindborg wrote:
> "Danilo Krummrich" <dakr@kernel.org> writes:
> 
>> On 3/24/26 1:33 PM, Andreas Hindborg wrote:
>>> What did you base this on?
>>
>> drm-rust-next
> 
> I don't think 1195fcbda62f12108dc9be56fa4173897905b90c is in
> drm-rust-next - or any of the other branches in of
> https://gitlab.freedesktop.org/drm/rust/kernel.git .

Oh, I did not notice that you replied to v1, there's already a v2.

[1] https://lore.kernel.org/driver-core/20260320194626.36263-1-dakr@kernel.org/