** Description changed:

- CNL-Y SDP machine hangs soon after the system has booted up, and needs
- this from drm-intel-next-queued to fix it:
+ CNL-Y SDP machine hangs soon after logging in, and needs this from
+ intel-gfx list:
  
- commit 61bf9719fa170cd73b1937770d08cb062e070958
- Author: Mika Kuoppala <mika.kuopp...@linux.intel.com>
- Date:   Thu Apr 12 17:58:02 2018 +0300
+ Author: Chris Wilson <ch...@chris-wilson.co.uk>
+ Date:   Tue May 8 13:15:00 2018 +0300
  
-     drm/i915/cnl: Use mmio access to context status buffer
+     drm/i915/execlists: Use rmb() to order CSB reads
      
-     Evidence indicates that Cannonlake HWSP is not coherent
-     as it should. Revert to using mmio access for now.
+     We assume that the CSB is written using the normal ringbuffer
+     coherency protocols, as outlined in kernel/events/ring_buffer.c:
      
-     Testcase: igt/gem_ctx_switch
+         *   (HW)                              (DRIVER)
+         *
+         *   if (LOAD ->data_tail) {            LOAD ->data_head
+         *                      (A)             smp_rmb()       (C)
+         *      STORE $data                     LOAD $data
+         *      smp_wmb()       (B)             smp_mb()        (D)
+         *      STORE ->data_head               STORE ->data_tail
+         *   }
+     
+     So we assume that the HW fulfils it's ordering requirements, and so we
+     should use a complimentary rmb() to ensure that our read of its WRITE
+     pointer is completed before we start accessing the data.
+     
+     The final mb() is implied by the uncached mmio we perform to inform the
+     HW of our READ pointer.
+     
+     References: https://bugs.freedesktop.org/show_bug.cgi?id=105064
      References: https://bugs.freedesktop.org/show_bug.cgi?id=105888
-     Cc: Chris Wilson <ch...@chris-wilson.co.uk>
+     References: https://bugs.freedesktop.org/show_bug.cgi?id=106185
+     References: 61bf9719fa17 ("drm/i915/cnl: Use mmio access to context 
status buffer")
+     Suggested-by: Mika Kuoppala <mika.kuopp...@linux.intel.com>
+     Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
+     Cc: Mika Kuoppala <mika.kuopp...@linux.intel.com>
+     Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
+     Cc: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
+     Cc: Michał Winiarski <michal.winiar...@intel.com>
      Cc: Rafael Antognolli <rafael.antogno...@intel.com>
-     Cc: Rodrigo Vivi <rodrigo.v...@intel.com>
-     Signed-off-by: Mika Kuoppala <mika.kuopp...@linux.intel.com>
-     Acked-by: Chris Wilson <ch...@chris-wilson.co.uk>
-     Link: 
https://patchwork.freedesktop.org/patch/msgid/20180412145802.23313-1-mika.kuopp...@linux.intel.com
+     Cc: Michel Thierry <michel.thie...@intel.com>
+     Cc: Timo Aaltonen <tjaal...@ubuntu.com>
+     Signed-off-by: Timo Aaltonen <timo.aalto...@canonical.com>

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux-oem in Ubuntu.
https://bugs.launchpad.net/bugs/1769843

Title:
  [i915 CNL-Y] system hangs soon after bootup

Status in linux-oem package in Ubuntu:
  Invalid
Status in linux-oem source package in Bionic:
  In Progress

Bug description:
  CNL-Y SDP machine hangs soon after logging in, and needs this from
  intel-gfx list:

  Author: Chris Wilson <ch...@chris-wilson.co.uk>
  Date:   Tue May 8 13:15:00 2018 +0300

      drm/i915/execlists: Use rmb() to order CSB reads
      
      We assume that the CSB is written using the normal ringbuffer
      coherency protocols, as outlined in kernel/events/ring_buffer.c:
      
          *   (HW)                              (DRIVER)
          *
          *   if (LOAD ->data_tail) {            LOAD ->data_head
          *                      (A)             smp_rmb()       (C)
          *      STORE $data                     LOAD $data
          *      smp_wmb()       (B)             smp_mb()        (D)
          *      STORE ->data_head               STORE ->data_tail
          *   }
      
      So we assume that the HW fulfils it's ordering requirements, and so we
      should use a complimentary rmb() to ensure that our read of its WRITE
      pointer is completed before we start accessing the data.
      
      The final mb() is implied by the uncached mmio we perform to inform the
      HW of our READ pointer.
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=105064
      References: https://bugs.freedesktop.org/show_bug.cgi?id=105888
      References: https://bugs.freedesktop.org/show_bug.cgi?id=106185
      References: 61bf9719fa17 ("drm/i915/cnl: Use mmio access to context 
status buffer")
      Suggested-by: Mika Kuoppala <mika.kuopp...@linux.intel.com>
      Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
      Cc: Mika Kuoppala <mika.kuopp...@linux.intel.com>
      Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
      Cc: Michał Winiarski <michal.winiar...@intel.com>
      Cc: Rafael Antognolli <rafael.antogno...@intel.com>
      Cc: Michel Thierry <michel.thie...@intel.com>
      Cc: Timo Aaltonen <tjaal...@ubuntu.com>
      Signed-off-by: Timo Aaltonen <timo.aalto...@canonical.com>

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-oem/+bug/1769843/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to