1. 14 10月, 2021 1 次提交
  2. 09 10月, 2021 1 次提交
    • A
      drm/amdkfd: rm BO resv on validation to avoid deadlock · ec6abe83
      Alex Sierra 提交于
      This fix the deadlock with the BO reservations during SVM_BO evictions
      while allocations in VRAM are concurrently performed. More specific,
      while the ttm waits for the fence to be signaled (ttm_bo_wait), it
      already has the BO reserved. In parallel, the restore worker might be
      running, prefetching memory to VRAM. This also requires to reserve the
      BO, but blocks the mmap semaphore first. The deadlock happens when the
      SVM_BO eviction worker kicks in and waits for the mmap semaphore held
      in restore worker. Preventing signal the fence back, causing the
      deadlock until the ttm times out.
      
      We don't need to hold the BO reservation anymore during validation
      and mapping. Now the physical addresses are taken from hmm_range_fault.
      We also take migrate_mutex to prevent range migration while
      validate_and_map update GPU page table.
      Signed-off-by: NAlex Sierra <alex.sierra@amd.com>
      Signed-off-by: NFelix Kuehling <Felix.Kuehling@amd.com>
      Reviewed-by: NPhilip Yang <philip.yang@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      ec6abe83
  3. 24 9月, 2021 2 次提交
  4. 02 9月, 2021 1 次提交
  5. 25 8月, 2021 2 次提交
  6. 17 8月, 2021 2 次提交
    • Y
      drm/amdkfd: fix random KFDSVMRangeTest.SetGetAttributesTest test failure · f924f3a1
      Yifan Zhang 提交于
      KFDSVMRangeTest.SetGetAttributesTest randomly fails in stress test.
      
      Note: Google Test filter = KFDSVMRangeTest.*
      [==========] Running 18 tests from 1 test case.
      [----------] Global test environment set-up.
      [----------] 18 tests from KFDSVMRangeTest
      [ RUN      ] KFDSVMRangeTest.BasicSystemMemTest
      [       OK ] KFDSVMRangeTest.BasicSystemMemTest (30 ms)
      [ RUN      ] KFDSVMRangeTest.SetGetAttributesTest
      [          ] Get default atrributes
      /home/yifan/brahma/libhsakmt/tests/kfdtest/src/KFDSVMRangeTest.cpp:154: Failure
      Value of: expectedDefaultResults[i]
        Actual: 4294967295
      Expected: outputAttributes[i].value
      Which is: 0
      /home/yifan/brahma/libhsakmt/tests/kfdtest/src/KFDSVMRangeTest.cpp:154: Failure
      Value of: expectedDefaultResults[i]
        Actual: 4294967295
      Expected: outputAttributes[i].value
      Which is: 0
      /home/yifan/brahma/libhsakmt/tests/kfdtest/src/KFDSVMRangeTest.cpp:152: Failure
      Value of: expectedDefaultResults[i]
        Actual: 4
      Expected: outputAttributes[i].type
      Which is: 2
      [          ] Setting/Getting atrributes
      [  FAILED  ]
      
      the root cause is that svm work queue has not finished when svm_range_get_attr is called, thus
      some garbage svm interval tree data make svm_range_get_attr get wrong result. Flush work queue before
      iterate svm interval tree.
      Signed-off-by: NYifan Zhang <yifan1.zhang@amd.com>
      Reviewed-by: NFelix Kuehling <Felix.Kuehling@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      f924f3a1
    • Y
      drm/amdkfd: fix random KFDSVMRangeTest.SetGetAttributesTest test failure · 2bbab7ce
      Yifan Zhang 提交于
      KFDSVMRangeTest.SetGetAttributesTest randomly fails in stress test.
      
      Note: Google Test filter = KFDSVMRangeTest.*
      [==========] Running 18 tests from 1 test case.
      [----------] Global test environment set-up.
      [----------] 18 tests from KFDSVMRangeTest
      [ RUN      ] KFDSVMRangeTest.BasicSystemMemTest
      [       OK ] KFDSVMRangeTest.BasicSystemMemTest (30 ms)
      [ RUN      ] KFDSVMRangeTest.SetGetAttributesTest
      [          ] Get default atrributes
      /home/yifan/brahma/libhsakmt/tests/kfdtest/src/KFDSVMRangeTest.cpp:154: Failure
      Value of: expectedDefaultResults[i]
        Actual: 4294967295
      Expected: outputAttributes[i].value
      Which is: 0
      /home/yifan/brahma/libhsakmt/tests/kfdtest/src/KFDSVMRangeTest.cpp:154: Failure
      Value of: expectedDefaultResults[i]
        Actual: 4294967295
      Expected: outputAttributes[i].value
      Which is: 0
      /home/yifan/brahma/libhsakmt/tests/kfdtest/src/KFDSVMRangeTest.cpp:152: Failure
      Value of: expectedDefaultResults[i]
        Actual: 4
      Expected: outputAttributes[i].type
      Which is: 2
      [          ] Setting/Getting atrributes
      [  FAILED  ]
      
      the root cause is that svm work queue has not finished when svm_range_get_attr is called, thus
      some garbage svm interval tree data make svm_range_get_attr get wrong result. Flush work queue before
      iterate svm interval tree.
      Signed-off-by: NYifan Zhang <yifan1.zhang@amd.com>
      Reviewed-by: NFelix Kuehling <Felix.Kuehling@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      2bbab7ce
  7. 12 8月, 2021 1 次提交
  8. 07 8月, 2021 1 次提交
  9. 13 7月, 2021 1 次提交
  10. 09 7月, 2021 1 次提交
  11. 01 7月, 2021 7 次提交
  12. 30 6月, 2021 1 次提交
  13. 16 6月, 2021 2 次提交
  14. 08 6月, 2021 1 次提交
  15. 02 6月, 2021 1 次提交
  16. 20 5月, 2021 7 次提交
  17. 11 5月, 2021 1 次提交
  18. 29 4月, 2021 4 次提交
  19. 24 4月, 2021 3 次提交