[General]: Handle_Asynchronous_Event delivers blocked pending IRQs and NMIs
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Área
- compilers
Línea de trabajo
Start with the linked Handle_Asynchronous_Event and Current_Event definitions, then inspect their reviewed entries in data/definitions.xml.gz and the related Step definition. Reproduce the cited model checks for IF, MOV-SS, shutdown, and NMI blocking; done means blocked events remain in Current_Event, the helper returns False, and delivery occurs after the condition is removed.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
With Current_Event holding a pending external event, Handle_Asynchronous_Event defers an interrupt after STI but otherwise delivers Interrupt_Event without checking IF or MOV-SS blocking. Its NMI path does not test whether NMIs are already blocked. A pending event can therefore be consumed and delivered while the corresponding architectural blocking condition is set.
Concrete case
Use an active thread outside VMX non-root operation, no STI shadow, IF=0 and Current_Event=Interrupt_Event. The helper clears Current_Event and calls Take_Interrupt for an external interrupt. Architecturally the interrupt is inhibited. Similarly, an injected NMI_Event is taken even with Event_Blocked.NMI_BLOCKED already true.
Expected behavior and references
References use Intel SDM 325462-093, checked on 2026-10-01. PDF page numbers below refer to the combined manual.
- Vol. 3A §7.8.1, IF masking; combined PDF page 3357
- §7.8.3, stack-switch blocking; combined PDF page 3358
- MOV SS interrupt inhibition; combined PDF page 1318
- §7.7.2, NMI blocking; combined PDF page 3356
Source
Source checked at Intel SDM repository commit b5218b0f1cf512304d4b3cb364433a08fcee47cb.
The helper links are the readable current pages. Their reviewed definitions are in the compressed definition database at the pinned commit.
Suggested correction
Before delivery, defer a maskable interrupt when IF=0, MOV-SS blocking is active, or the thread is shut down. Defer an NMI when NMI blocking or MOV-SS blocking is active. In either case, restore the pending event to Current_Event and return False. Retain the existing STI handling.
Evidence
Model checks place pending IRQs and NMIs in Current_Event while the corresponding blocking conditions are set. The corrected helper returns False, preserves the pending event and leaves the stack unchanged. After the blocking condition is removed, the event reaches its handler. Source inspection shows the original helper lacks the IF, MOV-SS and NMI-blocking checks needed for these cases.
AI disclosure
Assisted by Codex
- Lenguaje dominante
- HTML
- Estrellas
- 57
- Forks
- 4
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la 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 intel/SDM
-
SDM PDF issue
Dificultad 1/5 1-3 horas Aptitud para principiantes 72/100
-
SDM PDF issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
SDM PDF issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
SDM PDF issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
[Bug]: SDM 092 CPUID typoAbiertoSDM PDF issue SDM Volume 1
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Issues similares
-
Recover inside a parameter listAbiertoenhancement scope:diagnostics scope:syntax
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
-
code: refactoring good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
idris-lang/Idris2#3887 ·
Los mantenedores suelen responder en 1 día
-
backend:X86 generated by fuzzer llvm:globalisel miscompilation
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
llvm/llvm-project#235468 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
area:codegen backend:cuda backend:hip bug direction:input
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
CrossGL/crosstl#3061 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100