1. 25 10月, 2017 1 次提交
    • M
      locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns... · 6aa7de05
      Mark Rutland 提交于
      locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE()
      
      Please do not apply this to mainline directly, instead please re-run the
      coccinelle script shown below and apply its output.
      
      For several reasons, it is desirable to use {READ,WRITE}_ONCE() in
      preference to ACCESS_ONCE(), and new code is expected to use one of the
      former. So far, there's been no reason to change most existing uses of
      ACCESS_ONCE(), as these aren't harmful, and changing them results in
      churn.
      
      However, for some features, the read/write distinction is critical to
      correct operation. To distinguish these cases, separate read/write
      accessors must be used. This patch migrates (most) remaining
      ACCESS_ONCE() instances to {READ,WRITE}_ONCE(), using the following
      coccinelle script:
      
      ----
      // Convert trivial ACCESS_ONCE() uses to equivalent READ_ONCE() and
      // WRITE_ONCE()
      
      // $ make coccicheck COCCI=/home/mark/once.cocci SPFLAGS="--include-headers" MODE=patch
      
      virtual patch
      
      @ depends on patch @
      expression E1, E2;
      @@
      
      - ACCESS_ONCE(E1) = E2
      + WRITE_ONCE(E1, E2)
      
      @ depends on patch @
      expression E;
      @@
      
      - ACCESS_ONCE(E)
      + READ_ONCE(E)
      ----
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: davem@davemloft.net
      Cc: linux-arch@vger.kernel.org
      Cc: mpe@ellerman.id.au
      Cc: shuah@kernel.org
      Cc: snitzer@redhat.com
      Cc: thor.thayer@linux.intel.com
      Cc: tj@kernel.org
      Cc: viro@zeniv.linux.org.uk
      Cc: will.deacon@arm.com
      Link: http://lkml.kernel.org/r/1508792849-3115-19-git-send-email-paulmck@linux.vnet.ibm.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      6aa7de05
  2. 25 5月, 2017 2 次提交
    • M
      drm/amdgpu/SRIOV:implement guilty job TDR for(V2) · 65781c78
      Monk Liu 提交于
      1,TDR will kickout guilty job if it hang exceed the threshold
      of the given one from kernel paramter "job_hang_limit", that
      way a bad command stream will not infinitly cause GPU hang.
      
      by default this threshold is 1 so a job will be kicked out
      after it hang.
      
      2,if a job timeout TDR routine will not reset all sched/ring,
      instead if will only reset on the givn one which is indicated
      by @job of amdgpu_sriov_gpu_reset, that way we don't need to
      reset and recover each sched/ring if we already know which job
      cause GPU hang.
      
      3,unblock sriov_gpu_reset for AI family.
      
      V2:
      1:put kickout guilty job after sched parked.
      2:since parking scheduler prior to kickout already occupies a
      while, we can do last check on the in question job before
      doing hw_reset.
      
      TODO:
      1:when a job is considered as guilty, we should mark some flag
      in its fence status flag, and let UMD side aware that this
      fence signaling is not due to job complete but job hang.
      
      2:if gpu reset cause all video memory lost, we need introduce
      a new policy to implement TDR, like drop all jobs not yet
      signaled, and all IOCTL on this device will return ERROR
      DEVICE_LOST.
      this will be implemented later.
      Signed-off-by: NMonk Liu <Monk.Liu@amd.com>
      Reviewed-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      65781c78
    • M
      drm/amdgpu:don't invoke srio-gpu-reset in gpu-reset (v2) · 4fbf87e2
      Monk Liu 提交于
      because we don't want to do sriov-gpu-reset under certain
      cases, so just split those two funtion and don't invoke
      sr-iov one from bare-metal one.
      
      V2:
      remove debugfs_gpu_reset routine on SRIOV case.
      Signed-off-by: NMonk Liu <Monk.Liu@amd.com>
      Reviewed-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      4fbf87e2
  3. 11 11月, 2016 1 次提交
  4. 25 10月, 2016 2 次提交
    • C
      dma-buf: Rename struct fence to dma_fence · f54d1867
      Chris Wilson 提交于
      I plan to usurp the short name of struct fence for a core kernel struct,
      and so I need to rename the specialised fence/timeline for DMA
      operations to make room.
      
      A consensus was reached in
      https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html
      that making clear this fence applies to DMA operations was a good thing.
      Since then the patch has grown a bit as usage increases, so hopefully it
      remains a good thing!
      
      (v2...: rebase, rerun spatch)
      v3: Compile on msm, spotted a manual fixup that I broke.
      v4: Try again for msm, sorry Daniel
      
      coccinelle script:
      @@
      
      @@
      - struct fence
      + struct dma_fence
      @@
      
      @@
      - struct fence_ops
      + struct dma_fence_ops
      @@
      
      @@
      - struct fence_cb
      + struct dma_fence_cb
      @@
      
      @@
      - struct fence_array
      + struct dma_fence_array
      @@
      
      @@
      - enum fence_flag_bits
      + enum dma_fence_flag_bits
      @@
      
      @@
      (
      - fence_init
      + dma_fence_init
      |
      - fence_release
      + dma_fence_release
      |
      - fence_free
      + dma_fence_free
      |
      - fence_get
      + dma_fence_get
      |
      - fence_get_rcu
      + dma_fence_get_rcu
      |
      - fence_put
      + dma_fence_put
      |
      - fence_signal
      + dma_fence_signal
      |
      - fence_signal_locked
      + dma_fence_signal_locked
      |
      - fence_default_wait
      + dma_fence_default_wait
      |
      - fence_add_callback
      + dma_fence_add_callback
      |
      - fence_remove_callback
      + dma_fence_remove_callback
      |
      - fence_enable_sw_signaling
      + dma_fence_enable_sw_signaling
      |
      - fence_is_signaled_locked
      + dma_fence_is_signaled_locked
      |
      - fence_is_signaled
      + dma_fence_is_signaled
      |
      - fence_is_later
      + dma_fence_is_later
      |
      - fence_later
      + dma_fence_later
      |
      - fence_wait_timeout
      + dma_fence_wait_timeout
      |
      - fence_wait_any_timeout
      + dma_fence_wait_any_timeout
      |
      - fence_wait
      + dma_fence_wait
      |
      - fence_context_alloc
      + dma_fence_context_alloc
      |
      - fence_array_create
      + dma_fence_array_create
      |
      - to_fence_array
      + to_dma_fence_array
      |
      - fence_is_array
      + dma_fence_is_array
      |
      - trace_fence_emit
      + trace_dma_fence_emit
      |
      - FENCE_TRACE
      + DMA_FENCE_TRACE
      |
      - FENCE_WARN
      + DMA_FENCE_WARN
      |
      - FENCE_ERR
      + DMA_FENCE_ERR
      )
       (
       ...
       )
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      Acked-by: NSumit Semwal <sumit.semwal@linaro.org>
      Acked-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
      f54d1867
    • G
      drm/amdgpu: fix fence slab teardown · 0f10425e
      Grazvydas Ignotas 提交于
      To free fences, call_rcu() is used, which calls amdgpu_fence_free()
      after a grace period. During teardown, there is no guarantee all
      callbacks have finished, so amdgpu_fence_slab may be destroyed before
      all fences have been freed. If we are lucky, this results in some slab
      warnings, if not, we get a crash in one of rcu threads because callback
      is called after amdgpu has already been unloaded.
      
      Fix it with a rcu_barrier().
      
      Fixes: b4413535 ("drm/amdgpu: RCU protected amdgpu_fence_release")
      Acked-by: NChunming Zhou <david1.zhou@amd.com>
      Reviewed-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NGrazvydas Ignotas <notasas@gmail.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      0f10425e
  5. 28 9月, 2016 1 次提交
  6. 15 7月, 2016 2 次提交
  7. 25 5月, 2016 1 次提交
  8. 14 5月, 2016 1 次提交
  9. 05 5月, 2016 3 次提交
  10. 01 4月, 2016 1 次提交
  11. 17 3月, 2016 10 次提交
  12. 15 3月, 2016 2 次提交
  13. 09 3月, 2016 2 次提交
  14. 17 2月, 2016 1 次提交
  15. 11 2月, 2016 4 次提交
  16. 17 11月, 2015 3 次提交
  17. 05 11月, 2015 2 次提交
  18. 30 10月, 2015 1 次提交