[General]: Handle_Asynchronous_Event delivers blocked pending IRQs and NMIs
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Ambito
- compilers
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- HTML
- Stelle
- 57
- Fork
- 4
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi 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 intel/SDM
-
SDM PDF issue
Difficoltà 1/5 1-3 ore Idoneità per principianti 72/100
-
SDM PDF issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
SDM PDF issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
SDM PDF issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
-
[Bug]: SDM 092 CPUID typoApertaSDM PDF issue SDM Volume 1
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Issue simili
-
log1p loses all precision for small |x| wherever the polyfill runs (LLVM backend, Metal, WGSL)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Removing nodes from a DFGAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
cucapra/calyx-libm#4 ·
-
Inline asm missing mnemonicsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
bug intrinsic medium priority rt_lib
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
[LoopSink] Sinking a preheader freeze into the loop allows its value to change between iterationsApertaconfirmed generated by fuzzer loopoptim miscompilation regression:17
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
llvm/llvm-project#236129 ·
I maintainer di solito rispondono entro 1 giorno