dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* drm scheduler and wq flavours
@ 2024-05-02 14:33 Tvrtko Ursulin
  2024-05-06 23:23 ` Matthew Brost
  0 siblings, 1 reply; 4+ messages in thread
From: Tvrtko Ursulin @ 2024-05-02 14:33 UTC (permalink / raw)
  To: Daniel Vetter, Rob Clark, Matthew Brost; +Cc: dri-devel@lists.freedesktop.org


Hi all,

Continuing after the brief IRC discussion yesterday regarding work 
queues being prone to deadlocks or not, I had a browse around the code 
base and ended up a bit confused.

When drm_sched_init documents and allocates an *ordered* wq, if no 
custom one was provided, could someone remind me was the ordered 
property fundamental for something to work correctly? Like run_job vs 
free_job ordering?

I ask because it appears different drivers to different things and at 
the moment it looks we have all possible combos or ordered/unordered, 
bound and unbound, shared or not shared with the timeout wq, or even 
unbound for the timeout wq.

The drivers worth looking at in this respect are probably nouveau, 
panthor, pvr and xe.

Nouveau also talks about a depency betwen run_job and free_job and goes 
to create two unordered wqs.

Then xe looks a bit funky with the workaround/hack for lockep where it 
creates 512 work queues and hands them over to user queues in 
round-robin fashion. (Instead of default 1:1.) Which I suspect is a 
problem which should be applicable for any 1:1 driver given a thorough 
enough test suite.

So anyway.. ordered vs unordered - drm sched dictated or at driver's choice?

Regards,

Tvrtko

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-05-08 19:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-02 14:33 drm scheduler and wq flavours Tvrtko Ursulin
2024-05-06 23:23 ` Matthew Brost
2024-05-07  9:09   ` Tvrtko Ursulin
2024-05-08 19:07     ` Matthew Brost

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox