Am 14.04.25 um 16:27 schrieb Danilo Krummrich:
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.