Linux 부팅을 볼 때마다 다음 메시지가 표시됩니다.
클럭 소스 tsc 불안정 (델타 = NNNNNNNN ns)
여기서 NNNNNNNN은 매우 큰 수이며 양수이거나 음수 일 수 있습니다.
이 메시지는 무엇을 의미합니까? 이것에 대해 걱정해야합니까?
Linux 부팅을 볼 때마다 다음 메시지가 표시됩니다.
클럭 소스 tsc 불안정 (델타 = NNNNNNNN ns)
여기서 NNNNNNNN은 매우 큰 수이며 양수이거나 음수 일 수 있습니다.
이 메시지는 무엇을 의미합니까? 이것에 대해 걱정해야합니까?
답변:
나는 오늘이 메시지를 솔직하게보고 실제로 그것이 무엇을 의미하는지 전혀 모른다.
즉, 타임 스탬프 카운터 에서 Wikipedia 기사를 읽었습니다 ( tsc
오류 메시지의 내용). 이 기사는 두 번째 단락에서 TSC와 관련된 문제를 언급합니다.
타임 스탬프 카운터는 최근까지 CPU 타이밍 정보를 얻는 우수한 고해상도 오버 헤드 방식이었습니다. 멀티 코어 / 하이퍼 스레드 CPU, 여러 CPU가있는 시스템 및 "최대 절전"운영 체제의 출현으로 TSC는 정확한 결과를 제공 할 수 없습니다.— 가능한 결함을 수정하기 위해 세심한주의를 기울이지 않는 한 : 틱 속도 및 모든 코어 (프로세서)의 시간 유지 레지스터 값이 동일한 지 여부. 단일 마더 보드에있는 여러 CPU의 타임 스탬프 카운터가 동기화 될 것이라는 약속은 없습니다. 이러한 경우 프로그래머는 코드를 단일 CPU에 고정하여 신뢰할 수있는 결과를 얻을 수 있습니다. 그럼에도 불구하고 OS 또는 BIOS에서 수행 한 절전 조치로 인해 CPU 속도가 변경되거나 시스템이 최대 절전 모드로 전환 된 후 다시 시작될 수 있습니다 (타임 스탬프 카운터 재설정). 후자의 경우, 관련성을 유지하려면 응용 프로그램에 필요한 시간 해상도에 따라 카운터를 정기적으로 다시 교정해야합니다.
요컨대, 현대 시스템에서 TSC는 시간을 정확하게 측정하기 위해 빠릅니다 . 그리고 그것이 메시지가 말하는 것입니다. 시스템에서 TSC는 안정적인 시간 소스가 아닙니다.
는 delta
, 내가 생각할 겁니다, TSC의 두 눈금 사이에보고 된 시간 델타는 지적했다. 의미는 TSC가 카운트마다 1
, NNNNNNNNN
나노초는 통과됩니다. 그래서 그것은 당신이 보통 매우 정확한 시간을 유지할 수있는 방법입니다.
리눅스 커널은이 빈도를 여러 번 점검하여 (소스가 안정적인지 판단하기 위해) 다른 결과를 얻었습니다. 따라서 메시지입니다.
그래서 걱정해야합니까?
나는 솔직히 모른다. 내 이해에 따르면,이 문제는 코어간에 "이동"되는 프로세스 (모든 코어가 다른 TSC 주파수를 가질 수 있음) 또는 코어 주파수를 변경하는 코어 (절전과 같은)에서 발생합니다.
커널이이 문제를 스스로 감지하고 그에 따라 조정하므로 메시지가 인쇄 될 가능성이 높습니다.
그리고 커널 소스 ( arch/x86/kernel/tsc.c
) 에서 읽은 내용에서 가정에 너무 멀다고 생각하지 않습니다.
나는 메시지가 중대한 상태를 의미한다고 의심한다. 그리고 나는 그것이 중요하다면 지금까지 알고 있다고 가정합니다.
tsc
참조 생각 합니다 . 도움이된다면.