← Interrupt 상세 목차

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를 소비할 수 있습니다.

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

공개되지 않은 제조사 레지스터나 제품별 오프셋은 추측하지 않았습니다. 아래의 제조사 자료, 아키텍처 문서, Linux v6.18.37 원본으로 확인할 수 있는 내용만 다뤘습니다.