Unify surrogate/no-surrogate mapping behind a single abstraction
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Refactorisation
- Clarté
- Plutôt claire
- Activité
- Calme
- Stack technique
- rust
- Domaine
- operating-systems
Piste de recherche
Commencez par lire la gestion actuelle des surrogate dans whp.rs et le module surrogate, puis examinez la PR #1578 et sa discussion de revue. Définissez une abstraction de mapping unique couvrant à la fois SurrogateProcess et le mode no-surrogate, vérifiez si WHvMapGpaRange2 prend en charge GetCurrentProcess(), et assurez-vous que whp.rs appelle une méthode map(...) sans branchement spécifique au mode.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Context
PR #1578 adds a no-surrogate mode (HYPERLIGHT_MAX_SURROGATES=0) that uses WHvMapGpaRange instead of WHvMapGpaRange2. Currently whp.rs branches on Option<SurrogateProcess> to choose the mapping path.
Proposal
Unify the surrogate and no-surrogate paths so whp.rs doesn't need to know or care which mode is active. Two possible approaches:
-
Enum / trait abstraction: Make
SurrogateProcessan enum (ordyn Trait) with two variants — one backed by a real surrogate process (WHvMapGpaRange2) and one that maps from the host process directly (WHvMapGpaRange). TheNoSurrogateGuardcould be folded into the no-surrogate variant. -
Always use
WHvMapGpaRange2: Use the current process handle as the source when surrogates are disabled, eliminating the branch entirely. This needs validation — it's unclear whetherWHvMapGpaRange2withGetCurrentProcess()is a supported pattern.
Either way, the mapping call would move into the surrogate module so whp.rs just calls a single map(...) method.
Origin
Suggestion from @syntactically in PR #1578 review.
- Langage dominant
- Rust
- Étoiles
- 4.7k
- Forks
- 217
- Merge moyen
- 2 j 55 min
- PR mergées (30 j)
- 56
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire 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 hyperlight-dev/hyperlight
-
lifecycle/needs-review
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
hyperlight-dev/hyperlight#1940 ·
Les mainteneurs répondent en général sous 1 jour
-
lifecycle/needs-review
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
hyperlight-dev/hyperlight#1939 ·
Les mainteneurs répondent en général sous 1 jour
-
lifecycle/needs-review
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
hyperlight-dev/hyperlight#1842 ·
Les mainteneurs répondent en général sous 1 jour
-
lifecycle/needs-review
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
hyperlight-dev/hyperlight#1836 ·
Les mainteneurs répondent en général sous 1 jour
-
Remove `UninitializedSandbox` and `SandboxConfiguration` from the public APIPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertelifecycle/needs-review
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
hyperlight-dev/hyperlight#1804 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de hyperlight-dev/hyperlight
Issues similaires
-
bug documentation sev-0
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
dekobon/big-code-analysis#1620 ·
Les mainteneurs répondent en général sous 3 jours
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
bug soroban
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
utilityjnr1/lumena#358 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
charles-hood/DiagramCraft#63 ·