[libc-commits] [libc] 8c1d476 - Revert "[libc] Explicitly pin memory for the client symbol lookup (#73988)"

Joseph Huber via libc-commits libc-commits at lists.llvm.org
Fri Dec 1 11:05:25 PST 2023


Author: Joseph Huber
Date: 2023-12-01T13:04:49-06:00
New Revision: 8c1d476db0ac73df44b1b9db66fdac45473dea68

URL: https://github.com/llvm/llvm-project/commit/8c1d476db0ac73df44b1b9db66fdac45473dea68
DIFF: https://github.com/llvm/llvm-project/commit/8c1d476db0ac73df44b1b9db66fdac45473dea68.diff

LOG: Revert "[libc] Explicitly pin memory for the client symbol lookup (#73988)"

Summary:
This caused the bots to begin failing. Revert for now to get the bot
green.

This reverts commit 8bea804923a1b028e86b177caccb3258708ca01c.
This reverts commit e1395c7bdbe74b632ba7fbd90e2be2b4d82ee09e.

Added: 
    

Modified: 
    libc/utils/gpu/loader/amdgpu/Loader.cpp

Removed: 
    


################################################################################
diff  --git a/libc/utils/gpu/loader/amdgpu/Loader.cpp b/libc/utils/gpu/loader/amdgpu/Loader.cpp
index 61b86bcf9c7f8bb..5c28607b2f290a9 100644
--- a/libc/utils/gpu/loader/amdgpu/Loader.cpp
+++ b/libc/utils/gpu/loader/amdgpu/Loader.cpp
@@ -464,20 +464,18 @@ int load(int argc, char **argv, char **envp, void *image, size_t size,
           executable, rpc_client_symbol_name, &dev_agent, &rpc_client_sym))
     handle_error(err);
 
+  void *rpc_client_host;
+  if (hsa_status_t err =
+          hsa_amd_memory_pool_allocate(coarsegrained_pool, sizeof(void *),
+                                       /*flags=*/0, &rpc_client_host))
+    handle_error(err);
+
   void *rpc_client_dev;
   if (hsa_status_t err = hsa_executable_symbol_get_info(
           rpc_client_sym, HSA_EXECUTABLE_SYMBOL_INFO_VARIABLE_ADDRESS,
           &rpc_client_dev))
     handle_error(err);
 
-  // Pin some memory we can use to obtain the address of the rpc client.
-  void *rpc_client_storage = malloc(sizeof(void *));
-  void *rpc_client_host = nullptr;
-  if (hsa_status_t err =
-          hsa_amd_memory_lock(rpc_client_storage, sizeof(void *),
-                              /*agents=*/nullptr, 0, &rpc_client_host))
-    handle_error(err);
-
   // Copy the address of the client buffer from the device to the host.
   if (hsa_status_t err = hsa_memcpy(rpc_client_host, host_agent, rpc_client_dev,
                                     dev_agent, sizeof(void *)))
@@ -499,9 +497,8 @@ int load(int argc, char **argv, char **envp, void *image, size_t size,
   if (hsa_status_t err = hsa_amd_memory_unlock(
           const_cast<void *>(rpc_get_client_buffer(device_id))))
     handle_error(err);
-  if (hsa_status_t err = hsa_amd_memory_unlock(rpc_client_host))
+  if (hsa_status_t err = hsa_amd_memory_pool_free(rpc_client_host))
     handle_error(err);
-  free(rpc_client_storage);
 
   // Obtain the GPU's fixed-frequency clock rate and copy it to the GPU.
   // If the clock_freq symbol is missing, no work to do.


        


More information about the libc-commits mailing list