1. 15 Aug, 2017 3 commits
    • Tina Zhang's avatar
      drm/i915/gvt: Fix guest i915 full ppgtt blocking issue · 6b3816d6
      Tina Zhang authored
      Guest i915 full ppgtt functionality was blocking by an issue, which would
      lead to gpu hardware hang. Guest i915 driver may update the ppgtt table
      just before this workload is going to be submitted to the hardware by
      device model. This case wasn't handled well by device model before, due
      to the small time window between removing old ppgtt entry and adding the
      new one. Errors occur when the workload is executed by hardware during
      that small time window. This patch is to remove this time window by adding
      the new ppgtt entry first and then remove the old one.
      
      Changes in v2:
      - Move VGT_CAPS_FULL_PPGTT introduction to patch 2/4. (Joonas)
      
      Changes since v2:
      - Divide the whole patch set into two separate patch series, with one
        patch in i915 side to check guest i915 full ppgtt capability and enable
        it when this capability is supported by the device model, and the other
        one in gvt side which fixs the blocking issue and enables the device
        model to provide the capability to guest. And this patch focuses on gvt
        side. (Joonas)
      - Change the title from "reorder the shadow ppgtt update process by adding
        entry first" to "Fix guest i915 full ppgtt blocking issue". (Tina)
      
      Changes since v3:
      - Rebase to the latest branch.
      
      Changes since v4:
      - Tested by Tina Zhang.
      
      Changes since v5:
      - Rebase to the latest branch.
      
      v6:
      - Update full 48bit ppgtt definition
      
      Cc: Tina Zhang <tina.zhang@intel.com>
      Signed-off-by: default avatarTina Zhang <tina.zhang@intel.com>
      Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
      6b3816d6
    • Tina Zhang's avatar
      drm/i915: Enable guest i915 full ppgtt functionality · 8a4ab66f
      Tina Zhang authored
      Enable the guest i915 full ppgtt functionality when host can provide this
      capability. vgt_caps is introduced to guest i915 driver to get the vgpu
      capabilities from the device model. VGT_CPAS_FULL_PPGTT is one of the
      capabilities type to let guest i915 dirver know that the guest i915 full
      ppgtt is supported by device model.
      
      Notice that the minor version of pvinfo isn't bumped because of this
      vgt_caps introduction, due to older guest would be broken by simply
      increasing the pvinfo version. Although the pvinfo minor version doesn't
      increase, the compatibility won't be blocked. The compatibility is ensured
      by checking the value of caps field in pvinfo. Zero means no full ppgtt
      support and BIT(2) means this feature is provided.
      
      Changes since v1:
      - Use u32 instead of uint32_t (Joonas)
      - Move VGT_CAPS_FULL_PPGTT introduction to this patch and use #define
        instead of enum (Joonas)
      - Rewrite the vgpu full ppgtt capability checking logic. (Joonas)
      - Some coding style refine. (Joonas)
      
      Changes since v2:
      - Divide the whole patch set into two separate patch series, with one
        patch in i915 side to check guest i915 full ppgtt capability and enable
        it when this capability is supported by the device model, and the other
        one in gvt side which fixs the blocking issue and enables the device
        model to provide the capability to guest. And this patch focuses on guest
        i915 side. (Joonas)
      - Change the title from "introduce vgt_caps to pvinfo" to
        "Enable guest i915 full ppgtt functionality". (Tina)
      
      Change since v3:
      - Add some comments about pvinfo caps and version. (Joonas)
      
      Change since v4:
      - Tested by Tina Zhang.
      
      Change since v5:
      - Add limitation about supporting 32bit full ppgtt.
      
      Change since v6:
      - Change the fallback to 48bit full ppgtt if i915.ppgtt_enable=2. (Zhenyu)
      
      Change in v9:
      - Remove the fixme comment due to no plan for 32bit full ppgtt
        support. (Zhenyu)
      - Reorder the patch-set to fix compiling issue with git-bisect. (Zhenyu)
      - Add print log when forcing guest 48bit full ppgtt. (Zhenyu)
      
      v10:
      - Update against Joonas's has_full_ppgtt and has_full_48bit_ppgtt disconnect
        change. (Zhenyu)
      
      Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> # in v2
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Tina Zhang <tina.zhang@intel.com>
      Signed-off-by: default avatarTina Zhang <tina.zhang@intel.com>
      Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
      8a4ab66f
    • Joonas Lahtinen's avatar
      drm/i915: Disconnect 32 and 48 bit ppGTT support · 4fc05063
      Joonas Lahtinen authored
      Configurations like virtualized environments may support only 48 bit
      ppGTT without supporting 32 bit ppGTT. Support this by disconnecting
      the relationship of the two feature bits.
      
      Cc: Tina Zhang <tina.zhang@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Zhi Wang <zhi.a.wang@intel.com>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
      4fc05063
  2. 10 Aug, 2017 13 commits
  3. 31 Jul, 2017 1 commit
  4. 28 Jul, 2017 2 commits
  5. 27 Jul, 2017 21 commits