1. 17 Jun, 2022 1 commit
    • Tvrtko Ursulin's avatar
      drm/i915: Improve user experience and driver robustness under SIGINT or similar · 45c64ecf
      Tvrtko Ursulin authored
      We have long standing customer complaints that pressing Ctrl-C (or to the
      effect of) causes engine resets with otherwise well behaving programs.
      
      Not only is logging engine resets during normal operation not desirable
      since it creates support incidents, but more fundamentally we should avoid
      going the engine reset path when we can since any engine reset introduces
      a chance of harming an innocent context.
      
      Reason for this undesirable behaviour is that the driver currently does
      not distinguish between banned contexts and non-persistent contexts which
      have been closed.
      
      To fix this we add the distinction between the two reasons for revoking
      contexts, which then allows the strict timeout only be applied to banned,
      while innocent contexts (well behaving) can preempt cleanly and exit
      without triggering the engine reset path.
      
      Note that the added context exiting category applies both to closed non-
      persistent context, and any exiting context when hangcheck has been
      disabled by the user.
      
      At the same time we rename the backend operation from 'ban' to 'revoke'
      which more accurately describes the actual semantics. (There is no ban at
      the backend level since banning is a concept driven by the scheduling
      frontend. Backends are simply able to revoke a running context so that
      is the more appropriate name chosen.)
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Reviewed-by: default avatarAndrzej Hajda <andrzej.hajda@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220527072452.2225610-1-tvrtko.ursulin@linux.intel.com
      45c64ecf
  2. 15 Jun, 2022 1 commit
  3. 14 Jun, 2022 1 commit
  4. 09 Jun, 2022 1 commit
    • Matt Roper's avatar
      drm/i915/pvc: Add register steering · e0d7371b
      Matt Roper authored
      Ponte Vecchio no longer has MSLICE or LNCF steering, but the bspec does
      document several new types of multicast register ranges.  Fortunately,
      most of the different MCR types all provide valid values at instance
      (0,0) so there's no need to read fuse registers and calculate a
      non-terminated instance.  We'll lump all of those range types (BSLICE,
      HALFBSLICE, TILEPSMI, CC, and L3BANK) into a single category called
      "INSTANCE0" to keep things simple.  We'll also perform explicit steering
      for each of these multicast register types, even if the implicit
      steering setup for COMPUTE/DSS ranges would have worked too; this is
      based on guidance from our hardware architects who suggested that we
      move away from implicit steering and start explicitly steer all MCR
      register accesses on modern platforms (we'll work on transitioning
      COMPUTE/DSS to explicit steering in the future).
      
      Note that there's one additional MCR range type defined in the bspec
      (SQIDI) that we don't handle here.  Those ranges use a different
      steering control register that we never touch; since instance 0 is also
      always a valid setting there, we can just ignore those ranges.
      
      Finally, we'll rename the HAS_MSLICES() macro to HAS_MSLICE_STEERING().
      PVC hardware still has units referred to as mslices, but there's no
      register steering based on mslice for this platform.
      
      v2:
       - Rebase on other recent changes
       - Swap two table rows to keep table sorted & easy to read.  (Harish)
      
      Bspec: 67609
      Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: default avatarHarish Chegondi <harish.chegondi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20220608170700.4026648-1-matthew.d.roper@intel.com
      e0d7371b
  5. 08 Jun, 2022 4 commits
  6. 07 Jun, 2022 2 commits
  7. 03 Jun, 2022 1 commit
  8. 02 Jun, 2022 7 commits
  9. 31 May, 2022 2 commits
  10. 27 May, 2022 1 commit
  11. 26 May, 2022 5 commits
  12. 25 May, 2022 1 commit
  13. 24 May, 2022 7 commits
  14. 23 May, 2022 1 commit
  15. 20 May, 2022 5 commits