From 50999f7b3436aa4d7b62ce8b44f595c35e88ff6a Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Wed, 23 Sep 2026 07:15:28 -0400 Subject: userspace/cuda: engine-list path summarised in the public analysis Records that libcuda builds an async copy-engine list from per-engine records (engine kind, runlist, class) received with the device information, which is derived from the GSP static info engine table this project emulates, and that the crashing per-engine helper operates on those records. The adjacent local analysis notes (userspace/cuda/570.144/LOCAL-ANALYSIS.md) carry supporting detail. --- userspace/cuda/570.144/docs/ANALYSIS-cuctxcreate-segv.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'userspace') diff --git a/userspace/cuda/570.144/docs/ANALYSIS-cuctxcreate-segv.md b/userspace/cuda/570.144/docs/ANALYSIS-cuctxcreate-segv.md index 95b6237..9a15b51 100644 --- a/userspace/cuda/570.144/docs/ANALYSIS-cuctxcreate-segv.md +++ b/userspace/cuda/570.144/docs/ANALYSIS-cuctxcreate-segv.md @@ -147,6 +147,18 @@ unexpected engine descriptor/class and loses the caller's frame while reporting it**. The engine descriptor contents (and what the emulation advertised for that engine) are the next thing to inspect. +## The engine-list path (summary) + +The engine-list construction path for this library is summarised here: + +* libcuda builds an **async copy-engine list** from per-engine records + (engine kind, runlist, class) it receives with the device information. +* The device information is derived from the GSP static info engine table + this project emulates (`tu104_engine_table`: 11 hardware engines, + runlists 0=GR, 1..5=CE0..4, 6..7=NVDEC, 8=NVENC, 9=SEC2, 10=NVJPG). +* Only copy-engine records with a positive runlist become async channels; + the runlist value is reused when a channel is created (0 for GR). + ## What is NOT (yet) analysed * No full auto-analysis output was reviewed beyond the functions above; -- cgit v1.2.3