On Mon, 2025-10-27 at 09:56 -0700, Matthew Brost wrote: > On Mon, Oct 27, 2025 at 12:13:58PM +0100, Philipp Stanner wrote: > > I've got a kernel.org addr by now by the way > > > > On Tue, 2025-10-21 at 14:39 -0700, Matthew Brost wrote: > > > According to the DMA scheduler documentation, once a job is armed, it > > > must be pushed. Drivers should avoid calling the failing code path that > > > attempts to add dependencies after a job has been armed. > > > > > > > Why is that a "failing code path"? > > > > I noticed this after I sent - it should something like: > > 'avoid calling a possible failing code path, which allocates memory.' > > I can make this a bit more clear. > > > The issue with adding callbacks is that adding them to an already > > signaled fence is a bad idea. I'm not sure if it's illegal, though. > > dma_fence_add_cb() merely returns an error then, but the driver could > > in priniciple then execute its cb code itself. > > > > And even if we agree that this is a hard rule that must be followed, > > then drm_sched_job_arm() *might* not be the right place, because just > > because a job is armed doesn't mean that its fence is about to get > > signaled. drm_sched_entity_push_job() would be the critical place. > > > > I think this break our rule once arm is called, push must be called as > adding dependencies can possibly fail. This rule is called out in your > documentation patch too. I've seen 2 driver posted in the past year add > dependencies after arming, so I figured lets catch this misuse in the > scheduler.
We can establish that as a rule, I'm OK with that. P.
