mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-30 08:02:30 +00:00
drm/i915/gvt: Kick scheduler when new workload queued
The current schedule policy rely on a 1ms timer to execute workload. This can introduce maximum 1ms unnecessary latency. This is especially bad for small media workloads. And I don't think we need this timer for QoS, but the change is not simply remove the code. So I made a new API intel_gvt_kick_schedule() for future change. Signed-off-by: Changbin Du <changbin.du@intel.com> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
This commit is contained in:
parent
59a716c647
commit
c130456cef
3 changed files with 8 additions and 0 deletions
|
@ -372,6 +372,11 @@ void intel_vgpu_start_schedule(struct intel_vgpu *vgpu)
|
|||
vgpu->gvt->scheduler.sched_ops->start_schedule(vgpu);
|
||||
}
|
||||
|
||||
void intel_gvt_kick_schedule(struct intel_gvt *gvt)
|
||||
{
|
||||
intel_gvt_request_service(gvt, INTEL_GVT_REQUEST_EVENT_SCHED);
|
||||
}
|
||||
|
||||
void intel_vgpu_stop_schedule(struct intel_vgpu *vgpu)
|
||||
{
|
||||
struct intel_gvt_workload_scheduler *scheduler =
|
||||
|
|
|
@ -57,4 +57,6 @@ void intel_vgpu_start_schedule(struct intel_vgpu *vgpu);
|
|||
|
||||
void intel_vgpu_stop_schedule(struct intel_vgpu *vgpu);
|
||||
|
||||
void intel_gvt_kick_schedule(struct intel_gvt *gvt);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1337,5 +1337,6 @@ void intel_vgpu_queue_workload(struct intel_vgpu_workload *workload)
|
|||
{
|
||||
list_add_tail(&workload->list,
|
||||
workload_q_head(workload->vgpu, workload->ring_id));
|
||||
intel_gvt_kick_schedule(workload->vgpu->gvt);
|
||||
wake_up(&workload->vgpu->gvt->scheduler.waitq[workload->ring_id]);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue