On Mon, Apr 14, 2025 at 10:54:25AM +0200, Philipp Stanner wrote:
@Danilo:
We have now 2 possible solutions for the firing WARN_ON floating.
Version A (Christian)
Check in nouveau_fence_context_kill() whether a fence is already
signaled before setting an error.
Version B (Me)
This patch series here. Make sure that in Nouveau, only
nouveau_fence_signal() signals fences.
Both should do the trick. Please share a maintainer-preference so I can
move on here.
Thanks for working on this Philipp.
If you don't want to rework things entirely, A seems to be superior, since it
also catches the case when someone else would call dma_fence_is_signaled() on a
nouveau fence (which could happen at any time). This doesn't seem to be caught
by B, right?
Correct, yes. I would also keep it as simple as possible for backporting this bug fix.
On the other hand a rework is certainly appropriate including both nouveau as well as the DMA-fence calling rules. Especially that the DMA-fence framework calls the signaled callback with inconsistent locking is something we should fix.
Regards,
Christian.