1. 07 Dec, 2016 6 commits
  2. 06 Dec, 2016 1 commit
    • Chris Wilson's avatar
      drm/i915: Use memcpy_from_wc for GPU error capture · d637c178
      Chris Wilson authored
      On all platforms we now always read the contents of buffers via the GTT,
      i.e. using WC cpu access. Reads are slow, but they can be accelerated
      with an internal read buffer using sse4.1 (movntqda). This is our
      i915_memcpy_from_wc() routine which also checks for sse4.1 support and
      so we can fallback to using a regular slow memcpy if we need to.
      
      When compressing the pages, the reads are currently done inside zlib's
      fill_window() routine and so we must copy the page into a temporary
      which is then already inside the CPU cache and fast for zlib's
      compression. When not compressing the pages, we don't need a temporary
      and can just use the accelerated read from WC into the destination.
      
      v2: Use zstream locals to reduce diff and allocate the additional
      temporary storage only if sse4.1 is supported.
      v3: Use length=0 for the sse4.1 support check
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20161206124051.17040-1-chris@chris-wilson.co.ukReviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      d637c178
  3. 05 Dec, 2016 28 commits
  4. 04 Dec, 2016 2 commits
    • Linus Torvalds's avatar
      Linux 4.9-rc8 · 3e5de27e
      Linus Torvalds authored
      3e5de27e
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-for-v4.9-rc8' of git://people.freedesktop.org/~airlied/linux · 0cb65c83
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "A pretty small pull request: a couple of AMD powerxpress regression
        fixes and a power management fix, a couple of i915 fixes and one hdlcd
        fix, along with one core don't oops because of incorrect API usage fix"
      
      * tag 'drm-fixes-for-v4.9-rc8' of git://people.freedesktop.org/~airlied/linux:
        drm/i915: drop the struct_mutex when wedged or trying to reset
        drm/i915: Don't touch NULL sg on i915_gem_object_get_pages_gtt() error
        drm: Don't call drm_for_each_crtc with a non-KMS driver
        drm/radeon: fix check for port PM availability
        drm/amdgpu: fix check for port PM availability
        drm/amd/powerplay: initialize the soft_regs offset in struct smu7_hwmgr
        drm: hdlcd: Fix cleanup order
      0cb65c83
  5. 03 Dec, 2016 3 commits
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2016-12-01' of... · ab7cd8d8
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2016-12-01' of git://anongit.freedesktop.org/git/drm-intel into drm-fixes
      
      2 intel fixes.
      
      * tag 'drm-intel-fixes-2016-12-01' of git://anongit.freedesktop.org/git/drm-intel:
        drm/i915: drop the struct_mutex when wedged or trying to reset
        drm/i915: Don't touch NULL sg on i915_gem_object_get_pages_gtt() error
      ab7cd8d8
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 3c49de52
      Linus Torvalds authored
      Merge more fixes from Andrew Morton:
       "2 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm, vmscan: add cond_resched() into shrink_node_memcg()
        mm: workingset: fix NULL ptr in count_shadow_nodes
      3c49de52
    • Michal Hocko's avatar
      mm, vmscan: add cond_resched() into shrink_node_memcg() · bd041733
      Michal Hocko authored
      Boris Zhmurov has reported RCU stalls during the kswapd reclaim:
      
        INFO: rcu_sched detected stalls on CPUs/tasks:
         23-...: (22 ticks this GP) idle=92f/140000000000000/0 softirq=2638404/2638404 fqs=23
         (detected by 4, t=6389 jiffies, g=786259, c=786258, q=42115)
        Task dump for CPU 23:
        kswapd1         R  running task        0   148      2 0x00000008
        Call Trace:
          shrink_node+0xd2/0x2f0
          kswapd+0x2cb/0x6a0
          mem_cgroup_shrink_node+0x160/0x160
          kthread+0xbd/0xe0
          __switch_to+0x1fa/0x5c0
          ret_from_fork+0x1f/0x40
          kthread_create_on_node+0x180/0x180
      
      a closer code inspection has shown that we might indeed miss all the
      scheduling points in the reclaim path if no pages can be isolated from
      the LRU list.  This is a pathological case but other reports from Donald
      Buczek have shown that we might indeed hit such a path:
      
              clusterd-989   [009] .... 118023.654491: mm_vmscan_direct_reclaim_end: nr_reclaimed=193
               kswapd1-86    [001] dN.. 118023.987475: mm_vmscan_lru_isolate: isolate_mode=0 classzone=0 order=0 nr_requested=32 nr_scanned=4239830 nr_taken=0 file=1
               kswapd1-86    [001] dN.. 118024.320968: mm_vmscan_lru_isolate: isolate_mode=0 classzone=0 order=0 nr_requested=32 nr_scanned=4239844 nr_taken=0 file=1
               kswapd1-86    [001] dN.. 118024.654375: mm_vmscan_lru_isolate: isolate_mode=0 classzone=0 order=0 nr_requested=32 nr_scanned=4239858 nr_taken=0 file=1
               kswapd1-86    [001] dN.. 118024.987036: mm_vmscan_lru_isolate: isolate_mode=0 classzone=0 order=0 nr_requested=32 nr_scanned=4239872 nr_taken=0 file=1
               kswapd1-86    [001] dN.. 118025.319651: mm_vmscan_lru_isolate: isolate_mode=0 classzone=0 order=0 nr_requested=32 nr_scanned=4239886 nr_taken=0 file=1
               kswapd1-86    [001] dN.. 118025.652248: mm_vmscan_lru_isolate: isolate_mode=0 classzone=0 order=0 nr_requested=32 nr_scanned=4239900 nr_taken=0 file=1
               kswapd1-86    [001] dN.. 118025.984870: mm_vmscan_lru_isolate: isolate_mode=0 classzone=0 order=0 nr_requested=32 nr_scanned=4239914 nr_taken=0 file=1
        [...]
               kswapd1-86    [001] dN.. 118084.274403: mm_vmscan_lru_isolate: isolate_mode=0 classzone=0 order=0 nr_requested=32 nr_scanned=4241133 nr_taken=0 file=1
      
      this is minute long snapshot which didn't take a single page from the
      LRU.  It is not entirely clear why only 1303 pages have been scanned
      during that time (maybe there was a heavy IRQ activity interfering).
      
      In any case it looks like we can really hit long periods without
      scheduling on non preemptive kernels so an explicit cond_resched() in
      shrink_node_memcg which is independent on the reclaim operation is due.
      
      Link: http://lkml.kernel.org/r/20161202095841.16648-1-mhocko@kernel.orgSigned-off-by: default avatarMichal Hocko <mhocko@suse.com>
      Reported-by: default avatarBoris Zhmurov <bb@kernelpanic.ru>
      Tested-by: default avatarBoris Zhmurov <bb@kernelpanic.ru>
      Reported-by: default avatarDonald Buczek <buczek@molgen.mpg.de>
      Reported-by: default avatar"Christopher S. Aker" <caker@theshore.net>
      Reported-by: default avatarPaul Menzel <pmenzel@molgen.mpg.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bd041733