[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