← Interrupt 상세 목차DUJINLABS.COM

Hardware · Interrupt detailed manual 06 · Linux v6.18.37

6. ITS의 DeviceID·EventID를 LPI와 MSI까지 연결한다

PCIe Requester ID 또는 platform MSI DeviceID, MSI data의 EventID, ITS device/collection table, ITT와 LPI INTID, redistributor pending/property table을 한 translation chain으로 봅니다.

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

CHAPTER 06

6. ITS의 DeviceID·EventID를 LPI와 MSI까지 연결한다

PCIe Requester ID 또는 platform MSI DeviceID, MSI data의 EventID, ITS device/collection table, ITT와 LPI INTID, redistributor pending/property table을 한 translation chain으로 봅니다.

DeviceID

MSI를 발생한 장치를 ITS namespace에서 식별합니다. PCI requester ID와 변환 관계를 기록합니다.

EventID

장치의 MSI vector를 식별하고 ITT entry를 선택합니다.

Collection

target redistributor/PE와 연결돼 affinity 이동 시 command로 갱신됩니다.

LPI tables

property table은 enable/priority, pending table은 PE별 pending bit를 memory에 둡니다.

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

항목소유자값의 의미정상 증거오류 해석
GITS_TYPERITSDeviceID/EventID/collection 능력할당 상한과 일치table 크기 계산 오류
GITS_CBASER/CWRITER/CREADRITScommand queuewriter/reader 진행command stall
GITS_BASERITSdevice/collection table basevalid/cache/shareability 일치memory attribute 오류
GICR_PROPBASER/PENDBASERRedistributorLPI property/pending tablevalid base와 attributeLPI만 손실
MSI address/dataPCIe/deviceITS doorbell와 EventIDDeviceID/EventID mapping 일치message route 오류

실패 경계 판정

증상직전 통과우선 확인반증 시험판정
MSI write 보임, LPI pending 없음PCIe message 도착DeviceID/EventID와 ITS mappingsingle vector mapping 재생성ITS translation
ITS command queue 정지command writeCREADR/CWRITER와 errorSYNC 포함 최소 commandtable/command memory
LPI가 다른 CPU로 감LPI 생성collection/affinityMOVI/SYNC와 target readbackcollection 경계
SPI는 되고 MSI만 안 됨GICD/CPU interface 정상ITS/LPI enable/tableplatform software LPI 주입ITS 경계
부하에서 MSI 유실초기 vector 정상pending table/cacheability/queuememory attribute와 overflow 확인table visibility/용량
그림 1. 6. ITS의 DeviceID·EventID를 LPI와 MSI까지 연결한다의 실행 순서왼쪽에서 오른쪽으로 실제 소유권과 관찰 지점이 이동합니다.
01 device MSI write
02 ITS DeviceID
03 EventID→ITT
04 LPI INTID
05 collection
06 GICR pending table
07 ICC_IAR
08 Linux MSI domain

실제 검증 절차

순서실행남길 증거판정 목적
1Requester ID, DeviceID, EventID, LPI, virq를 한 행에 둡니다.MSI 번호 ledgertranslation 확인
2ITS table base와 memory attribute를 IOMMU/CPU mapping과 대조합니다.주소/속성 증거table 접근 검증
3command queue writer/reader를 명령마다 기록합니다.command completionstall 위치
4vector affinity 이동 중 traffic을 보내 손실/중복을 측정합니다.이동 전후 countcollection update 검증

주의ITS table과 command queue는 일반 RAM이지만 hardware가 읽고 씁니다. cacheability/shareability와 DMA visibility를 architecture 요구에 맞춰야 합니다.

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

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