Repository navigation
fix: update ctutils for RUSTSEC-2026-0385 - #10726
Conversation
Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
Merging this PR will degrade performance by 2.02%4 warnings, 1 note
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
## Problem Concurrent first use can create more CUDA streams than the pool's configured capacity. ## Solution Use `OnceCell::get_or_try_init` for each pool slot, replacing the custom initialization lock and `ArcSwap`. ## Assessment Initialized access remains lock-free and failed initialization can be retried. Uses `once_cell` because the fallible `std::sync::OnceLock` API is unstable. Based on #10726. Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
## Problem The driver replacement needs a small CUDA binding layer with lazy library loading. ## Solution Add raw handles, symbols, errors, and fallible call wrappers in `vortex-cuda-driver`. ## Assessment The crate is excluded from publishing; existing consumers still use cudarc. Based on #10726 and prerequisite for #10720. Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
## Problem Splitting staged file reads into 4 MiB chunks adds per-chunk I/O and transfer overhead. ## Solution Increase physical read and H2D chunks to 8 MiB, retaining concurrency 32 and existing logical batches. ## Assessment Uses larger staging buffers per request. Independent of mapped-file copying; based on #10726. Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
## Problem Pinned-transfer completion events record timing that reclamation does not use. ## Solution Replace `BLOCKING_SYNC` with `DISABLE_TIMING`. ## Assessment Host event waits become busy-waits, trading CPU usage for different wait behavior. Independent of event reuse; based on #10726. Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
## Problem Cached file pages still pass through pinned staging buffers before reaching the GPU. ## Solution On supported Linux devices, copy resident mapped-file ranges directly with a CUDA kernel; retain staged reads for other cases. ## Assessment Hardware-dependent fast path with mapping lifetime and cancellation guards. Keeps 4 MiB chunks, so it is independent of #10715. Based on #10726. Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
## Problem A failed or resubmitted transfer can recycle pinned source memory before its previous DMA completes. ## Solution Check contexts, wait on the previous source fence, and establish completion before recycling buffers. ## Assessment If completion cannot be established, retain the allocation rather than risk freeing active DMA memory. Based on #10726; prerequisite for #10713. Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
Problem
The locked
ctutils0.4.3 triggers RUSTSEC-2026-0385, failing dependency audits on develop and the CUDA PRs.Solution
Update
ctutilsto the patched 0.4.4 release.Assessment
Lockfile version and checksum change only. Shared prerequisite for #10711–#10722.