1. 03 Jul, 2018 3 commits
    • Thomas Hellstrom's avatar
      drm: Change deadlock-avoidance algorithm for the modeset locks. · 07c13bb7
      Thomas Hellstrom authored
      For modeset locks we don't expect a high number of contending
      transactions so change algorithm from Wait-Die to Wound-Wait.
      
      Cc: dri-devel@lists.freedesktop.org
      Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Acked-by: default avatarIngo Molnar <mingo@kernel.org>
      07c13bb7
    • Thomas Hellstrom's avatar
      locking: Implement an algorithm choice for Wound-Wait mutexes · 08295b3b
      Thomas Hellstrom authored
      The current Wound-Wait mutex algorithm is actually not Wound-Wait but
      Wait-Die. Implement also Wound-Wait as a per-ww-class choice. Wound-Wait
      is, contrary to Wait-Die a preemptive algorithm and is known to generate
      fewer backoffs. Testing reveals that this is true if the
      number of simultaneous contending transactions is small.
      As the number of simultaneous contending threads increases, Wait-Wound
      becomes inferior to Wait-Die in terms of elapsed time.
      Possibly due to the larger number of held locks of sleeping transactions.
      
      Update documentation and callers.
      
      Timings using git://people.freedesktop.org/~thomash/ww_mutex_test
      tag patch-18-06-15
      
      Each thread runs 100000 batches of lock / unlock 800 ww mutexes randomly
      chosen out of 100000. Four core Intel x86_64:
      
      Algorithm    #threads       Rollbacks  time
      Wound-Wait   4              ~100       ~17s.
      Wait-Die     4              ~150000    ~19s.
      Wound-Wait   16             ~360000    ~109s.
      Wait-Die     16             ~450000    ~82s.
      
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Gustavo Padovan <gustavo@padovan.org>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Kate Stewart <kstewart@linuxfoundation.org>
      Cc: Philippe Ombredanne <pombredanne@nexb.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: linux-doc@vger.kernel.org
      Cc: linux-media@vger.kernel.org
      Cc: linaro-mm-sig@lists.linaro.org
      Co-authored-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Acked-by: default avatarIngo Molnar <mingo@kernel.org>
      08295b3b
    • Peter Ziljstra's avatar
      locking: WW mutex cleanup · 55f036ca
      Peter Ziljstra authored
      Make the WW mutex code more readable by adding comments, splitting up
      functions and pointing out that we're actually using the Wait-Die
      algorithm.
      
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Gustavo Padovan <gustavo@padovan.org>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Kate Stewart <kstewart@linuxfoundation.org>
      Cc: Philippe Ombredanne <pombredanne@nexb.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: linux-doc@vger.kernel.org
      Cc: linux-media@vger.kernel.org
      Cc: linaro-mm-sig@lists.linaro.org
      Co-authored-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Acked-by: default avatarIngo Molnar <mingo@kernel.org>
      55f036ca
  2. 28 Jun, 2018 2 commits
    • Dave Airlie's avatar
      Merge tag 'drm-misc-next-2018-06-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next · eab97669
      Dave Airlie authored
      drm-misc-next for 4.19:
      
      Cross-subsystem Changes:
      devicetree documentation
      dt-bindings defintions for sun8i (Jernej Skrabec)
      
      Core Changes:
      Consider drivers setting DRIVER_ATOMIC as atomic (Eric Anholt)
      Improvements for in-kernel clients (Noralf Trønnes)
      Export and rename drm_crtc_port_mask() (Jernej Skrabec)
      
      Driver Changes:
      v3d: Add looking for GPU scheduler jobs management (Eric Anholt)
      Add Ilitek ILI9881c panel driver(Maxime Ripard)
      rockchip: vop: fixup linebuffer mode calc error (Sandy Huang)
      tinydrm: new driver for ILI9341 display panels (David Lechner)
      sun4i: Add TCON TOP driver (Jernej Skrabec)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180628010018.GA10929@juma
      eab97669
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-2018-06-20' of git://anongit.freedesktop.org/drm/drm-intel into drm-next · b4d4b0b7
      Dave Airlie authored
      Chris is doing many reworks that allow us to get full-ppgtt supported
      on all platforms back to HSW. As well many other fix and improvements,
      Including:
      - Use GEM suspend when aborting initialization (Chris)
      - Change i915_gem_fault to return vm_fault_t (Chris)
      - Expand VMA to Non gem object entities (Chris)
      - Improve logs for load failure, but quite logging on fault injection to avoid noise on CI (Chris)
      - Other page directory handling fixes and improvements for gen6 (Chris)
      - Other gtt clean-up removing redundancies and unused checks (Chris)
      - Reorder aliasing ppgtt fini (Chris)
      - Refactor of unsetting obg->mm.pages (Chris)
      - Apply batch location restrictions before pinning (Chris)
      - Ringbuffer fixes for context restore (Chris)
      - Execlist fixes on freeing error pointer on allocation error (Chris)
      - Make closing request flush mandatory (Chris)
      - Move GEM sanitize from resume_early to resume (Chris)
      - Improve debug dumps (Chris)
      - Silent compiler for selftest (Chris)
      - Other execlists changes to improve hangcheck and reset.
      - Many gtt page directory fixes and improvements (Chris)
      - Reorg context workarounds (Chris)
      - Avoid ERR_PTR dereference on selftest (Chris)
      
      Other GEM related work:
      - Stop trying to reset GPU if reset failed (Mika)
      - Add HW workaround for KBL to fix GPU reset (Mika)
      - Fix context ban and hang accounting for client (Mika)
      - Fixes on OA perf (Michel, Jani)
      - Refactor on GuC log mechanisms (Piotr)
      - Enable provoking vertex fix on Gen9 system (Kenneth)
      
      More ICL patches for Display enabling:
      - ICL - 10-bit support for HDMI (RK)
      - ICL - Start adding TBT PLL (Paulo)
      - ICL - DDI HDMK level selection (Manasi)
      - ICL - GMBUS GPIO pin mapping fix (Mahesh)
      - ICL - Adding DP_AUX_E support (James)
      - ICL - Display interrupts handling (DK)
      
      Other display fixes and improvements:
      - Fix sprite destination color keying on SKL+ (Ville)
      - Fixes and improvements on PCH detection, specially for non PCH systems (Jani)
      - Document PCH_NOP (Lucas)
      - Allow DBLSCAN user modes with eDP/LVDS/DSI (Ville)
      - Opregion and ACPI cleanup and organization (Jani)
      - Kill delays when activation psr (Rodrigo)
      - ...and a consequent fix of the psr activation flow (DK)
      - Fix HDMI infoframe setting (Imre)
      - Fix Display interrupts and modes on old gens (Ville)
      - Start switching to kernel unsigned int types (Jani)
      - Introduction to Amber Lake and Whiskey Lake platforms (Jose)
      - Audio clock fixes for HBR3 (RK)
      - Standardize i915_reg.h definitions according to our doc and checkpatch (Paulo)
      - Remove unused timespec_to_jiffies_timeout function (Arnd)
      - Increase the scope of PSR wake fix for other VBTs out there (Vathsala)
      - Improve debug msgs with prop name/id (Ville)
      - Other clean up on unecessary cursor size defines (Ville)
      - Enforce max hdisplay/hblank_start limits on HSW/BDW (Ville)
      - Make ELD pointers constant (Jani)
      - Fix for PSR VBT parse (Colin)
      - Add warn about unsupported CDCLK rates (Imre)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      # gpg: Signature made Thu 21 Jun 2018 07:12:10 AM AEST
      # gpg:                using RSA key FA625F640EEB13CA
      # gpg: Good signature from "Rodrigo Vivi <rodrigo.vivi@intel.com>"
      # gpg:                 aka "Rodrigo Vivi <rodrigo.vivi@gmail.com>"
      # gpg: WARNING: This key is not certified with a trusted signature!
      # gpg:          There is no indication that the signature belongs to the owner.
      # Primary key fingerprint: 6D20 7068 EEDD 6509 1C2C  E2A3 FA62 5F64 0EEB 13CA
      Link: https://patchwork.freedesktop.org/patch/msgid/20180625165622.GA21761@intel.com
      b4d4b0b7
  3. 27 Jun, 2018 24 commits
  4. 26 Jun, 2018 3 commits
  5. 25 Jun, 2018 7 commits
  6. 22 Jun, 2018 1 commit