1. 03 Sep, 2019 16 commits
  2. 02 Sep, 2019 3 commits
  3. 29 Aug, 2019 2 commits
  4. 28 Aug, 2019 8 commits
  5. 27 Aug, 2019 4 commits
  6. 26 Aug, 2019 2 commits
  7. 24 Aug, 2019 2 commits
  8. 23 Aug, 2019 3 commits
    • Alyssa Rosenzweig's avatar
      drm/panfrost: Add errata descriptions from kbase · 1c5f087a
      Alyssa Rosenzweig authored
      While newer kbase include only the numbers of errata, older kbase
      releases included one-line descriptions for each errata, which is useful
      for those working on the driver. Import these descriptions. Most are
      from kbase verbatim; a few I edited for clarity.
      
      v2: Wrote a description for the workaround of an issue whose cause is
      still unknown (Stephen). Errata which pertain to newer models
      unsupported by the mainline driver, for which Arm has not yet released
      errata information, have been removed from the issue list as the kernel
      need not concern itself with these.
      
      v3: Readded errata not yet handled, adding descriptions based on the
      workarounds in the latest kbase release.
      Signed-off-by: default avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190823155149.7272-1-alyssa.rosenzweig@collabora.com
      1c5f087a
    • Rob Herring's avatar
      drm/panfrost: Use mutex_trylock in panfrost_gem_purge · ce493242
      Rob Herring authored
      Lockdep reports a circular locking dependency with pages_lock taken in
      the shrinker callback. The deadlock can't actually happen with current
      users at least as a BO will never be purgeable when pages_lock is held.
      To be safe, let's use mutex_trylock() instead and bail if a BO is locked
      already.
      
      Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Reviewed-by: default avatarSteven Price <steven.price@arm.com>
      Acked-by: default avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190823021216.5862-7-robh@kernel.org
      ce493242
    • Rob Herring's avatar
      drm/shmem: Use mutex_trylock in drm_gem_shmem_purge · dfbc7a46
      Rob Herring authored
      Lockdep reports a circular locking dependency with pages_lock taken in
      the shrinker callback. The deadlock can't actually happen with current
      users at least as a BO will never be purgeable when pages_lock is held.
      To be safe, let's use mutex_trylock() instead and bail if a BO is locked
      already.
      
      WARNING: possible circular locking dependency detected
      5.3.0-rc1+ #100 Tainted: G             L
      ------------------------------------------------------
      kswapd0/171 is trying to acquire lock:
      000000009b9823fd (&shmem->pages_lock){+.+.}, at: drm_gem_shmem_purge+0x20/0x40
      
      but task is already holding lock:
      00000000f82369b6 (fs_reclaim){+.+.}, at: __fs_reclaim_acquire+0x0/0x40
      
      which lock already depends on the new lock.
      
      the existing dependency chain (in reverse order) is:
      
      -> #1 (fs_reclaim){+.+.}:
             fs_reclaim_acquire.part.18+0x34/0x40
             fs_reclaim_acquire+0x20/0x28
             __kmalloc_node+0x6c/0x4c0
             kvmalloc_node+0x38/0xa8
             drm_gem_get_pages+0x80/0x1d0
             drm_gem_shmem_get_pages+0x58/0xa0
             drm_gem_shmem_get_pages_sgt+0x48/0xd0
             panfrost_mmu_map+0x38/0xf8 [panfrost]
             panfrost_gem_open+0xc0/0xe8 [panfrost]
             drm_gem_handle_create_tail+0xe8/0x198
             drm_gem_handle_create+0x3c/0x50
             panfrost_gem_create_with_handle+0x70/0xa0 [panfrost]
             panfrost_ioctl_create_bo+0x48/0x80 [panfrost]
             drm_ioctl_kernel+0xb8/0x110
             drm_ioctl+0x244/0x3f0
             do_vfs_ioctl+0xbc/0x910
             ksys_ioctl+0x78/0xa8
             __arm64_sys_ioctl+0x1c/0x28
             el0_svc_common.constprop.0+0x90/0x168
             el0_svc_handler+0x28/0x78
             el0_svc+0x8/0xc
      
      -> #0 (&shmem->pages_lock){+.+.}:
             __lock_acquire+0xa2c/0x1d70
             lock_acquire+0xdc/0x228
             __mutex_lock+0x8c/0x800
             mutex_lock_nested+0x1c/0x28
             drm_gem_shmem_purge+0x20/0x40
             panfrost_gem_shrinker_scan+0xc0/0x180 [panfrost]
             do_shrink_slab+0x208/0x500
             shrink_slab+0x10c/0x2c0
             shrink_node+0x28c/0x4d8
             balance_pgdat+0x2c8/0x570
             kswapd+0x22c/0x638
             kthread+0x128/0x130
             ret_from_fork+0x10/0x18
      
      other info that might help us debug this:
      
       Possible unsafe locking scenario:
      
             CPU0                    CPU1
             ----                    ----
        lock(fs_reclaim);
                                     lock(&shmem->pages_lock);
                                     lock(fs_reclaim);
        lock(&shmem->pages_lock);
      
       *** DEADLOCK ***
      
      3 locks held by kswapd0/171:
       #0: 00000000f82369b6 (fs_reclaim){+.+.}, at: __fs_reclaim_acquire+0x0/0x40
       #1: 00000000ceb37808 (shrinker_rwsem){++++}, at: shrink_slab+0xbc/0x2c0
       #2: 00000000f31efa81 (&pfdev->shrinker_lock){+.+.}, at: panfrost_gem_shrinker_scan+0x34/0x180 [panfrost]
      
      Fixes: 17acb9f3 ("drm/shmem: Add madvise state and purge helpers")
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Maxime Ripard <maxime.ripard@bootlin.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Reviewed-by: default avatarSteven Price <steven.price@arm.com>
      Acked-by: default avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190823021216.5862-6-robh@kernel.org
      dfbc7a46