cuda.core: a fast-path VMM grow leaves its extension unfreeable
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 48/100
Piste de recherche
Commencez par _grow_allocation_fast_path et suivez la manière dont Buffer, close() et deallocate(ptr, size) gèrent les réservations, les mappings et la mémoire physique. Examinez le test existant du fast path, puis ajoutez une couverture qui détecte que la réservation d’extension reste allouée après close ; le travail est terminé lorsque chaque réservation et chaque mapping appartenant au buffer sont libérés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Cython
- Étoiles
- 3.4k
- Forks
- 329
- Merge moyen
- 1 j 20 h
- PR mergées (30 j)
- 123
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de NVIDIA/cuda-python
-
bug cuda.core
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
NVIDIA/cuda-python#2886 · 1 commentaire ·
-
triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
NVIDIA/cuda-python#2717 ·
-
triage
Difficulté 1/5 1-3 heures Accessibilité débutants 90/100
NVIDIA/cuda-python#2712 ·
-
[BUG]: LocatedHeaderDir is mutable, so callers can poison the cached header-directory lookup Ouvertetriage
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
NVIDIA/cuda-python#2646 · 1 réaction ·
-
cuda.core triage
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
NVIDIA/cuda-python#2435 · 1 commentaire ·
Toutes les issues de NVIDIA/cuda-python
Issues similaires
-
src/mergeVS-omp/kernels.h: Violates OpenMP restriction (break statement used with OpenMP for loop) Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
-
C++ Enhancement Examples
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100