← Method 상세 목차DUJINLABS.COM

Hardware · Method detailed manual 05 · Linux v6.18.37

5. fault injection으로 오류 경로와 timeout을 검증한다

reset 지연, clock 차단, 잘못된 mapping, allocation 실패, interrupt mask와 packet loss를 의도적으로 주입해 예상한 status, timeout, rollback과 재시도가 실제로 실행되는지 확인합니다.

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

CHAPTER 05

5. fault injection으로 오류 경로와 timeout을 검증한다

reset 지연, clock 차단, 잘못된 mapping, allocation 실패, interrupt mask와 packet loss를 의도적으로 주입해 예상한 status, timeout, rollback과 재시도가 실제로 실행되는지 확인합니다.

한 경계

한 번에 하나의 fault만 주입해 어떤 checkpoint가 처음 달라지는지 봅니다.

범위

fault가 다른 device나 filesystem까지 손상하지 않도록 대상과 지속시간을 제한합니다.

복구

오류 검출뿐 아니라 quiesce, rollback, resource release와 재시작까지 통과해야 합니다.

watchdog

무한 대기 대신 문서화된 timeout과 상태 snapshot이 남아야 합니다.

기록 항목과 판정 기준

항목수집 방법필수 metadata통과 기준누락 시 위험
fault pointdebugfs/hook/instrumentobject, index, duration정확한 한 경계주입 위치 불명
expected errorspec/code reviewstatus/errno/timeout예상 경로 실행다른 오류를 성공으로 오인
rollbacktrace/resource count해제 역순, refcount누수/잔존 work 0재시험 오염
blast radiusisolation/watchdog대상 장치와 안전 한계다른 자원 정상시스템 손상
recovery proof동일 정상 시험재시작 조건fault 제거 후 반복 통과오류 로그만 확인

실패한 실험을 바로잡는 표

증상문제점다시 고정할 변수재시험유효한 결론
fault가 재현되지 않음hook가 경로 밖실제 실행 함수/objecttrace로 hit 확인주입점 수정
예상보다 넓게 고장shared reset/clockresource topologyscope 축소공유 경계 확인
timeout 후 재사용 불가오류 검출 성공rollback/ownershipresource snapshot diff복구 누락
메모리 증가기능 복구mapping/ref/work반복 fault와 leak 검사lifetime 오류
다음 boot까지 영향fault 제거됨persistent register/firmwarepower cycle과 reset scope잔존 상태
그림 1. 5. fault injection으로 오류 경로와 timeout을 검증한다의 실행 순서왼쪽에서 오른쪽으로 실제 소유권과 관찰 지점이 이동합니다.
01 정상 baseline
02 fault arm
03 event ID
04 첫 실패 checkpoint
05 timeout/error
06 quiesce/rollback
07 fault 해제
08 동일 정상 시험

실제 검증 절차

순서실행남길 증거판정 목적
1정상 경로에서 주입 hook가 실제 hit하는지 먼저 확인합니다.hit counter위치 검증
2예상 status/errno/timeout과 rollback 목록을 작성합니다.oracle판정 기준
3fault 한 종류를 한 번 주입하고 모든 snapshot을 수집합니다.첫 실패 경계원인 연결
4fault 제거 후 동일 장비에서 정상 시험을 반복합니다.완전 복구잔존 상태 검출

주의전원과 clock fault injection은 hardware 손상 가능성이 있으므로 operating limit와 안전 회로 안에서만 수행합니다.

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

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

Linux ftrace

trace_marker, function graph와 event tracing