[General]: Handle_Asynchronous_Event delivers blocked pending IRQs and NMIs
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- compilers
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- HTML
- Star
- 57
- Fork
- 4
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của intel/SDM
-
SDM PDF issue
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 72/100
-
SDM PDF issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
SDM PDF issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
SDM PDF issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
-
[Bug]: SDM 092 CPUID typoĐang mởSDM PDF issue SDM Volume 1
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Issue tương tự
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGLCó thể đã có người làm @ninglinLiu đã nhận 1 ngày trước. Đang mởarea:frontend backend:slang bug direction:input
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
CrossGL/crosstl#2801 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
lane:parser todo:ticket
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Decompiler: convertCharRef() in xml.y overflows its int4 accumulator on long character referencesCó thể đã có người làm @kaayzouee đã nhận 1 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
NationalSecurityAgency/ghidra#10009 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[Bug] tree-sitter-bash parses `$_` / `${_}` as variable_name instead of special_variable_nameĐang mở
Độ khó 2/5 Dưới một giờ Mức phù hợp với người mới 85/100
MoonshotAI/kimi-code#4367 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
clang:frontend code-cleanup HLSL
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
llvm/llvm-project#235100 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày