← Method 상세 목차

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를 숫자 크기만으로 정렬하지 않습니다.

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

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

Linux ftrace

trace_marker, function graph와 event tracing