diff --git a/rocrtst/common/base_rocr_utils.cc b/rocrtst/common/base_rocr_utils.cc index 7631211d6d..f171aae456 100755 --- a/rocrtst/common/base_rocr_utils.cc +++ b/rocrtst/common/base_rocr_utils.cc @@ -174,18 +174,32 @@ static hsa_status_t ProcessIterateError(hsa_status_t err) { // yourself instead of using this function. hsa_status_t SetPoolsTypical(BaseRocR* test) { hsa_status_t err; + if (test->profile() == HSA_PROFILE_FULL) { + err = hsa_amd_agent_iterate_memory_pools(*test->cpu_device(), + rocrtst::FindAPUStandardPool, &test->cpu_pool()); + RET_IF_HSA_UTILS_ERR(rocrtst::ProcessIterateError(err)); - err = hsa_amd_agent_iterate_memory_pools(*test->cpu_device(), - rocrtst::FindStandardPool, &test->cpu_pool()); - RET_IF_HSA_UTILS_ERR(rocrtst::ProcessIterateError(err)); + err = hsa_amd_agent_iterate_memory_pools(*test->cpu_device(), + rocrtst::FindAPUStandardPool, &test->device_pool()); + RET_IF_HSA_UTILS_ERR(rocrtst::ProcessIterateError(err)); - err = hsa_amd_agent_iterate_memory_pools(*test->gpu_device1(), - rocrtst::FindStandardPool, &test->device_pool()); - RET_IF_HSA_UTILS_ERR(rocrtst::ProcessIterateError(err)); + err = hsa_amd_agent_iterate_memory_pools(*test->cpu_device(), + rocrtst::FindAPUStandardPool, &test->kern_arg_pool()); + RET_IF_HSA_UTILS_ERR(rocrtst::ProcessIterateError(err)); - err = hsa_amd_agent_iterate_memory_pools(*test->cpu_device(), - rocrtst::FindKernArgPool, &test->kern_arg_pool()); - RET_IF_HSA_UTILS_ERR(rocrtst::ProcessIterateError(err)); + } else { + err = hsa_amd_agent_iterate_memory_pools(*test->cpu_device(), + rocrtst::FindStandardPool, &test->cpu_pool()); + RET_IF_HSA_UTILS_ERR(rocrtst::ProcessIterateError(err)); + + err = hsa_amd_agent_iterate_memory_pools(*test->gpu_device1(), + rocrtst::FindStandardPool, &test->device_pool()); + RET_IF_HSA_UTILS_ERR(rocrtst::ProcessIterateError(err)); + + err = hsa_amd_agent_iterate_memory_pools(*test->cpu_device(), + rocrtst::FindKernArgPool, &test->kern_arg_pool()); + RET_IF_HSA_UTILS_ERR(rocrtst::ProcessIterateError(err)); + } return HSA_STATUS_SUCCESS; } diff --git a/rocrtst/common/common.cc b/rocrtst/common/common.cc index 2dc7f636f6..9d02a68828 100755 --- a/rocrtst/common/common.cc +++ b/rocrtst/common/common.cc @@ -269,6 +269,11 @@ hsa_status_t FindGlobalPool(hsa_amd_memory_pool_t pool, void* data) { POOL_PROP_OFF, POOL_PROP_DONT_CARE); } +hsa_status_t FindAPUStandardPool(hsa_amd_memory_pool_t pool, void* data) { + return FindPool(pool, data, HSA_AMD_SEGMENT_GLOBAL, POOL_PROP_DONT_CARE, + POOL_PROP_DONT_CARE, POOL_PROP_DONT_CARE); +} + // Populate the vector with handles to all agents and pools hsa_status_t GetAgentPools(std::vector> *agent_pools) { diff --git a/rocrtst/common/common.h b/rocrtst/common/common.h index 503166ae02..6e8017d3e0 100755 --- a/rocrtst/common/common.h +++ b/rocrtst/common/common.h @@ -193,6 +193,7 @@ hsa_status_t GetKernArgMemoryPool(hsa_amd_memory_pool_t pool, void* data); /// -HSA_STATUS_SUCCESS - we did not find a pool that meets the criteria /// -else return an appropriate error code for any error encountered hsa_status_t FindStandardPool(hsa_amd_memory_pool_t pool, void* data); +hsa_status_t FindAPUStandardPool(hsa_amd_memory_pool_t pool, void* data); /// Find a "kernel arg" pool. /// The pool found will have the following properties: