[libc-commits] [libc] b712a14 - [libc] Fix memory leak and accidentally ignoring dimensions in loader

Joseph Huber via libc-commits libc-commits at lists.llvm.org
Fri Sep 27 07:57:57 PDT 2024


Author: Joseph Huber
Date: 2024-09-27T09:57:44-05:00
New Revision: b712a1445bfcd3f04a1751f0906515cc7be51271

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

LOG: [libc] Fix memory leak and accidentally ignoring dimensions in loader

Summary:
The loader had a bug where we weren't setting the dimensions correctly,
also I forgot to delete the paths for this  RPC call.

Added: 
    

Modified: 
    libc/utils/gpu/loader/amdgpu/amdhsa-loader.cpp
    libc/utils/gpu/server/rpc_server.cpp

Removed: 
    


################################################################################
diff  --git a/libc/utils/gpu/loader/amdgpu/amdhsa-loader.cpp b/libc/utils/gpu/loader/amdgpu/amdhsa-loader.cpp
index 1beef8170475a1..9ed9d99a60724e 100644
--- a/libc/utils/gpu/loader/amdgpu/amdhsa-loader.cpp
+++ b/libc/utils/gpu/loader/amdgpu/amdhsa-loader.cpp
@@ -231,8 +231,8 @@ hsa_status_t launch_kernel(hsa_agent_t dev_agent, hsa_executable_t executable,
   std::memcpy(args, &kernel_args, sizeof(args_t));
 
   // Initialize the necessary implicit arguments to the proper values.
-  bool dims = 1 + (params.num_blocks_y * params.num_threads_y != 1) +
-              (params.num_blocks_z * params.num_threads_z != 1);
+  int dims = 1 + (params.num_blocks_y * params.num_threads_y != 1) +
+             (params.num_blocks_z * params.num_threads_z != 1);
   implicit_args_t *implicit_args = reinterpret_cast<implicit_args_t *>(
       reinterpret_cast<uint8_t *>(args) + sizeof(args_t));
   implicit_args->grid_dims = dims;

diff  --git a/libc/utils/gpu/server/rpc_server.cpp b/libc/utils/gpu/server/rpc_server.cpp
index aa65dfe69c385c..602b266f9dacb0 100644
--- a/libc/utils/gpu/server/rpc_server.cpp
+++ b/libc/utils/gpu/server/rpc_server.cpp
@@ -285,6 +285,7 @@ rpc_status_t handle_server_impl(
       FILE *file = fopen(reinterpret_cast<char *>(paths[id]),
                          reinterpret_cast<char *>(buffer->data));
       buffer->data[0] = reinterpret_cast<uintptr_t>(file);
+      delete[] reinterpret_cast<uint8_t *>(paths[id]);
     });
     break;
   }


        


More information about the libc-commits mailing list