[Openmp-commits] [PATCH] D110513: [AMDGPU][OpenMP] Add memory pool size check to isValidMemoryPool

Jon Chesterfield via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Mon Sep 27 03:01:45 PDT 2021


JonChesterfield added a comment.

Couple of minor points around loss of specific error information and we might want another DP instance but otherwise looks good. `std::pair<hsa_status_t, bool>` to `hsa_status_t` is an improvement imo, we don't need particularly fine grained understanding of what went wrong when the plan on failure is to log something and keep going.



================
Comment at: openmp/libomptarget/plugins/amdgpu/src/rtl.cpp:315
        get_error_string(Err));
-    return {Err, false};
+    return HSA_STATUS_ERROR;
+  }
----------------
return Err here, it might be more informative than HSA_STATUS_ERROR when printed to a log


================
Comment at: openmp/libomptarget/plugins/amdgpu/src/rtl.cpp:323
+    DP("Get memory pool size failed: %s\n", get_error_string(Err));
+    return HSA_STATUS_ERROR;
   }
----------------
as above


================
Comment at: openmp/libomptarget/plugins/amdgpu/src/rtl.cpp:326
 
-  return {HSA_STATUS_SUCCESS, AllocAllowed};
+  return AllocAllowed && Size > 0 ? HSA_STATUS_SUCCESS : HSA_STATUS_ERROR;
 }
----------------
i'd probably parenthesize this, (AllocAllowed && Size > 0)


================
Comment at: openmp/libomptarget/plugins/amdgpu/src/rtl.cpp:334
+  if (isValidMemoryPool(MemoryPool) != HSA_STATUS_SUCCESS) {
+    return HSA_STATUS_ERROR;
   }
----------------
better to preserve the specific error


================
Comment at: openmp/libomptarget/plugins/amdgpu/src/rtl.cpp:359
         Agents[DeviceId], [&](hsa_amd_memory_pool_t MemoryPool) {
-          hsa_status_t Err;
-          bool Valid = false;
-          std::tie(Err, Valid) = isValidMemoryPool(MemoryPool);
-          if (Err != HSA_STATUS_SUCCESS) {
-            return Err;
-          }
-          if (Valid)
+          if (isValidMemoryPool(MemoryPool) == HSA_STATUS_SUCCESS)
             Func(MemoryPool, DeviceId);
----------------
somewhat inconsistent hat we aren't printing here. Maybe we want something like `DP("Skipping memory pool: %s\n");`


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D110513/new/

https://reviews.llvm.org/D110513



More information about the Openmp-commits mailing list