시각 읽기와 인터럽트 예약을 구분합니다
clocksource는 카운터 읽기와 cycle 단위 시간의 환산 정보를 제공합니다. clockevent는 다음 이벤트의 인터럽트를 예약합니다. sched_clock은 스케줄링과 시간 계산에 쓰이는 별도 읽기 경로이고, 달력 시각은 그 위의 시간 관리 정책입니다. 한 드라이버가 여러 역할을 제공해도 각 규약은 따로 확인합니다.
v6.18.37의 __clocksource_register_scale은 주파수로 mult/shift와 최대 idle 범위를 준비하고 선택 목록과 watchdog 경로에 등록합니다. 반환값 0은 실제 보드의 정확도와 절전 연속성을 측정했다는 뜻이 아닙니다.
폭·주파수·분할 읽기의 조건
mask는 실제 유효 카운터 폭과, 전달하는 Hz는 카운터의 증가 속도와 맞아야 합니다. 작은 폭의 카운터는 wrap 사이에 시간을 갱신할 수 있는 범위가 제한됩니다. 올바른 숫자처럼 보이는 MMIO 값도 단위나 주파수가 틀리면 시간 환산 결과가 틀립니다.
32비트 카운터를 16비트 두 번으로 읽으면 중간 rollover로 상하위 값이 서로 다른 시점에 속할 수 있습니다. 검토한 FPGA 사례는 전용 latch 요청 뒤에 두 값을 읽습니다. 다른 하드웨어에 복사하지 말고 문서가 보장하는 latch 또는 재시도 순서를 확인해야 합니다.
rating과 플래그가 기능을 만들어 주지는 않습니다
clocksource.h는 rating을 품질에 따른 선택 값으로 설명하고 점수 부풀리기를 경계합니다. 예시의 500을 복사한다고 해서 정확도나 읽기 비용이 개선되지는 않습니다. 선택은 rating 외에 oneshot 모드의 high-resolution 자격, 사용자 지정과 timekeeping_notify 결과에도 영향을 받습니다.
CLOCK_SOURCE_SUSPEND_NONSTOP은 절전 중에도 카운터가 계속 간다는 특성 선언입니다. 전원이나 PLL이 꺼지는 카운터를 계속 움직이게 하는 옵션이 아닙니다. 지원 절전 상태의 연속성을 하드웨어에서 확인해야 합니다. watchdog의 불안정 감지와 재선택도 모든 고장을 예방하는 인증은 아닙니다.
현재 선택 이름, 기준 시간과 카운터 차이의 관계, CPU 이동과 절전 전후 관찰을 나누어 기록합니다. 여기서는 고정 버전 구현을 검토했으며 FPGA 드라이버 실행이나 실제 시간 오차 측정은 수행하지 않았습니다.
- 등록
카운터 규약과 환산 정보
- 선택
자격·우선순위·전환 결과
- 검증
실제 시간·절전·CPU 조건