]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i915/gvt: enter failsafe mode when guest requires more resources
authorMin He <min.he@intel.com>
Fri, 17 Feb 2017 08:42:38 +0000 (16:42 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Thu, 23 Feb 2017 09:32:13 +0000 (17:32 +0800)
Windows guest will notitfy GVT-g to request more resources through g2v
interface, when its resources are not enough.
This patch is to handle this case and let vgpu enter failsafe mode to
avoid too many error messages.

Signed-off-by: Min He <min.he@intel.com>
Signed-off-by: Pei Zhang <pei.zhang@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
drivers/gpu/drm/i915/gvt/gvt.h
drivers/gpu/drm/i915/gvt/handlers.c

index 48ef0771d772c89f05d0b0f8271e7787f38197c9..a41b322d8957dd10984a31df1a8980be1a8da9a8 100644 (file)
@@ -453,6 +453,7 @@ struct intel_gvt_ops {
 
 enum {
        GVT_FAILSAFE_UNSUPPORTED_GUEST,
+       GVT_FAILSAFE_INSUFFICIENT_RESOURCE,
 };
 
 #include "mpt.h"
index fd7e789a72c3177fa32aaa42a2fe7b18571f0de9..e1a3826451123fa4ff5cdae3c26082357108a871 100644 (file)
@@ -157,6 +157,8 @@ static void enter_failsafe_mode(struct intel_vgpu *vgpu, int reason)
        case GVT_FAILSAFE_UNSUPPORTED_GUEST:
                pr_err("Detected your guest driver doesn't support GVT-g.\n");
                break;
+       case GVT_FAILSAFE_INSUFFICIENT_RESOURCE:
+               pr_err("Graphics resource is not enough for the guest\n");
        default:
                break;
        }
@@ -1106,6 +1108,9 @@ static int pvinfo_mmio_write(struct intel_vgpu *vgpu, unsigned int offset,
        case _vgtif_reg(execlist_context_descriptor_lo):
        case _vgtif_reg(execlist_context_descriptor_hi):
                break;
+       case _vgtif_reg(rsv5[0])..._vgtif_reg(rsv5[3]):
+               enter_failsafe_mode(vgpu, GVT_FAILSAFE_INSUFFICIENT_RESOURCE);
+               break;
        default:
                gvt_err("invalid pvinfo write offset %x bytes %x data %x\n",
                                offset, bytes, data);