cuda.core: a fast-path VMM grow leaves its extension unfreeable
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Parti da _grow_allocation_fast_path e segui il modo in cui Buffer, close() e deallocate(ptr, size) gestiscono le prenotazioni, i mapping e la memoria fisica. Esamina il test esistente del fast path, quindi aggiungi una copertura che rilevi che la prenotazione dell’estensione rimane allocata dopo close; il lavoro è completato quando ogni prenotazione e ogni mapping di proprietà del buffer vengono rilasciati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Cython
- Stelle
- 3.4k
- Fork
- 329
- Merge medio
- 1g 20h
- PR unite (30g)
- 123
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NVIDIA/cuda-python
-
bug cuda.core
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
NVIDIA/cuda-python#2886 · 1 commento ·
-
triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
NVIDIA/cuda-python#2717 ·
-
triage
Difficoltà 1/5 1-3 ore Idoneità per principianti 90/100
NVIDIA/cuda-python#2712 ·
-
triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
NVIDIA/cuda-python#2646 · 1 reazione ·
-
cuda.core triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
NVIDIA/cuda-python#2435 · 1 commento ·
Tutte le issue di NVIDIA/cuda-python
Issue simili
-
src/mergeVS-omp/kernels.h: Violates OpenMP restriction (break statement used with OpenMP for loop) Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
C++ Enhancement Examples
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100