From f402bf55eb4b1f3a32898ae22c70aabd4d582a49 Mon Sep 17 00:00:00 2001 From: Longlong Yao Date: Wed, 25 Sep 2024 22:23:25 -0700 Subject: [PATCH] wsl/hsakmt: add VendorPacket to VersionCapInfo Provide the query for hsa-runtime to decide whether dispatch vendor packet to wsl-thunk Signed-off-by: Longlong Yao Reviewed-by: Flora Cui Part-of: --- globals.cpp | 2 ++ libhsakmt.h | 1 + openclose.cpp | 5 +++++ version.cpp | 2 ++ 4 files changed, 10 insertions(+) diff --git a/globals.cpp b/globals.cpp index 4f866ac4fc..a75100201f 100644 --- a/globals.cpp +++ b/globals.cpp @@ -45,5 +45,7 @@ bool is_svm_api_supported; int zfb_support; /* handle vendor specific packet */ int vendor_packet_support; +/* enable vendor packet in hsa-runtime*/ +int enable_vendor_packet; size_t max_single_alloc_size = 0; \ No newline at end of file diff --git a/libhsakmt.h b/libhsakmt.h index 4ac14a304a..1a3e3a2b6c 100644 --- a/libhsakmt.h +++ b/libhsakmt.h @@ -43,6 +43,7 @@ extern bool is_dgpu; extern bool is_svm_api_supported; extern int zfb_support; extern int vendor_packet_support; +extern int enable_vendor_packet; extern size_t max_single_alloc_size; #undef HSAKMTAPI diff --git a/openclose.cpp b/openclose.cpp index 9c66c1a9c7..49da15d070 100644 --- a/openclose.cpp +++ b/openclose.cpp @@ -140,6 +140,11 @@ static HSAKMT_STATUS init_vars_from_env(void) { if (envvar) vendor_packet_support = atoi(envvar); + /* Decide whether hsa-runtime dispatch vendor packet */ + envvar = getenv("WSL_ENABLE_VENDOR_PACKET"); + if (envvar) + enable_vendor_packet = atoi(envvar); + return HSAKMT_STATUS_SUCCESS; } diff --git a/version.cpp b/version.cpp index 9d28cc9389..d3afc40662 100644 --- a/version.cpp +++ b/version.cpp @@ -48,5 +48,7 @@ hsaKmtGetVersionCapInfo(HsaVersionCapability *VersionCapInfo) { VersionCapInfo->ui64.Scratch = 0; VersionCapInfo->ui64.XNack = 0;*/ + VersionCapInfo->ui64.VendorPacket = enable_vendor_packet; + return HSAKMT_STATUS_SUCCESS; }