• Yifan Zhang's avatar
    drm/amdkfd: fix random KFDSVMRangeTest.SetGetAttributesTest test failure · 2bbab7ce
    Yifan Zhang authored
    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: default avatarYifan Zhang <yifan1.zhang@amd.com>
    Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    2bbab7ce
kfd_svm.c 87.3 KB