From: "Danilo Krummrich" <dakr@kernel.org>
To: "Boris Brezillon" <boris.brezillon@collabora.com>
Cc: "Philipp Stanner" <phasta@mailbox.org>,
phasta@kernel.org, "Alice Ryhl" <aliceryhl@google.com>,
sashiko-reviews@lists.linux.dev, linux-media@vger.kernel.org,
ojeda@kernel.org, "Christian König" <christian.koenig@amd.com>,
"Gary Guo" <gary@garyguo.net>,
"Daniel Almeida" <daniel.almeida@collabora.com>
Subject: Re: [PATCH 3/4] rust: Add dma_fence abstractions
Date: Wed, 03 Jun 2026 17:57:16 +0200 [thread overview]
Message-ID: <DIZJD7DXYF5L.2Z7JGH55EMNU2@kernel.org> (raw)
In-Reply-To: <20260603132259.42184da0@fedora-2.home>
On Wed Jun 3, 2026 at 1:22 PM CEST, Boris Brezillon wrote:
> Honestly, the more I think about it, the more I believe we should defer the
> drop unconditionally and call it a day.
I think deferring is fine, a hard synchronization with synchronize_rcu() in
DriverFence::drop() seems very undesirable though.
Another option would be to change dma_fence_is_signaled() to take the fence lock
already for signaled(), which should be fine given that drivers should only ever
check a sequence number.
It would account for the fact that the same race is possible on the C side.
While the memory allocation is protected by RCU, the contents are not, and it
seems realistic a driver could invalidate the contents of its private data after
signaling the fence while signaled() callbacks are still in flight.
Note that there are no new constraints, signaled() is already called with RCU
read lock held, plus there's also dma_fence_is_signaled_locked() which also
calls signaled() with the fence lock held.
With this, the problem goes away, as it would guarantee that once we reach
drop_in_place() in DriverFence::drop() it is impossible that there are still
callback in flight.
next prev parent reply other threads:[~2026-06-03 15:57 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-30 14:35 [PATCH 0/4] rust / dma_buf: Add abstractions for dma_fence Philipp Stanner
2026-05-30 14:35 ` [PATCH 1/4] rust: types: implement ForeignOwnable for ARef<T> Philipp Stanner
2026-05-30 14:45 ` sashiko-bot
2026-06-01 9:46 ` Alice Ryhl
2026-05-30 14:35 ` [PATCH 2/4] rust: rcu: add RcuBox type Philipp Stanner
2026-05-30 14:54 ` sashiko-bot
2026-05-30 15:08 ` Boqun Feng
2026-05-30 15:27 ` Danilo Krummrich
2026-06-01 7:56 ` Philipp Stanner
2026-06-01 13:41 ` Boqun Feng
2026-06-03 9:33 ` Philipp Stanner
2026-06-03 9:35 ` Alice Ryhl
2026-06-03 15:27 ` Boqun Feng
2026-06-03 17:36 ` Boqun Feng
2026-06-03 17:07 ` Boqun Feng
2026-05-30 14:35 ` [PATCH 3/4] rust: Add dma_fence abstractions Philipp Stanner
2026-05-30 15:06 ` sashiko-bot
2026-06-01 10:20 ` Alice Ryhl
2026-06-01 12:34 ` Philipp Stanner
2026-06-01 12:55 ` Alice Ryhl
2026-06-01 13:14 ` Philipp Stanner
2026-06-01 13:30 ` Philipp Stanner
2026-06-01 13:54 ` Alice Ryhl
2026-06-01 13:44 ` Alice Ryhl
2026-06-02 11:31 ` Philipp Stanner
2026-06-02 11:44 ` Alice Ryhl
2026-06-02 11:52 ` Philipp Stanner
2026-06-02 11:59 ` Alice Ryhl
2026-06-02 12:06 ` Philipp Stanner
2026-06-02 15:25 ` Alice Ryhl
2026-06-03 6:10 ` Philipp Stanner
2026-06-03 6:48 ` Boris Brezillon
2026-06-03 7:43 ` Philipp Stanner
2026-06-03 9:07 ` Philipp Stanner
2026-06-03 9:26 ` Alice Ryhl
2026-06-03 9:36 ` Philipp Stanner
2026-06-03 9:52 ` Boris Brezillon
2026-06-03 9:58 ` Boris Brezillon
2026-06-03 10:07 ` Philipp Stanner
2026-06-03 11:22 ` Boris Brezillon
2026-06-03 11:49 ` Philipp Stanner
2026-06-03 13:35 ` Boris Brezillon
2026-06-03 15:57 ` Danilo Krummrich [this message]
2026-06-03 16:34 ` Boris Brezillon
2026-06-03 19:43 ` Philipp Stanner
2026-06-03 16:51 ` Boris Brezillon
2026-05-30 15:16 ` Danilo Krummrich
2026-06-01 8:46 ` Philipp Stanner
2026-06-01 10:13 ` Danilo Krummrich
2026-06-01 10:36 ` Alice Ryhl
2026-06-01 10:59 ` Boris Brezillon
2026-06-01 11:17 ` Philipp Stanner
2026-06-01 12:35 ` Boris Brezillon
2026-06-01 12:26 ` Philipp Stanner
2026-06-01 12:39 ` Alice Ryhl
2026-06-01 12:47 ` Philipp Stanner
2026-06-01 13:22 ` Alice Ryhl
2026-06-01 13:23 ` Philipp Stanner
2026-06-01 13:27 ` Alice Ryhl
2026-06-01 12:37 ` Boris Brezillon
2026-06-03 16:41 ` Daniel Almeida
2026-06-03 17:14 ` Boris Brezillon
2026-06-04 0:43 ` Daniel Almeida
2026-06-04 8:15 ` Boris Brezillon
2026-06-05 7:56 ` Philipp Stanner
2026-06-05 16:00 ` Daniel Almeida
2026-06-05 16:02 ` Daniel Almeida
2026-06-05 15:51 ` Daniel Almeida
2026-05-30 14:35 ` [PATCH 4/4] MAINTAINERS: Add entry for Rust dma-buf Philipp Stanner
2026-05-30 15:20 ` Danilo Krummrich
2026-06-03 15:22 ` [PATCH 0/4] rust / dma_buf: Add abstractions for dma_fence Daniel Almeida
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DIZJD7DXYF5L.2Z7JGH55EMNU2@kernel.org \
--to=dakr@kernel.org \
--cc=aliceryhl@google.com \
--cc=boris.brezillon@collabora.com \
--cc=christian.koenig@amd.com \
--cc=daniel.almeida@collabora.com \
--cc=gary@garyguo.net \
--cc=linux-media@vger.kernel.org \
--cc=ojeda@kernel.org \
--cc=phasta@kernel.org \
--cc=phasta@mailbox.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox