cuda.core: a fast-path VMM grow leaves its extension unfreeable
还没有人认领这个 Issue。
评估
调研方向
从 _grow_allocation_fast_path 开始,跟踪 Buffer、close() 和 deallocate(ptr, size) 如何管理预留、映射和物理内存。检查现有的 fast-path 测试,然后添加能够检测扩展预留在 close 后仍保持分配状态的覆盖;完成标准是释放由 buffer 所拥有的每个预留和映射。
由索引模型根据 Issue 内容生成。
描述
Summary
_grow_allocation_fast_path maps a new chunk into a second, adjacent VA reservation and updates buf._size in place. The Buffer's deleter captured the original size when the buffer was created, so close() calls deallocate(ptr, original_size) and frees only the first reservation. The extension's reservation, mapping, and physical memory leak with no warning.
No deallocate(ptr, size) call can fix this: cuMemAddressFree frees a reservation only when ptr and size match exactly one reservation, so a range that spans two reservations cannot be freed in one call. The buffer needs to own each reservation and mapping it consists of.
Status
Today the fast path is unreachable (#2388 defect 2). #2237 and #2407 make it live and would expose this leak, so they should wait for this fix. The existing fast-path test mocks the driver and cannot catch it.
Refs: #2388, #2237, #2407, #2882.
- 主要语言
- Cython
- 星标
- 3.4k
- 派生
- 329
- 平均合并
- 1 天 20 小时
- 30 天内合并 PR
- 123
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
NVIDIA/cuda-python 的其他 Issue
-
bug cuda.core
难度 2/5 1-3 小时 新手友好度 76/100
NVIDIA/cuda-python#2886 · 1 条评论 ·
-
triage
难度 1/5 1 小时以内 新手友好度 88/100
NVIDIA/cuda-python#2717 ·
-
triage
难度 1/5 1-3 小时 新手友好度 90/100
NVIDIA/cuda-python#2712 ·
-
triage
难度 2/5 1-3 小时 新手友好度 82/100
NVIDIA/cuda-python#2646 · 1 个 reaction ·
-
cuda.core triage
难度 2/5 1-3 小时 新手友好度 62/100
NVIDIA/cuda-python#2435 · 1 条评论 ·