drm/i915/gvt: Move request alloc to dispatch_workload path only
authorfred gao <fred.gao@intel.com>
Tue, 14 Nov 2017 09:09:35 +0000 (17:09 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Tue, 28 Nov 2017 09:24:20 +0000 (17:24 +0800)
commitc3c80f0736bb2767fab983d1ae53252b2ddd405d
tree9946385bece8895b1d9d80ec2c69183ebf91c769
parentbf3a26b3cba59e2eee91cec3de6fdb4e8e670295
drm/i915/gvt: Move request alloc to dispatch_workload path only

Previously the performance is improved through the workload auditing
and shadowing ahead of vGPU scheduling, however, there is the case that
more requests are allocated in submit_context before the previous request
is added, the timeline will hold its seqno which is later.

This patch is to move the request alloc to dispatch_workload function,
where is the same place as request is added.

It will fix the issue of kernel BUG for (timeline->seqno != request->fence.seqno)
check when add_request.

Fixes: 89ea20b930cb ("drm/i915/gvt: Factor out scan and shadow from workload dispatch")
Signed-off-by: Chuanxiao Dong <chuanxiao.dong@intel.com>
Signed-off-by: fred gao <fred.gao@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
(cherry picked from commit f2880e04f3a5419366926182fc97a3c2e4fd8f2a)
drivers/gpu/drm/i915/gvt/execlist.c
drivers/gpu/drm/i915/gvt/scheduler.c
drivers/gpu/drm/i915/gvt/scheduler.h