diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-30 14:40:01 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-30 14:40:01 -0400 |
| commit | 8353a1344c78a3f29274f3c7b6e0984b81464346 (patch) | |
| tree | fe2baceb7e746e8a783afa41b31f348b721ed706 /kernel/include/nvtypes.h | |
| parent | d52a6425ba2e0a46f2cf5c66219d34fcdc49c2d7 (diff) | |
| download | open-iov-8353a1344c78a3f29274f3c7b6e0984b81464346.tar.gz open-iov-8353a1344c78a3f29274f3c7b6e0984b81464346.zip | |
GSPRM CLK legacy controls: populate the domain queries the runtime clock helper gates on
The static CUDA runtime's device init failed with cudaErrorInitializationError
even though every kernel ioctl returned 0: cuInit succeeded and then
cuDeviceGetAttribute(ECC_ENABLED=36) returned CUDA_ERROR_NOT_FOUND (500).
Tracing libcuda's clock-domain helper (libcuda+0xe8c410) shows it issues the
CLK legacy controls 0x20809009/0x20809064/0x20809001 and bails with 500 when
the replies do not carry the expected domain bits/entries; the dependent
attribute getters (ECC_ENABLED, TOTAL_CONSTANT_MEMORY) then abort init.
Reply to the three queries with the minimal fields the helper checks: bits
32|34 present in 0x20809009, non-zero domain entries at offsets 12/20/28/36
of 0x20809064, and a matching selector in 0x20809001. No frequencies are
fabricated (all other fields stay zero).
Verified in the guest with the stock 570.144 static-cudart vectorAdd client:
cudaGetDeviceCount -> rc=0 (ndev=1), cudaSetDevice, cudaFree, three
cudaMallocs and both HtoD copies all return rc=0; the client then parks in
cudaDeviceSynchronize waiting for the (not yet forwarded) kernel launch.
Diffstat (limited to 'kernel/include/nvtypes.h')
0 files changed, 0 insertions, 0 deletions
