Commit Graph

44 Commits

Author SHA1 Message Date
Flora Cui 954807feff wsl/hsakmt: rename vendor_packet_support
to vendor_packet_process.
:1 process vender specific packet (acquire_mem, handle signal, update
rptr)
:0 skip vender specific packet (handle signal by cpu, update rptr by
gpu)

Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Longlong Yao <Longlong.Yao@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/35>
2025-11-05 18:53:35 +08:00
lyndonli 5c13bc7509 wsl/hsakmt: Modify num_subdirs parameter to resolve the warning
Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/32>
2025-11-05 18:53:35 +08:00
lyndonli c898104228 wsl/hsakmt: Introduce WSL_CHECK_AVAIL_SYSRAM environment variable
By default, this variable is 0. Set it to 1 to compare available
system memory with the requested amount before allocation. It helps
identify system hangs caused by excessive memory allocation.

Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/32>
2025-11-05 18:53:35 +08:00
Flora Cui 7a67eb90e2 wsl/hsakmt: add lock for sdma packet processing
Suggested-by: Shane Xiao <shane.xiao@amd.com>
Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Shane Xiao <shane.xiao@amd.com>
Reviewed-by: Shi.Leslie <Yuliang.Shi@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/31>
2025-11-05 18:53:35 +08:00
Flora Cui 55fc454b9d wsl/hsakmt: move amd_queue_rocr_ above aql_to_pm4_thread_
to avoid segfault

Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Longlong Yao <Longlong.Yao@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/28>
2025-11-05 18:53:35 +08:00
Longlong Yao a2b449a370 wsl/hsakmt: refine the header guard
Signed-off-by: Longlong Yao <Longlong.Yao@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/26>
2025-11-05 18:53:35 +08:00
Longlong Yao 84bfbf8e52 wsl/hsakmt: skip vender specific packet by default
Signed-off-by: Longlong Yao <Longlong.Yao@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: lyndonli <Lyndon.Li@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/25>
2025-11-05 18:53:35 +08:00
Horatio Zhang 9587e8b33d wsl/hsakmt: Remove redundant variable for AqlToPm4Thread
Signed-off-by: Horatio Zhang <Hongkun.Zhang@amd.com>
Reviewed-by: lyndonli <Lyndon.Li@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/24>
2025-11-05 18:53:35 +08:00
Horatio Zhang ea04f9f62f wsl/hsakmt: Remove unused flag file in libhsakmt
Clean up unused flag* file in libhsakmt, because we reuse the flag
from the ROCr layer and pass the support list upwards using
HsaVersionCapability.

Signed-off-by: Horatio Zhang <Hongkun.Zhang@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/23>
2025-11-05 18:53:35 +08:00
Shane Xiao 8c7d5a01f9 wsl/hsakmt: Add no pcie atomic support for dispatch packet
This patch adds no pcie atomic support. This patch uses cpu to update
cmd queue completion signal to resolve potential contention issue,
and replaces ATOMIC_MEM with WRITE_DATA packet to update ring_index.

Signed-off-by: Shane Xiao <shane.xiao@amd.com>
Reviewed-by: Aaron Liu <aaron.liu@amd.com>
Reviewed-by: Longlong Yao <Longlong.Yao@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/22>
2025-11-05 18:53:35 +08:00
Shane Xiao 23243ba966 wsl/hsakmt: Add pm4 WRITE_DATA packet
This patch adds WRITE_DATA packet, which will be used
in no PCIe atomic platform.

Signed-off-by: Shane Xiao <shane.xiao@amd.com>
Reviewed-by: Aaron Liu <aaron.liu@amd.com>
Reviewed-by: Longlong Yao <Longlong.Yao@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/22>
2025-11-05 18:53:35 +08:00
lyndonli c06c3fd82b wsl/hsakmt: Fix boundary condition in VaMgr::Alloc
Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Reviewed by: Shi.Leslie <Yuliang.Shi@amd.com>

Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/19>
2025-11-05 18:53:35 +08:00
lyndonli 4c11077c58 wsl/hsakmt: Replace asserts with warnings in VaMgr destructor
When NDEBUG is defined, assertions become ineffective.

Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Reviewed by: Shi.Leslie <Yuliang.Shi@amd.com>

Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/19>
2025-11-05 18:53:35 +08:00
Shi.Leslie 3161be1619 wsl/hsakmt: Add ring ptr check before lock
This patch also move the invalid packet check outside the critical section.

Signed-off-by: Shi.Leslie <Yuliang.Shi@amd.com>
Reviewed-by: Shane Xiao <shane.xiao@amd.com>
2025-11-05 18:53:35 +08:00
tiancyin efd0158724 wsl/hsakmt: use GpuMemory object address as va in physical memory handle case
Signed-off-by: tiancyin <tianci.yin@amd.com>
2025-11-05 18:53:35 +08:00
Longlong Yao 6f331de20d wsl/hsakmt: drop doorbell signal
For wsl, doorbell ring needs to call hsaKmtQueueRingDoorbell
instead of atomic store in hsa runtime. It does not care about
the doorbell signal value. So just return a pointer that points
a memory allocation of 8 bytes.

Signed-off-by: Longlong Yao <Longlong.Yao@amd.com>
Reviewed-by: lyndonli <Lyndon.Li@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/14>
2025-11-05 18:53:35 +08:00
Aaron Liu 9c59764f97 wsl/hsakmt: fix support ASICs for WSL
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/9>
2025-11-05 18:53:35 +08:00
lyndonli 56f4bb18f5 wsl/hsakmt: Fix memory leak in WDDMDevice::CreateGpuMemory
Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Reviewed-by: Longlong Yao <Longlong.Yao@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/4>
2025-11-05 18:53:35 +08:00
lyndonli 186b0843ca wsl/hsakmt: Set PRIV for gfx11
To fix the hang issue when enabling CWSR on gfx11.

Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Reviewed-by: Longlong Yao <Longlong.Yao@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/4>
2025-11-05 18:53:35 +08:00
Horatio Zhang e8235d4a50 wsl/rocr: Add rocr4wsl project version
Users can obtain rocr4wsl version information through the following methods:
strings /opt/rocm/lib/libhsa-runtime64.so | grep ROCR4WSL
strings /opt/rocm/lib/libhsakmt.a | grep ROCR4WSL

Signed-off-by: Horatio Zhang <Hongkun.Zhang@amd.com>
Reviewed-by: tiancyin <tianci.yin@amd.com>
Part-of: <http://10.67.69.192/wsl/rocr-runtime/-/merge_requests/1>
2025-11-05 18:53:35 +08:00
Flora Cui 8663eeaa34 wsl: drop libdrm dependency
Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Shi.Leslie <Yuliang.Shi@amd.com>
Part-of: <http://10.67.69.192/wsl/rocr-runtime/-/merge_requests/2>

wsl/libhsakmt: move drm headers to dedicated directory

to maintain a clean and organized codebase.

Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Horatio Zhang <Hongkun.Zhang@amd.com>
Part-of: <http://10.67.69.192/wsl/rocr-runtime/-/merge_requests/3>
2025-11-05 18:53:35 +08:00
Chengjun Yao 09e1dba40b wsl/hsakmt: Add hsaKmtModelEnabled()
Signed-off-by: Flora Cui <flora.cui@amd.com>
Signed-off-by: Chengjun Yao <Chengjun.Yao@amd.com>
Part-of: <http://10.67.69.192/wsl/rocr-runtime/-/merge_requests/78>
2025-11-05 18:53:35 +08:00
Chengjun Yao a80ed93484 wsl/libhsakmt: Implement amdgpu_device_initialize and amdgpu_device_deinitialize
Signed-off-by: Chengjun Yao <Chengjun.Yao@amd.com>
Part-of: <http://10.67.69.192/wsl/rocr-runtime/-/merge_requests/78>
2025-11-05 18:53:35 +08:00
Flora Cui 4d4b203412 wsl/hsakmt: adapt optimized sdma poll command
Signed-off-by: Flora Cui <flora.cui@amd.com>
Part-of: <http://10.67.69.192/wsl/rocr-runtime/-/merge_requests/31>
2025-11-05 18:53:35 +08:00
Flora Cui 17dc4c1239 wsl/hsakmt/sdma: nop poll command
since the polling has been concluded

Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Shane Xiao <shane.xiao@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/34>
2025-11-05 18:53:35 +08:00
Flora Cui 49524f5f7a wsl/hsakmt: add OverrideEngineId property
partial cherry pick 671c6d8(1106575: libhsakmt: add OverrideEngineId
property | https://gerrit-git.amd.com/c/hsa/ec/rocr-runtime/+/1106575)

Signed-off-by: Flora Cui <flora.cui@amd.com>
2025-11-05 18:53:35 +08:00
Flora Cui a526a3fadb wsl/hsakmt: implement hsaKmtCreateQueueExt
ref to 1105472: libhsakmt: Extend thunk queue creation with recommended
sdma engines |
https://gerrit-git.amd.com/c/hsa/ec/rocr-runtime/+/1105472

Signed-off-by: Flora Cui <flora.cui@amd.com>
2025-11-05 18:53:35 +08:00
Flora Cui 3f66ce03f8 wsl/hsakmt: implement hsaKmtRegisterGraphicsHandleToNodesExt
Signed-off-by: Flora Cui <flora.cui@amd.com>
2025-11-05 18:53:35 +08:00
Flora Cui fa22e6a530 wsl/hsakmt: drop dlsym for hsa symbols
Signed-off-by: Flora Cui <flora.cui@amd.com>
2025-11-05 18:53:35 +08:00
tiancyin b5fb17fd66 wsl/hsakmt: implement drm interfaces for dropping libdrm*
Signed-off-by: tiancyin <tianci.yin@amd.com>
2025-11-05 18:53:35 +08:00
Horatio Zhang c7b5ff64e3 wsl/hsakmt: Remove fn_amdgpu_device_get_fd in openclose.cpp
There are already relevant implementations in this patch
dcf0fa2 ("wsl/thunk: implement drm interfaces for dropping libdrm*")

Signed-off-by: Horatio Zhang <Hongkun.Zhang@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/37>
2025-11-05 18:53:35 +08:00
Longlong Yao f402bf55eb 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 <Longlong.Yao@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/30>
2025-11-05 18:53:35 +08:00
Flora Cui 7bf51b889f wsl/hsakmt: enable sdma
Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Shane Xiao <shane.xiao@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/17>
2025-11-05 18:53:35 +08:00
Flora Cui ab8771ccae wsl/hsakmt: add sdma queue implementation
Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Shane Xiao <shane.xiao@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/17>
2025-11-05 18:53:35 +08:00
Flora Cui e06e9b1d57 wsl/hsakmt: add more flag to control sdma
Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Shane Xiao <shane.xiao@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/17>
2025-11-05 18:53:35 +08:00
tiancyin 4ecb939111 wsl/hsakmt: remove Vmem and dmabuf from VersionCapability
Signed-off-by: tiancyin <tianci.yin@amd.com>
2025-11-05 18:53:35 +08:00
Longlong Yao 48395b2295 wsl/hsakmt: rename rocr_proxy to thunk_proxy
Signed-off-by: Longlong Yao <Longlong.Yao@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/26>
2025-11-05 18:53:35 +08:00
Longlong Yao c6fe6807e8 wsl/hsakmt: Set uncached for kernel arg region
Signed-off-by: Longlong Yao <Longlong.Yao@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/5>
2025-11-05 18:53:35 +08:00
lyndonli bc9b11d754 wsl/hsakmt: Remove pre-allocation free memory check
This change removes the check for sufficient free memory before allocation.
The previous check could cause performance degradation. Reserving a portion
of system memory helps prevent system hangs due to insufficient memory.
However, if free memory is still insufficient, memory allocation may still
lead to system hangs.

Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/10>
2025-11-05 18:53:35 +08:00
tiancyin 90759bc89a wsl/hsakmt: implement vmm
Reviewed-by: Shi.Leslie <Yuliang.Shi@amd.com>
Reviewed-by: Aaron Liu <aaron.liu@amd.com>
Signed-off-by: tiancyin <tianci.yin@amd.com>
2025-11-05 18:53:35 +08:00
tiancyin d00c4446e9 wsl/hsakmt: just reserve SVM virtual memory for scratch pool
the allocation from InitScratchPool() does not really need VRAM

Reviewed-by: Flora Cui <flora.cui@amd.com>
Signed-off-by: tiancyin <tianci.yin@amd.com>
2025-11-05 18:53:35 +08:00
lyndonli b4b0b54c79 wsl/hsakmt: Add clear_allocation_map
If fork() is called, clear allocation map
that is invalid in the child process.

Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Reviewed-by: Shi.Leslie Yuliang.Shi@amd.com
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/3>
2025-11-05 18:53:35 +08:00
Longlong Yao ccb3950068 wsl/hsakmt: clean up namespace
Signed-off-by: Longlong Yao <Longlong.Yao@amd.com>
Reviewed-by: lyndonli <Lyndon.Li@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/7>
2025-11-05 18:53:35 +08:00
Flora Cui 79a63cf292 wsl/hsakmt: initial commit
Signed-off-by: lyndonli <Lyndon.Li@amd.com>
Signed-off-by: Horatio Zhang <Hongkun.Zhang@amd.com>
Signed-off-by: Shi.Leslie <Yuliang.Shi@amd.com>
Signed-off-by: LonglongYao <Longlong.Yao@amd.com>
Signed-off-by: tiancyin <tianci.yin@amd.com>
Signed-off-by: Frank Min <Frank.Min@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Signed-off-by: Shane Xiao <shane.xiao@amd.com>
Signed-off-by: Lang Yu <lang.yu@amd.com>
Signed-off-by: Feifei Xu <Feifei.Xu@amd.com>
Signed-off-by: Ruili Ji <ruiliji2@amd.com>
Signed-off-by: Qiang Yu <qiang.yu@amd.com>
Signed-off-by: Flora Cui <flora.cui@amd.com>
2025-11-05 18:53:15 +08:00