Cosa significa "clocksource tsc unstable"?


10

Ogni volta che vedo l'avvio di Linux, vedo questo messaggio:

clocksource tsc unstable (delta = NNNNNNNN ns)

dove NNNNNNNN è un numero molto elevato che può essere positivo o negativo.

Cosa significa questo messaggio? Dovrei essere preoccupato per questo?


Penso che si tscriferisca al contatore dei timestamp . Se questo aiuta.
Der Hochstapler,

Inoltre, visto quello che trovo su questo messaggio online, vedi questo messaggio su una macchina fisica o virtuale. Sembra che sia rilevante.
Der Hochstapler,

Sia fisico che virtuale. Ricevo questo messaggio su diversi sistemi quando avvio Linux su di essi.
bwDraco,

Ho ricevuto esattamente questo messaggio /var/log/messagequando ho aggiunto le opzioni "acpi = off" all'opzione /etc/grub.conf(come kernel=opzione). Quando l'ho rimosso, riavviato, il messaggio era sparito. CentOS 6 con kernel: .6.32-279.19.1.el6.x86_64

Risposte:


8

Vedo onestamente questo messaggio per la prima volta oggi e non ho idea di cosa significhi effettivamente.

Detto questo, ho letto l'articolo di Wikipedia sul Time Stamp Counter (che è ciò che rappresenta tscil messaggio di errore). L'articolo menziona un problema con il TSC nel secondo paragrafo:

Fino a poco tempo fa, il contatore dei timestamp era un modo eccellente per ottenere informazioni sulla tempistica della CPU ad alta risoluzione e costi generali. Con l'avvento di CPU multi-core / hyperthreaded, sistemi con più CPU e sistemi operativi "in letargo", non è possibile fare affidamento sul TSC per fornire risultati accurati- a meno che non si presti molta attenzione a correggere i possibili difetti: tasso di tick e se tutti i core (processori) hanno valori identici nei loro registri di tempo. Non vi è alcuna promessa che i contatori di data e ora di più CPU su una singola scheda madre saranno sincronizzati. In questi casi, i programmatori possono ottenere risultati affidabili solo bloccando il loro codice su una singola CPU. Anche in questo caso, la velocità della CPU potrebbe cambiare a causa delle misure di risparmio energetico adottate dal sistema operativo o dal BIOS, oppure il sistema potrebbe essere ibernato e poi ripreso (azzerando il contatore del timestamp). In questi ultimi casi, per rimanere rilevante, il contatore deve essere ricalibrato periodicamente (in base alla risoluzione temporale richiesta dall'applicazione).

In breve, sui sistemi moderni, il TSC fa schifo per misurare con precisione il tempo . Ed è quello che ti dice il messaggio. Sul tuo sistema, TSC non è una fonte di tempo stabile.

L' deltaaffermato, suppongo, è il delta temporale riportato tra due tick del TSC. Vale a dire, ogni volta che il TSC conta 1, i NNNNNNNNNnanosecondi saranno passati. Quindi, è così che di solito puoi tenere un tempo molto preciso.

Il kernel di Linux avrà verificato questa frequenza più volte (per determinare se il sorgente è stabile) e ha ottenuto risultati diversi. Quindi, il messaggio.


Quindi, devi preoccuparti?
Onestamente non lo so. A mio avviso, questo problema deriva dal fatto che i processi vengono "spostati" tra i core (ogni core potrebbe avere una diversa frequenza TSC) o un core che cambia la sua frequenza core (come nel caso del risparmio energetico).

Molto probabilmente, il messaggio viene stampato solo perché il kernel ha rilevato questo problema da solo e ora si adatterà di conseguenza.

E, da quello che ho letto nei sorgenti del kernel ( arch/x86/kernel/tsc.c), non penso di essere troppo distante dai miei presupposti.

Dubito che il messaggio significhi una condizione critica. E mi baso sul presupposto che ormai sapresti se fosse critico.


2
Citando dallo stesso articolo alcune CPU moderne forniscono anche un contatore di timestamp costante : i processori Intel recenti includono un TSC a tasso costante (identificato dal flag constant_tsc in Linux / proc / cpuinfo). Con questi processori, il TSC legge alla velocità massima del processore indipendentemente dalla velocità effettiva della CPU.
scai,

Consiglieresti di usare hpet invece di tsc?
CMCDragonkai,

1
Vorrei solo aggiungere informazioni. Che oggi ho affrontato questo problema su uno dei nostri server supermicro. Il sistema operativo è RHEL 6.5 e fornisce lo stesso messaggio. E questo server gattona al ritmo della lumaca in questo momento. È passata un'ora e l'avvio non è ancora completo. Il mio prossimo passo sarà cambiare il contatore e aggiungere informazioni nel file grub.conf andando in modalità di salvataggio. Perché anche la modalità utente singolo non funziona
OmiPenguin il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.