← Interrupt 상세 목차DUJINLABS.COM

Hardware · Interrupt detailed manual 04 · Linux v6.18.37

4. ICC_* CPU interface의 acknowledge, priority와 EOI를 읽는다

system register interface enable, group enable, PMR/BPR, running priority, IAR acknowledge와 EOIR/DIR의 역할을 exception entry와 연결합니다.

상세 표
2
검증 행
14
절차
4 checkpoints
기준
Arm GICv3 · Linux irqchip · Linux v6.18.37

CHAPTER 04

4. ICC_* CPU interface의 acknowledge, priority와 EOI를 읽는다

system register interface enable, group enable, PMR/BPR, running priority, IAR acknowledge와 EOIR/DIR의 역할을 exception entry와 연결합니다.

SRE

ICC_SRE_ELx가 system register CPU interface 접근을 허용해야 합니다.

PMR

interrupt priority mask이며 현재 실행 우선순위와 preemption 판단에 영향을 줍니다.

IAR

읽는 순간 최고 우선순위 pending INTID를 acknowledge해 active로 바꿉니다.

EOImode

priority drop과 deactivate가 EOIR 하나 또는 EOIR+DIR로 분리될 수 있습니다.

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

항목소유자값의 의미정상 증거오류 해석
ICC_SRE_EL1CPU interfacesystem register enableSRE=1trap/legacy interface
ICC_IGRPEN1_EL1CPU interfaceGroup1 enablekernel IRQ policy상 1CPU별 delivery 차단
ICC_PMR_EL1CPU interfacepriority threshold예상 IRQ priority 허용모든 IRQ masking
ICC_IAR1_EL1CPU interfaceacknowledged INTIDdevice 사건 INTID와 일치spurious 1023/특수 INTID
ICC_EOIR1_EL1/DIRCPU interfacepriority drop/deactivatehandler 후 active clearactive 고정/storm

실패 경계 판정

증상직전 통과우선 확인반증 시험판정
pending인데 IAR spuriousGICD pendinggroup/route/PMRPMR/IGRPEN snapshotCPU interface policy
IAR는 맞고 handler 없음exception entryirqdomain mappinghwirq→virq lookupLinux dispatch
nested IRQ가 안 됨첫 IRQ 처리PMR/BPR/DAIFpriority 다른 두 IRQ 주입preemption policy
EOI 후 즉시 재진입handler와 EOIlevel source cleardevice mask/clear 순서 변경장치 원인 유지
active가 안 지워짐EOIR writeEOImode/DIRICC_CTLR와 deactivate trace완료 방식 불일치
그림 1. 4. ICC_* CPU interface의 acknowledge, priority와 EOI를 읽는다의 실행 순서왼쪽에서 오른쪽으로 실제 소유권과 관찰 지점이 이동합니다.
01 exception
02 DAIF/priority check
03 ICC_IAR1 read
04 INTID mapping
05 handler
06 device clear
07 ICC_EOIR1
08 ICC_DIR optional

실제 검증 절차

순서실행남길 증거판정 목적
1CPU별 SRE, IGRPEN, PMR, BPR을 저장합니다.CPU interface 기준선정책 확인
2IAR INTID와 device status를 사건 번호로 연결합니다.source attribution번호 검증
3EOIR/DIR 전후 active 상태를 capture합니다.deactivate 완료EOImode 확인
4두 priority IRQ로 nesting과 latency를 측정합니다.preemption 순서priority 검증

주의ICC_IAR read는 단순 관찰이 아니라 acknowledge side effect가 있습니다. debugger에서 임의로 읽으면 handler가 받아야 할 interrupt를 소비할 수 있습니다.

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

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