From: "Christian König" <christian.koenig@amd.com>
To: Daniel Vetter <daniel@ffwll.ch>, Dave Airlie <airlied@gmail.com>
Cc: Asahi Lina <lina@asahilina.net>,
alyssa@rosenzweig.io, Sumit Semwal <sumit.semwal@linaro.org>,
Faith Ekstrand <faith.ekstrand@collabora.com>,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
linux-media@vger.kernel.org, asahi@lists.linux.dev,
Luben Tuikov <ltuikov89@gmail.com>
Subject: Re: [PATCH 2/3] drm/scheduler: Fix UAF in drm_sched_fence_get_timeline_name
Date: Thu, 2 Nov 2023 11:48:25 +0100 [thread overview]
Message-ID: <5438c132-e127-4456-9551-42c76fb521dd@amd.com> (raw)
In-Reply-To: <CAKMK7uG0G02ierkgAmJE1gfLto08LK5twGUEX1qN+qk9-AavYA@mail.gmail.com>
Am 01.11.23 um 09:13 schrieb Daniel Vetter:
> On Wed, 1 Nov 2023 at 07:59, Dave Airlie <airlied@gmail.com> wrote:
>>> Well, to make it clear once more: Signaling a dma_fence from the
>>> destructor of a reference counted object is very problematic! This will
>>> be rejected no matter if you do that in C or in Rust.
>>>
>>> What we can do is to make it safe in the sense that you don't access
>>> freed up memory by using the scheduler fences even more as wrapper
>>> around the hardware fence as we do now. But this quite a change and
>>> requires a bit more than just hacking around
>>> drm_sched_fence_get_timeline_name().
>> I really think this needs to be documented if nothing else out of this thread.
>>
>> Clearly nobody is going to get it right and hidden here in this
>> thread, this info isn't useful.
>>
>> Can we have some sort of design document for the dma-fence/scheduler
>> interactions written and we can try and refine it with solutions on
>> the list, because I'm tired of people proposing things and NAK's
>> getting thrown around without anything to point people at.
>>
>> The next NAK I see on the list will mean I block all patches from the
>> sender until they write a documentation patch, because seriously this
>> stuff is too hard for someone to just keep it in their head and expect
>> everyone else to understand from reading the code.
> I very much like the idea that NAK replies are counted as "you've just
> volunteered yourself for some documentation patches so that next time
> around you can reply with a link to the docs instead of just a NAK".
Yeah, that sounds like a great idea to me as well :)
Especially when I can use it to convince managers that we need to have
more work force on writing documentation.
> I don't think we'll get out of these discussions otherwise, since
> currently we have undocumented, but very tricky semantics of the
> drm/sched codebase for ringbuffer scheduling which is extended to fw
> scheduling in also very tricky ways, with not entirely clear impacts
> on semantics of all the drm/sched things. And as a result we just pile
> up enormous amounts of threads where I think the only thing assured is
> that people talk past each another.
The scheduler is certainly the ugliest part, but it's unfortunately
still only the tip of the iceberg.
I have seen at least halve a dozen approach in the last two years where
people tried to signal a dma_fence from userspace or similar.
Fortunately it was mostly prototyping and I could jump in early enough
to stop that, but basically this is a fight against windmills.
I was considering to change the dma_fence semantics so that
dma_fence_signal() could only be called from the interrupt contexts of
devices and then put a big fat WARN_ON(!in_interrupt()) in there.
It's a sledgehammer, but as far as I can see the only thing which might
help. Opinions?
Thanks,
Christian.
>
> Converting NAKs into doc patches should at least eventually get rid of
> the worst confusions we're dealing with here.
>
> Cheers, Sima
next prev parent reply other threads:[~2023-11-02 10:48 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-14 8:21 [PATCH 0/3] DRM scheduler documentation & bug fixes Asahi Lina
2023-07-14 8:21 ` [PATCH 1/3] drm/scheduler: Add more documentation Asahi Lina
2023-07-14 8:40 ` Christian König
2023-07-14 9:39 ` Asahi Lina
2023-07-14 9:47 ` Christian König
2023-07-14 9:51 ` Asahi Lina
2023-07-14 8:21 ` [PATCH 2/3] drm/scheduler: Fix UAF in drm_sched_fence_get_timeline_name Asahi Lina
2023-07-14 8:43 ` Christian König
2023-07-14 9:44 ` Asahi Lina
2023-07-14 9:51 ` Christian König
2023-07-14 10:07 ` Asahi Lina
2023-07-14 10:29 ` Christian König
2023-07-14 9:49 ` Asahi Lina
2023-07-14 9:57 ` Christian König
2023-07-14 10:06 ` Asahi Lina
2023-07-14 10:18 ` Christian König
2023-07-14 12:13 ` Asahi Lina
2023-07-15 4:03 ` Luben Tuikov
2023-07-15 14:14 ` alyssa
2023-07-17 15:55 ` Christian König
2023-07-18 2:35 ` Asahi Lina
2023-07-18 5:45 ` Luben Tuikov
2023-07-21 10:33 ` Asahi Lina
2023-07-31 8:09 ` Christian König
2023-11-01 6:59 ` Dave Airlie
2023-11-01 8:13 ` Daniel Vetter
2023-11-02 10:48 ` Christian König [this message]
2023-11-02 11:19 ` Lucas Stach
2023-11-02 12:39 ` Christian König
2023-07-28 7:48 ` Christian König
2023-07-18 8:21 ` Pekka Paalanen
2023-07-14 8:21 ` [PATCH 3/3] drm/scheduler: Clean up jobs when the scheduler is torn down Asahi Lina
2023-07-15 7:14 ` Luben Tuikov
2023-07-16 7:51 ` Asahi Lina
2023-07-17 17:40 ` Luben Tuikov
2023-07-17 22:45 ` Asahi Lina
2023-07-18 5:14 ` Luben Tuikov
2023-07-19 18:16 ` Konstantin Ryabitsev
2023-07-19 18:58 ` Luben Tuikov
2023-08-02 4:06 ` Matthew Brost
2023-08-02 14:12 ` Luben Tuikov
2023-07-19 8:45 ` Christian König
2023-07-19 15:05 ` Luben Tuikov
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=5438c132-e127-4456-9551-42c76fb521dd@amd.com \
--to=christian.koenig@amd.com \
--cc=airlied@gmail.com \
--cc=alyssa@rosenzweig.io \
--cc=asahi@lists.linux.dev \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=faith.ekstrand@collabora.com \
--cc=lina@asahilina.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=ltuikov89@gmail.com \
--cc=sumit.semwal@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox