← Method 상세 목차DUJINLABS.COM

Hardware · Method detailed manual 04 · Linux v6.18.37

4. 계측기, firmware, kernel과 userspace를 공통 시간축으로 맞춘다

하나의 사건 ID를 GPIO marker, `trace_marker`, firmware log와 application payload에 넣고 각 clock의 offset과 drift를 보정합니다. 순서만 맞추는 것이 아니라 경계별 latency를 계산할 수 있게 합니다.

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

CHAPTER 04

4. 계측기, firmware, kernel과 userspace를 공통 시간축으로 맞춘다

하나의 사건 ID를 GPIO marker, `trace_marker`, firmware log와 application payload에 넣고 각 clock의 offset과 drift를 보정합니다. 순서만 맞추는 것이 아니라 경계별 latency를 계산할 수 있게 합니다.

event ID

timestamp가 달라도 동일 사건을 확실히 매칭합니다.

clock domain

scope, cycle counter, kernel monotonic과 userspace clock은 원점과 속도가 다릅니다.

marker latency

marker를 쓰는 행위에도 software/bus 지연이 있으므로 calibration이 필요합니다.

trace loss

buffer overflow와 overwrite를 기록하지 않으면 사건이 없었다고 오판합니다.

기록 항목과 판정 기준

항목수집 방법필수 metadata통과 기준누락 시 위험
hardware markerGPIO/analyzerevent ID encoding, probestimulus와 고정 관계software timestamp만 남음
kernel traceftrace/trace_markerclock, CPU, lost eventsentry/exit와 ID 연결buffer overflow
firmware logcycle counterfrequency, wrap, boot offsetkernel marker와 보정 가능서로 다른 clock 혼합
userspacepayload/monotonic timestampprocess/thread/sequencesocket 결과와 ID 일치application queue 지연 누락
calibration동시 markeroffset, drift, uncertainty시험 구간 오차 이내거짓 선후관계

실패한 실험을 바로잡는 표

증상문제점다시 고정할 변수재시험유효한 결론
로그 순서가 뒤집힘clock 원점 다름offset/drift동시 marker 회귀보정 후 순서
일부 event가 없음buffer overflow 가능lost counter/buffer size짧은 capture 재시험실제 loss와 수집 loss 분리
GPIO와 trace 차이가 변함marker latency 불안정CPU scheduling/MMIO postingRT pinning과 readback 비교marker uncertainty
장시간 drift초기 sync만 수행clock frequency구간별 calibrationdrift 보정
printk 추가 후 정상관측이 timing 변경low-overhead tracebinary buffer로 재시험timing race
그림 1. 4. 계측기, firmware, kernel과 userspace를 공통 시간축으로 맞춘다의 실행 순서왼쪽에서 오른쪽으로 실제 소유권과 관찰 지점이 이동합니다.
01 event ID 생성
02 hardware marker
03 firmware stamp
04 kernel trace_marker
05 driver events
06 userspace receipt
07 clock 보정
08 구간 latency

실제 검증 절차

순서실행남길 증거판정 목적
1모든 로그에 동일한 증가 event ID를 넣습니다.ID 매칭사건 식별
2시험 시작/끝에 동시 marker를 발생시킵니다.offset/driftclock 보정
3trace lost event와 buffer 상태를 결과에 포함합니다.수집 완전성부재 증거 검증
4경계별 delta와 uncertainty를 계산합니다.latency 표상한 분석

주의서로 다른 clock의 raw timestamp를 숫자 크기만으로 정렬하지 않습니다.

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

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

Linux ftrace

trace_marker, function graph와 event tracing