KVM/VFIO GVT-g broken on 5.4.0-rc8?

Zhenyu Wang zhenyuw at linux.intel.com
Thu Nov 21 05:45:25 UTC 2019


On 2019.11.20 21:35:44 -0700, Alex Williamson wrote:
> I was trying to test John Hubbard's latest gup series[1] with GVT-g,
> but I'm unable to run a Windows 10 VM with a i915-GVTg_V4_2 on
> af42d3466bdc ("Linux 5.4-rc8").  The host kernel prints:
> 
> [   64.402671] gvt: len is not valid:  len=11  valid_len=3
> [   64.407932] gvt: vgpu 2: MI_OP_2F handler error
> [   64.412502] gvt: vgpu 2: cmd parser error
> [   64.416591] 0x0 
> [   64.416592] 0x2f 
> 
> [   64.421930] gvt: vgpu 2: scan wa ctx error
> [   64.426088] GVT Internal error  for the guest
> [   64.430486] Now vgpu 2 will enter failsafe mode.
> [   64.435179] gvt: vgpu 2: failed to submit desc 0
> [   64.439853] gvt: vgpu 2: fail submit workload on ring 0
> [   64.445125] gvt: vgpu 2: fail to emulate MMIO write 00002230 len 4
> [  103.522117] gvt: len is not valid:  len=11  valid_len=3
> [  103.527419] gvt: vgpu 2: MI_OP_2F handler error
> [  103.532004] gvt: vgpu 2: cmd parser error
> [  103.536062] 0x0 
> [  103.536063] 0x2f 
> 
> [  103.541342] gvt: vgpu 2: scan wa ctx error
> [  103.545466] GVT Internal error  for the guest
> [  103.549863] Now vgpu 2 will enter failsafe mode.
> [  103.554502] gvt: vgpu 2: failed to submit desc 0
> [  103.559156] gvt: vgpu 2: fail submit workload on ring 0
> [  103.564388] gvt: vgpu 2: fail to emulate MMIO write 00002230 len 4
> 
> And the VM reboots before reaching the desktop, possibly with a BSOD.
> The same VM configuration works on host kernel 5.3.11-200.fc30.x86_64.
> Device manager reports HD Graphics 5500 driver version 20.19.15.4624,
> which was installed by Windows update.  Thanks,
> 

Hi, Alex, looks this windows driver is old which utilized MI_ATOMIC command
that trigger bug in gvt driver, when we validated newer version which doesn't
use that command anymore so we didn't catch that.

Could you help to try below one? Sorry for inconvenience..

From 9cc476838deecf54eee92cb03ab12821cd0b7c38 Mon Sep 17 00:00:00 2001
From: Zhenyu Wang <zhenyuw at linux.intel.com>
Date: Thu, 21 Nov 2019 13:37:09 +0800
Subject: [PATCH] drm/i915/gvt: Fix cmd length check for MI_ATOMIC

Correct valid command length check for MI_ATOMIC, need to check inline
data available field instead of operand data length for whole command.

Fixes: 00a33be40634 ("drm/i915/gvt: Add valid length check for MI variable commands")
Cc: stable at vger.kernel.org
Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>
---
 drivers/gpu/drm/i915/gvt/cmd_parser.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c b/drivers/gpu/drm/i915/gvt/cmd_parser.c
index 6a3ac8cde95d..21a176cd8acc 100644
--- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
+++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
@@ -1599,9 +1599,9 @@ static int cmd_handler_mi_op_2f(struct parser_exec_state *s)
 	if (!(cmd_val(s, 0) & (1 << 22)))
 		return ret;
 
-	/* check if QWORD */
-	if (DWORD_FIELD(0, 20, 19) == 1)
-		valid_len += 8;
+	/* check inline data */
+	if (cmd_val(s, 0) & BIT(18))
+		valid_len = CMD_LEN(9);
 	ret = gvt_check_valid_cmd_length(cmd_length(s),
 			valid_len);
 	if (ret)
-- 
2.24.0

-- 
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/20191121/f666cc9c/attachment.sig>


More information about the intel-gvt-dev mailing list