← Method 상세 목차DUJINLABS.COM

Hardware · Method detailed manual 03 · Linux v6.18.37

3. register snapshot을 access semantics와 함께 저장한다

enable, raw status, masked status, ownership, error와 completion을 사건 전·직후·timeout에 읽습니다. W1C, read-to-clear, latch, self-clear와 reserved bit 규칙을 먼저 표로 만들고 수집 순서를 정합니다.

상세 표
2
검증 행
14
절차
4 checkpoints
기준
Measurement · trace · fault injection · Linux v6.18.37

CHAPTER 03

3. register snapshot을 access semantics와 함께 저장한다

enable, raw status, masked status, ownership, error와 completion을 사건 전·직후·timeout에 읽습니다. W1C, read-to-clear, latch, self-clear와 reserved bit 규칙을 먼저 표로 만들고 수집 순서를 정합니다.

side effect

register read 자체가 상태를 소비할 수 있습니다.

W1C

1을 쓴 bit만 clear하므로 blind read-modify-write가 새 event를 지울 수 있습니다.

snapshot group

서로 연관된 register를 가능한 짧은 간격에 읽고 timestamp를 붙입니다.

identity

IP version과 합성 option이 확정돼야 field 해석표를 고를 수 있습니다.

기록 항목과 판정 기준

항목수집 방법필수 metadata통과 기준누락 시 위험
IP identityID/version registerrelease, integration optiondatasheet와 일치다른 offset/bit 적용
access typedatabookRO/RW/W1C/RC/self-clear수집 code에 반영상태를 관찰 중 파괴
raw/maskedMMIO snapshottimestamp, CPU, context둘의 차이 설명 가능mask 문제 누락
ownership/indexdescriptor/queue dumpbase, head, tail, owner한 시점의 일관된 ringstale/부분 snapshot
error contextstatus+address+IDfault source와 first error첫 오류 보존후속 오류가 원인처럼 보임

실패한 실험을 바로잡는 표

증상문제점다시 고정할 변수재시험유효한 결론
읽을 때마다 status 0read-to-clear 가능access semanticsmirror/debug register 사용관찰 방법 오류
dump 후 현상 사라짐수집이 상태 변경W1C/RC와 timingread-only 최소 captureHeisenbug
enable 정상인데 event 없음정적 설정만 봄raw status/owner사건 전후 deltaruntime 경계
ring dump가 모순여러 시점 혼합freeze/snapshot 시간짧은 critical capture비원자 관측
reboot마다 offset 의미 다름IP option/revision 차이identity registerrevision별 decode해석표 오류
그림 1. 3. register snapshot을 access semantics와 함께 저장한다의 실행 순서왼쪽에서 오른쪽으로 실제 소유권과 관찰 지점이 이동합니다.
01 identity read
02 semantics table
03 baseline
04 stimulus marker
05 raw status
06 masked/owner
07 timeout snapshot
08 clear/restore

실제 검증 절차

순서실행남길 증거판정 목적
1읽을 register마다 access type과 side effect를 적습니다.semantics manifest안전한 수집
2baseline/event/timeout 세 snapshot 형식을 고정합니다.동일 컬럼diff 가능
3W1C clear 값을 별도 기록하고 readback합니다.ack 증거event loss 방지
4descriptor 주소를 IOVA/PA/object와 연결합니다.주소 ledgerownership 검증

주의vendor databook이 없는 register의 reserved bit에 값을 쓰지 않습니다. 공개 driver 정의에서 확인 가능한 field만 사용합니다.

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

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

Linux ftrace

trace_marker, function graph와 event tracing