clocksource

Time: tsc clocksource has been installed.
Clocksource tsc unstable (delta = 76024924 ns)
Time: pit clocksource has been installed.

カーネルブート時にこんなメッセージが出るのが気になる。

o RTC
o PIT (Programmable Interval Timer)
o Local APIC (Advanced Programmable Interrupt Controller) (a.k.a. lapic)
o ACPI Timer
o TSC* (Time Stamp Counter)
o HPET (High Precision Event Timer)
TSCi686 以降でサポートされているカウンタで,セット・リセットできない(読み出し専用)し,割り込み(アラーム)機能もありません(それ以外の上述のものはすべて割り込み機能を持っている)。CPU クロックベースなので省電力機能等でクロックが変動した場合に周波数が変動する可能性がありますし,TSC を読み出す命令である RDTSC 命令ですらアウトオブオーダー実行の影響を受けえます。などなどの欠点はありますが,Linux 2.6 のデフォルト動作では TSC が使えるときには使います。

補正に関する動作は kernel の clocksource パラメータにより指定できます。
clocksource=pit
PIT のみ利用・補正なし? (kernel/arch/i386/i8253.c)
clocksource=tsc
TSC を利用 (kernel/arch/i386/tsc.c)

http://d.hatena.ne.jp/dayflower/20070723

なるほど、エミュレータだと、tscが負荷に応じて変動してしまってunstableと判定されてしまってるってことなのかな。

clocksource=pit (i8253 VMWareのゲストマシンではこれが推奨)

http://iswebnet.sakura.ne.jp/st/loudear/ppblog/index.php?UID=1196669407

やはりエミュレータ系ではpitが推奨らしい。
clocksouceはカーネルパラメータで指定する方法はあるけど、menuconfigではそれに相当するものはない?
まあ、tscがだめだったらpitにするって処理をやってくれてるので気にしなければいいという話もあるが。

Kernel command line: clocksource=pit
Time: pit clocksource has been installed.
Clocksource tsc unstable (delta = 1432021026 ns)

実際にclocksource=pitを指定してみた。
どっちにしてもtscのレポートは表示されるんだな。