Heuristic-based scratch zeroing strategy for snapshot restore
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- rust
- Área
- infrastructure, performance
Línea de trabajo
Comienza con HostSharedMemory::zero_or_replace() y lee el contexto en #1765. Haz un benchmark de zero-in-place frente a delete-and-recreate en KVM, MSHV y WHP, variando los tamaños de las regiones scratch y la disponibilidad de MADV_DONTNEED. Se considera completado cuando la comprobación de Windows en tiempo de compilación se sustituye por una heurística basada en el tamaño que también beneficie a las regiones scratch grandes en las compilaciones de Linux de MSHV.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
HostSharedMemory::zero_or_replace() currently uses a compile-time #[cfg(target_os = "windows")] check to decide whether to zero scratch in-place or replace it with a fresh demand-zero allocation. This works for the immediate problem (large scratch regions on WHP), but the real decision depends on the hypervisor and the size of the region, not just the platform.
There is a break-even point between zero-in-place (via MADV_DONTNEED or fill(0)) and delete+recreate (fresh ExclusiveSharedMemory::new) that varies by:
- Hypervisor (KVM, MSHV, WHP)
- Scratch region size
- Whether
MADV_DONTNEEDis available (KVM-only builds vs KVM+mshv3)
We should benchmark across these configurations and replace the compile-time platform check with a size-based heuristic. This would also allow MSHV builds on Linux to benefit from the fresh-allocation path for large scratch regions.
Ref: #1765
- Lenguaje dominante
- Rust
- Estrellas
- 4.7k
- Forks
- 210
- Merge medio
- 1 d 12 h
- PR fusionados (30 d)
- 43
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de hyperlight-dev/hyperlight
-
lifecycle/needs-review
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
hyperlight-dev/hyperlight#1842 ·
-
lifecycle/needs-review
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
hyperlight-dev/hyperlight#1836 ·
-
lifecycle/needs-review
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
hyperlight-dev/hyperlight#1804 ·
-
lifecycle/needs-review
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
hyperlight-dev/hyperlight#1787 ·
-
lifecycle/confirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
hyperlight-dev/hyperlight#1700 ·
Todos los issues de hyperlight-dev/hyperlight
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
Axis areas are always keyboard-focusable (Sense::drag), even with allow_axis_zoom_drag(false) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
bug team:backend track:services-maintenance
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cowprotocol/services#4950 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
gitbutlerapp/gitbutler#15998 · 1 comentario ·