1. 08 6月, 2017 7 次提交
  2. 30 3月, 2017 5 次提交
  3. 21 3月, 2017 1 次提交
  4. 17 3月, 2017 1 次提交
    • C
      drm/i915: make context status notifier head be per engine · 3fc03069
      Changbin Du 提交于
      GVTg has introduced the context status notifier to schedule the GVTg
      workload. At that time, the notifier is bound to GVTg context only,
      so GVTg is not aware of host workloads.
      
      Now we are going to improve GVTg's guest workload scheduler policy,
      and add Guc emulation support for new Gen graphics. Both these two
      features require acknowledgment for all contexts running on hardware.
      (But will not alter host workload.) So here try to make some change.
      
      The change is simple:
        1. Move the context status notifier head from i915_gem_context to
           intel_engine_cs. Which means there is a notifier head per engine
           instead of per context. Execlist driver still call notifier for
           each context sched-in/out events of current engine.
        2. At GVTg side, it binds a notifier_block for each physical engine
           at GVTg initialization period. Then GVTg can hear all context
           status events.
      
      In this patch, GVTg do nothing for host context event, but later
      will add a function there. But in any case, the notifier callback is
      a noop if this is no active vGPU.
      
      Since intel_gvt_init() is called at early initialization stage and
      require the status notifier head has been initiated, I initiate it in
      intel_engine_setup().
      
      v2: remove a redundant newline. (chris)
      
      Fixes: 3c7ba635 ("drm/i915: Introduce execlist context status change notification")
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100232Signed-off-by: NChangbin Du <changbin.du@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Cc: Zhi Wang <zhi.a.wang@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170313024711.28591-1-changbin.du@intel.comAcked-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      3fc03069
  5. 24 2月, 2017 1 次提交
  6. 23 2月, 2017 2 次提交
  7. 17 2月, 2017 2 次提交
    • M
      drm/i915/gvt: introduced failsafe mode into vgpu · fd64be63
      Min He 提交于
      New failsafe mode is introduced, when we detect guest not supporting
      GVT-g.
      In failsafe mode, we will ignore all the MMIO and cfg space read/write
      from guest.
      
      This patch can fix the issue that when guest kernel or graphics driver
      version is too low, there will be a lot of kernel traces in host.
      
      V5: rebased onto latest gvt-staging
      V4: changed coding style by Zhenyu and Ping's advice
      V3: modified coding style and error messages according to Zhenyu's comment
      V2: 1) implemented MMIO/GTT/WP pages read/write logic; 2) used a unified
      function to enter failsafe mode
      Signed-off-by: NMin He <min.he@intel.com>
      Signed-off-by: NPei Zhang <pei.zhang@intel.com>
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      fd64be63
    • Z
      drm/i915/gvt: Fix check error on opregion.c · f655e67a
      Zhenyu Wang 提交于
      As we switched to memremap for opregion, shouldn't use any __iomem
      for that, and move to use memcpy instead.
      
      This fixed static check errors for:
      
        CHECK   drivers/gpu/drm/i915//gvt/opregion.c
        drivers/gpu/drm/i915//gvt/opregion.c:142:31: warning: incorrect type in argument 1 (different address spaces)
        drivers/gpu/drm/i915//gvt/opregion.c:142:31:    expected void *addr
        drivers/gpu/drm/i915//gvt/opregion.c:142:31:    got void [noderef] <asn:2>*opregion_va
        drivers/gpu/drm/i915//gvt/opregion.c:160:35: warning: incorrect type in assignment (different address spaces)
        drivers/gpu/drm/i915//gvt/opregion.c:160:35:    expected void [noderef] <asn:2>*opregion_va
        drivers/gpu/drm/i915//gvt/opregion.c:160:35:    got void *
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      f655e67a
  8. 13 1月, 2017 5 次提交
    • C
      drm/i915/gvt: fix vGPU instance reuse issues by vGPU reset function · cfe65f40
      Changbin Du 提交于
      Our function tests found several issues related to reusing vGPU
      instance. They are qemu reboot failure, guest tdr after reboot, host
      hang when reboot guest. All these issues are caused by dirty status
      inherited from last VM.
      
      This patch fix all these issues by resetting a virtual GPU before VM
      use it. The reset logical is put into a low level function
      _intel_gvt_reset_vgpu(), which supports Device Model Level Reset, Full
      GT Reset and Per-Engine Reset.
      
      vGPU Device Model Level Reset (DMLR) simulates the PCI reset to reset
      the whole vGPU to default state as when it is created, including GTT,
      execlist, scratch pages, cfg space, mmio space, pvinfo page, scheduler
      and fence registers. The ultimate goal of vGPU DMLR is that reuse a
      vGPU instance by different virtual machines. When we reassign a vGPU
      to a virtual machine we must issue such reset first.
      
      Full GT Reset and Per-Engine GT Reset are soft reset flow for GPU engines
      (Render, Blitter, Video, Video Enhancement). It is defined by GPU Spec.
      Unlike the FLR, GT reset only reset particular resource of a vGPU per
      the reset request. Guest driver can issue a GT reset by programming
      the virtual GDRST register to reset specific virtual GPU engine or all
      engines.
      
      Since vGPU DMLR and GT reset can share some code so we implement both
      these two into one single function intel_gvt_reset_vgpu_locked(). The
      parameter dmlr is to identify if we will do FLR or GT reset. The
      parameter engine_mask is to specific the engines that need to be
      resetted. If value ALL_ENGINES is given for engine_mask, it means
      the caller requests a full gt reset that we will reset all virtual
      GPU engines.
      Signed-off-by: NChangbin Du <changbin.du@intel.com>
      Reviewed-by: NJike Song <jike.song@intel.com>
      Reviewed-by: NKevin Tian <kevin.tian@intel.com>
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      cfe65f40
    • C
      drm/i915/gvt: move mmio init/clean function to mmio.c · cdcc4347
      Changbin Du 提交于
      Move the mmio space inititation function setup_vgpu_mmio()
      and cleanup function clean_vgpu_mmio() in vgpu.c to dedicated
      source file mmio.c, and rename them as intel_vgpu_init_mmio()
      and intel_vgpu_clean_mmio() respectively.
      Signed-off-by: NChangbin Du <changbin.du@intel.com>
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      cdcc4347
    • C
      drm/i915/gvt: introduce intel_vgpu_reset_cfg_space to reset configuration space · c64ff6c7
      Changbin Du 提交于
      This patch introduces a new function intel_vgpu_reset_cfg_space()
      to reset vGPU configuration space. This function will unmap gttmmio
      and aperture if they are mapped before. Then entire cfg space will
      be restored to default values.
      
      Currently we only do such reset when vGPU is not owned by any VM
      so we simply restore entire cfg space to default value, not following
      the PCIe FLR spec that some fields should remain unchanged.
      Signed-off-by: NChangbin Du <changbin.du@intel.com>
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      c64ff6c7
    • C
      drm/i915/gvt: move cfg space inititation function to cfg_space.c · 536fc234
      Changbin Du 提交于
      Move the configuration space inititation function setup_vgpu_cfg_space()
      in vgpu.c to dedicated source file cfg_space.c, and rename the function
      as intel_vgpu_init_cfg_space().
      Signed-off-by: NChangbin Du <changbin.du@intel.com>
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      536fc234
    • C
      drm/i915/gvt: introudce intel_vgpu_reset_resource() to reset vgpu resource state · d22a48bf
      Changbin Du 提交于
      This patch introudces a new function intel_vgpu_reset_resource() to
      reset allocated vgpu resources by intel_vgpu_alloc_resource(). So far
      we only need clear the fence registers. The function _clear_vgpu_fence()
      will reset both virtual and physical fence registers to 0.
      Signed-off-by: NChangbin Du <changbin.du@intel.com>
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      d22a48bf
  9. 26 12月, 2016 1 次提交
  10. 16 12月, 2016 1 次提交
  11. 24 11月, 2016 1 次提交
  12. 10 11月, 2016 3 次提交
  13. 27 10月, 2016 1 次提交
  14. 20 10月, 2016 2 次提交
  15. 14 10月, 2016 7 次提交