[PATCH] drm/i915/gvt: support MI_SEMAPHORE_WAIT
Zhenyu Wang
zhenyuw at linux.intel.com
Mon Mar 25 06:50:22 UTC 2019
On 2019.03.25 02:15:14 -0400, Yan Zhao wrote:
> in linux 5.0, i915 driver now uses MI_SEMAPHORE_WAIT to sync requests.
Not in 5.0 kernel, but currently in drm-intel-next which should go for 5.2 kernel.
> GVT-g should add support for this command now
"otherwise i915 guest would fail in GVT cmd parser which caused guest VM failure."
>
> Signed-off-by: Yan Zhao <yan.y.zhao at intel.com>
> ---
> drivers/gpu/drm/i915/gvt/cmd_parser.c | 25 ++++++++++++++++++++++++-
> 1 file changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c b/drivers/gpu/drm/i915/gvt/cmd_parser.c
> index a16e527e9f02..e98f0a0d3083 100644
> --- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
> +++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
> @@ -1538,7 +1538,30 @@ static int cmd_handler_mi_store_data_imm(struct parser_exec_state *s)
>
> static int cmd_handler_mi_semaphore_wait(struct parser_exec_state *s)
> {
> - return unexpected_cmd(s);
> + unsigned long gma, gma_high;
> + int ret = 0;
> + int cmd_len = cmd_length(s);
> + struct intel_vgpu *vgpu = s->vgpu;
> + int gma_len = sizeof(u32);
> +
> + if (cmd_len != 4 && cmd_len != 5) {
> + gvt_vgpu_err("Illegal cmd length %d\n", cmd_len);
> + return -EINVAL;
> + }
> +
> + /* ppgtt is always safe */
> + if (!(cmd_val(s, 0) & (1 << 22)))
> + return ret;
> +
> + gma = cmd_val(s, 2) & GENMASK(31, 0);
> + if (cmd_len == 5) {
> + gma_high = cmd_val(s, 3) & GENMASK(31, 0);
> + gma = (gma_high << 32) | gma;
> + gma_len = sizeof(u64);
> + }
> + ret = cmd_address_audit(s, gma, gma_len, false);
> + return ret;
> +
> }
>
> static int cmd_handler_mi_report_perf_count(struct parser_exec_state *s)
> --
> 2.17.1
>
> _______________________________________________
> intel-gvt-dev mailing list
> intel-gvt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev
--
Open Source Technology Center, Intel ltd.
$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gvt-dev/attachments/20190325/4236fd29/attachment.sig>
More information about the intel-gvt-dev
mailing list