• Zhenyu Wang's avatar
    drm/i915/gvt: force to set all context control bits from guest · d8303075
    Zhenyu Wang authored
    Our shadow context content is from guest but with masked control reg like
    CTX_CONTEXT_CONTROL, we need to make sure all settings from guest would be set
    when this context is on hw, this trys to force mask enable bits for all to
    ensure every bits setting would be effective on hw.
    
    One regression found related to once inhibit bit is set, gpu engine are working
    on inhibit state until MI_LOAD_REG_IMM command or context image clear inhibit
    bit with mask bit set to 1, and val bit set to 0. In gvt-g currently workload
    has the highest priority, so gvt-g workload could trigger preempt context
    easily, preempt context set inhibit bit, then gvt-g workload is scheduled in,
    but gvt-g workload shadow context image usually doesn't set inhibit mask bit,
    so gpu is still in inhibit state when gvt workload is running. This caused gpu
    hang.
    Suggested-by: default avatarZhang, Xiong <xiong.y.zhang@intel.com>
    Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
    Reviewed-by: default avatarZhang, Xiong <xiong.y.zhang@intel.com>
    d8303075
scheduler.c 37.9 KB