GVT Scheduler

Julian Stecklina julian.stecklina at cyberus-technology.de
Tue Sep 29 13:03:31 UTC 2020


Hello everyone!

I'm currently trying to understand the GVT scheduler (gvt/scheduler.c) better.
I'm specifically trying to understand how the shadow_context_status_change()
callback is synchronized with other code that modifies the current_workload
array. I would be very grateful, if someone has a couple of minutes to shed some
light here. :)

Can shadow_context_status_change[1] run concurrently with other code that
modifies scheduler->current_workload[ring_id]? I see other functions holding
gvt->sched_lock, but the callback does not.

If sched_lock is not required in the callback, what currently prevents
concurrent exection, e.g. with workload_thread()?

Thanks!
Julian

[1] 
https://elixir.bootlin.com/linux/v5.9-rc7/source/drivers/gpu/drm/i915/gvt/scheduler.c#L268




More information about the intel-gvt-dev mailing list