O que significa “clocksource tsc unstable”?

8

Sempre que vejo a inicialização do Linux, vejo esta mensagem:

clocksource tsc unstable (delta = NNNNNNNN ns)

onde NNNNNNNN é um número muito grande que pode ser positivo ou negativo.

O que essa mensagem significa? Eu deveria estar preocupado com isso?

    
por bwDraco 25.02.2012 / 17:52

1 resposta

7

Eu sinceramente vejo essa mensagem pela primeira vez hoje e não tenho ideia do que ela realmente significa.

Dito isso, eu li o artigo da Wikipedia sobre o Contador do Cronograma (que é o que o tsc em a mensagem de erro significa). O artigo menciona um problema com o TSC no segundo parágrafo:

The time stamp counter has, until recently, been an excellent high-resolution, low-overhead way of getting CPU timing information. With the advent of multi-core/hyperthreaded CPUs, systems with multiple CPUs, and "hibernating" operating systems, the TSC cannot be relied on to provide accurate results — unless great care is taken to correct the possible flaws: rate of tick and whether all cores (processors) have identical values in their time-keeping registers. There is no promise that the timestamp counters of multiple CPUs on a single motherboard will be synchronized. In such cases, programmers can only get reliable results by locking their code to a single CPU. Even then, the CPU speed may change due to power-saving measures taken by the OS or BIOS, or the system may be hibernated and later resumed (resetting the time stamp counter). In those latter cases, to stay relevant, the counter must be recalibrated periodically (according to the time resolution your application requires).

Em suma, em sistemas modernos, o TSC é uma droga para medir o tempo com precisão . E é isso que a mensagem está dizendo. No seu sistema, o TSC não é uma fonte de tempo estável.

O delta observou, suponho, é o delta de tempo relatado entre dois ticks do TSC. Significado, toda vez que o TSC contar 1 , NNNNNNNNN nanossegundos terá passado. Então, é assim que você geralmente consegue manter um tempo muito preciso.

O kernel do Linux terá verificado esta freqüência várias vezes (para determinar se a fonte é estável) e obteve resultados diferentes. Assim, a mensagem.

Então, você precisa se preocupar?
Eu sinceramente não sei. No meu entender, esse problema surge dos processos sendo "movidos" entre os núcleos (cada núcleo pode ter uma frequência TSC diferente) ou um núcleo alterando sua frequência central (como com a economia de energia).

O mais provável é que a mensagem seja impressa apenas porque o kernel detectou este problema e agora será ajustado de acordo.

E, pelo que li nas fontes do kernel ( arch/x86/kernel/tsc.c ), não acho que estou muito longe com minhas suposições.

Eu duvido que a mensagem signifique uma condição crítica. E eu baseio isso na suposição de que você já saberia se era crítico.

    
por 25.02.2012 / 18:13

Tags