Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[General]: Handle_Asynchronous_Event delivers blocked pending IRQs and NMIs

Chiusa
#77 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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

Executable specification issue

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.

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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di intel/SDM

Tutte le issue di intel/SDM

Issue simili

Altre issue su Compilers

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.