← Interrupt 상세 목차DUJINLABS.COM

Hardware · Interrupt detailed manual 03 · Linux v6.18.37

3. IOAPIC redirection entry와 level EOI를 pin별로 검증한다

IOAPIC ID/version, GSI base, 64-bit redirection entry의 vector, delivery, destination, polarity, trigger, mask와 remote IRR를 실제 pin level과 맞춥니다.

상세 표
2
검증 행
14
절차
4 checkpoints
기준
x86 APIC · IOAPIC · MSI · Linux v6.18.37

CHAPTER 03

3. IOAPIC redirection entry와 level EOI를 pin별로 검증한다

IOAPIC ID/version, GSI base, 64-bit redirection entry의 vector, delivery, destination, polarity, trigger, mask와 remote IRR를 실제 pin level과 맞춥니다.

RTE

각 input pin에 low/high 32-bit redirection entry가 있습니다.

remote IRR

level interrupt가 LAPIC에서 service 중임을 IOAPIC이 추적합니다.

polarity/trigger

firmware override와 장치 전기 신호가 일치해야 합니다.

destination

physical/logical mode와 APIC mode에 따라 encoding을 해석합니다.

레지스터·번호·소유권 대조

항목소유자값의 의미정상 증거오류 해석
IOAPIC ID/VERIOAPICID와 최대 RTEMADT와 일치잘못된 MMIO/base
RTE vectorIOAPICIDT vectorLinux vector allocator와 일치stale vector
RTE trigger/polarityIOAPICedge/level, high/lowMADT/신호 일치storm/loss
RTE mask/destinationIOAPICenable와 target APIConline affinity targetmasked/offline target
remote IRRIOAPIClevel in-serviceEOI 후 clearsource clear/EOI 문제

실패 경계 판정

증상직전 통과우선 확인반증 시험판정
pin active, LAPIC IRR 없음device line 측정RTE mask/vector/destinationsoftware edge source와 비교IOAPIC route
unmask 즉시 stormRTE 설정polarity/level sourcedevice status clear 후 unmask전기/장치 원인
affinity 후 IRQ 정지이전 CPU 정상destination/vector moveRTE readback과 vector mapmigration
remote IRR 고정handler 실행LAPIC EOI와 source deassertEOI 전후 pin/RTE capturelevel 완료
GSI가 다른 pin일부 handler 동작GSI base/ISOpin 자극과 RTE pending 비교firmware map
그림 1. 3. IOAPIC redirection entry와 level EOI를 pin별로 검증한다의 실행 순서왼쪽에서 오른쪽으로 실제 소유권과 관찰 지점이 이동합니다.
01 device pin
02 IOAPIC input
03 RTE qualify
04 interrupt message
05 LAPIC IRR/ISR
06 handler source clear
07 EOI
08 remote IRR clear

실제 검증 절차

순서실행남길 증거판정 목적
1각 IOAPIC의 GSI 범위와 RTE 수를 계산합니다.GSI→pin map주소 확인
2문제 RTE low/high를 raw와 decoded로 저장합니다.vector/trigger/destination설정 확인
3pin level, remote IRR와 LAPIC ISR를 동시에 관찰합니다.level 상태 수명storm 분석
4affinity 이동 중 sequence interrupt를 보내 count를 검증합니다.loss/duplicate 0route update

주의64-bit RTE를 갱신할 때 중간 상태가 노출되지 않도록 kernel의 mask/update 순서를 따릅니다.

공개적으로 다시 확인할 수 있는 자료

공개되지 않은 vendor register나 integration별 offset을 추측해서 채우지 않았습니다. 아래 제조사 자료, architecture 문서와 Linux v6.18.37 원본에서 다시 확인할 수 있는 범위만 사용했습니다.