1. 09 10月, 2021 1 次提交
  2. 24 9月, 2021 1 次提交
    • X
      drm/amdgpu: Put drm_dev_enter/exit outside hot codepath · b2fe31cf
      xinhui pan 提交于
      We hit soft hang while doing memory pressure test on one numa system.
      After a qucik look, this is because kfd invalid/valid userptr memory
      frequently with process_info lock hold.
      Looks like update page table mapping use too much cpu time.
      
      perf top says below,
      75.81%  [kernel]       [k] __srcu_read_unlock
       6.19%  [amdgpu]       [k] amdgpu_gmc_set_pte_pde
       3.56%  [kernel]       [k] __srcu_read_lock
       2.20%  [amdgpu]       [k] amdgpu_vm_cpu_update
       2.20%  [kernel]       [k] __sg_page_iter_dma_next
       2.15%  [drm]          [k] drm_dev_enter
       1.70%  [drm]          [k] drm_prime_sg_to_dma_addr_array
       1.18%  [kernel]       [k] __sg_alloc_table_from_pages
       1.09%  [drm]          [k] drm_dev_exit
      
      So move drm_dev_enter/exit outside gmc code, instead let caller do it.
      They are gart_unbind, gart_map, vm_clear_bo, vm_update_pdes and
      gmc_init_pdb0. vm_bo_update_mapping already calls it.
      Signed-off-by: Nxinhui pan <xinhui.pan@amd.com>
      Reviewed-and-tested-by: NAndrey Grodzovsky <andrey.grodzovsky@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      b2fe31cf
  3. 26 8月, 2021 1 次提交
  4. 25 8月, 2021 1 次提交
  5. 17 8月, 2021 1 次提交
    • J
      drm/amd/amdgpu embed hw_fence into amdgpu_job · c530b02f
      Jack Zhang 提交于
      Why: Previously hw fence is alloced separately with job.
      It caused historical lifetime issues and corner cases.
      The ideal situation is to take fence to manage both job
      and fence's lifetime, and simplify the design of gpu-scheduler.
      
      How:
      We propose to embed hw_fence into amdgpu_job.
      1. We cover the normal job submission by this method.
      2. For ib_test, and submit without a parent job keep the
      legacy way to create a hw fence separately.
      v2:
      use AMDGPU_FENCE_FLAG_EMBED_IN_JOB_BIT to show that the fence is
      embedded in a job.
      v3:
      remove redundant variable ring in amdgpu_job
      v4:
      add tdr sequence support for this feature. Add a job_run_counter to
      indicate whether this job is a resubmit job.
      v5
      add missing handling in amdgpu_fence_enable_signaling
      Signed-off-by: NJingwen Chen <Jingwen.Chen2@amd.com>
      Signed-off-by: NJack Zhang <Jack.Zhang7@hotmail.com>
      Reviewed-by: NAndrey Grodzovsky <andrey.grodzovsky@amd.com>
      Reviewed by: Monk Liu <monk.liu@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      c530b02f
  6. 03 8月, 2021 2 次提交
  7. 29 7月, 2021 2 次提交
  8. 13 7月, 2021 4 次提交
  9. 09 7月, 2021 2 次提交
  10. 16 6月, 2021 3 次提交
  11. 09 6月, 2021 1 次提交
  12. 08 6月, 2021 2 次提交
  13. 06 6月, 2021 1 次提交
  14. 05 6月, 2021 2 次提交
  15. 02 6月, 2021 5 次提交
  16. 22 5月, 2021 1 次提交
  17. 20 5月, 2021 3 次提交
  18. 11 5月, 2021 1 次提交
  19. 05 5月, 2021 1 次提交
  20. 29 4月, 2021 1 次提交
  21. 24 4月, 2021 3 次提交
  22. 21 4月, 2021 1 次提交
    • P
      drm/amdgpu: reserve fence slot to update page table · d42a5b63
      Philip Yang 提交于
      Forgot to reserve a fence slot to use sdma to update page table, cause
      below kernel BUG backtrace to handle vm retry fault while application is
      exiting.
      
      [  133.048143] kernel BUG at /home/yangp/git/compute_staging/kernel/drivers/dma-buf/dma-resv.c:281!
      [  133.048487] Workqueue: events amdgpu_irq_handle_ih1 [amdgpu]
      [  133.048506] RIP: 0010:dma_resv_add_shared_fence+0x204/0x280
      [  133.048672]  amdgpu_vm_sdma_commit+0x134/0x220 [amdgpu]
      [  133.048788]  amdgpu_vm_bo_update_range+0x220/0x250 [amdgpu]
      [  133.048905]  amdgpu_vm_handle_fault+0x202/0x370 [amdgpu]
      [  133.049031]  gmc_v9_0_process_interrupt+0x1ab/0x310 [amdgpu]
      [  133.049165]  ? kgd2kfd_interrupt+0x9a/0x180 [amdgpu]
      [  133.049289]  ? amdgpu_irq_dispatch+0xb6/0x240 [amdgpu]
      [  133.049408]  amdgpu_irq_dispatch+0xb6/0x240 [amdgpu]
      [  133.049534]  amdgpu_ih_process+0x9b/0x1c0 [amdgpu]
      [  133.049657]  amdgpu_irq_handle_ih1+0x21/0x60 [amdgpu]
      [  133.049669]  process_one_work+0x29f/0x640
      [  133.049678]  worker_thread+0x39/0x3f0
      [  133.049685]  ? process_one_work+0x640/0x640
      Signed-off-by: NPhilip Yang <Philip.Yang@amd.com>
      Signed-off-by: NFelix Kuehling <Felix.Kuehling@amd.com>
      Reviewed-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org # 5.11.x
      d42a5b63