summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_sema_service.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-24 08:58:59 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-24 08:58:59 -0400
commitcd3ff2e0d91613e916b6397c57e89ebbc97afa07 (patch)
tree3fb756fcb1331533082532d4e30ca4766a8805a4 /kernel/gsp_sema_service.h
parent8d30b16f75feb556fd6d38b05fae1b23923a8f16 (diff)
downloadopen-iov-cd3ff2e0d91613e916b6397c57e89ebbc97afa07.tar.gz
open-iov-cd3ff2e0d91613e916b6397c57e89ebbc97afa07.zip
kernel: aperture-aware pinning and UVM CE channel USERD discovery
Debug injections could only teach sysmem translations, but the UVM CE channel rings and USERDs live in the frame buffer window, and the progress service had no candidate for their USERD (the allocation parameters carry an offset relative to a client pool, not the FB offset). Add an aperture field to the pinned translations and to the sema_map_add debug parameter (va,pa[,len[,aperture]]), and probe the observed UVM layout as well: the USERD sits one 0x10000 block after the ring for the data-path channels. With the rings pinned, the pump now resolves and decodes the CE rings (the entries point at 1 MB pushbuffer regions); only the pushbuffer VA->PA translation is still missing, so the entries are kept pending.
Diffstat (limited to 'kernel/gsp_sema_service.h')
-rw-r--r--kernel/gsp_sema_service.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/gsp_sema_service.h b/kernel/gsp_sema_service.h
index a6893bd..6b8dc6a 100644
--- a/kernel/gsp_sema_service.h
+++ b/kernel/gsp_sema_service.h
@@ -57,7 +57,7 @@ void gsp_sema_service_vaspace_del(u32 h_vaspace);
int gsp_sema_service_start(void);
void gsp_sema_service_stop(void);
int gsp_sema_service_probe(u64 gpu_va, u32 count);
-int gsp_sema_service_add_map(u64 gpu_va, u64 pa, u64 len);
+int gsp_sema_service_add_map(u64 gpu_va, u64 pa, u64 len, u32 ap);
void gsp_sema_service_doorbell(u32 token);
#endif /* _GSP_SEMA_SERVICE_H_ */