← Method 상세 목차

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 제거 후 동일 장비에서 정상 시험을 반복합니다.완전 복구잔존 상태 검출

시뮬레이터에서는 주입 모델과 판정 기준을 함께 고정합니다

Renode는 Robot Framework 시험을 CI에서 반복 실행할 수 있습니다. 먼저 사용하는 보드·주변장치 모델이 필요한 오류를 표현하는지 확인하고, firmware 버전, 모델·스크립트, 입력, 주입 시점, 예상 오류와 복구 조건을 같은 시험 기록에 묶습니다. 정상 경로뿐 아니라 timeout 뒤의 자원 해제와 fault 제거 후 정상 동작까지 판정해야 합니다. Renode 자동 시험 문서

응답 데이터를 넣는 I²C 시험 장치가 있다는 사실만으로 NAK, 쓰기 도중 전원 차단, 늦은 인터럽트가 모두 구현돼 있다고 보지 않습니다. 필요한 상태와 시간 동작을 모델·시험 스크립트에서 따로 확인합니다. 시뮬레이션 통과는 실제 flash의 전원 차단 특성이나 보드의 전기적·시간적 동작을 입증하지 않으므로, 제품의 허용 범위에서 실장비 검증을 별도로 수행합니다. Renode 시험 API의 지원 범위

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

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

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

Linux ftrace

trace_marker, function graph와 event tracing