clocksource tsc不稳定

好吧,现在我有真正的服务器故障;)

经过一段时间的启动(大约一分钟)我的服务器挂起。 我所能做的就是重置硬盘。 然后在/var/log/kern.log中重新启动后,我可以find:

Jul 29 22:38:57 leonidas kernel: [ 90.729598] longhaul: Failed to set requested frequency! Jul 29 22:38:57 leonidas kernel: [ 90.731252] longhaul: Enabling "Ignore Revision ID" option. Jul 29 22:38:57 leonidas kernel: [ 91.201461] longhaul: Failed to set requested frequency! Jul 29 22:38:57 leonidas kernel: [ 91.201482] longhaul: Disabling ACPI C3 support. Jul 29 22:38:57 leonidas kernel: [ 91.204230] longhaul: Disabling "Ignore Revision ID" option. Jul 29 22:38:58 leonidas kernel: [ 91.416133] longhaul: Failed to set requested frequency! Jul 29 22:38:58 leonidas kernel: [ 91.416152] longhaul: Enabling "Ignore Revision ID" option. Jul 29 22:38:58 leonidas kernel: [ 91.960048] Clocksource tsc unstable (delta = -105611479 ns) 

我在网上发现了一些资源,它说改变clocksource,或者禁用ACPI。 我试图禁用ACPI,但它并没有帮助(但我注意到悬挂前有更长的时间)。 我不能改变时钟,因为我的系统没有这样的。

cat / sys / devices / system / clocksource / clocksource0 / available_clocksource的输出:
acpi_pm jiffies tsc

我的系统是VIA Epia硬件上的ubuntu服务器。

您的CPU拒绝与系统配合,因为它试图控制CPU的时钟频率。 这似乎是某些硬件的已知问题; 对于某些configuration来说 , 长途驾驶者会被打破 ,这又会导致CPU功率节省,也就是CPU频率缩放问题。 如果你回头看看你原来的错误张贴,你可以清楚地看到,长途司机是“活着,很好”,即使它被认为是“破”。 使用不同的clocksource禁用或覆盖将是您的目标。

TSC代表“时间戳记计数器”,它应该与CPU的速度一致地增加。 当CPUdynamic改变频率时,TSC'改变'或'偏离',内核通知它; 因此,内核中关于TSC的日志中的消息。 这里的诀窍是findCPU频率调节器并closures该function,或始终启用最大CPU。 基本上,你希望CPU能够在没有频率调整的情况下运行全油门。 在Ubuntu上,这也可能受到CPUtypes的影响 – 我的个人电脑是Athlon XP的老式盒子,所以它安装了powernowd守护进程来控制CPU频率,因为它是AMD的CPU, 尽pipe它不能使用这个function 。 英特尔的CPU将(可能)使用其他的东西,威盛仍然有所不同。 你可以这样做

 apropos power 

…看手册页中提出了哪些程序(这又会给你一些关于什么程序可能是罪魁祸首的快速线索)。

另一种方法是将clocksource显式设置为acpi_pm ,根据您提供的输出,这似乎是支持的。 你也可以试试jiffies但是acpi_pm可能会给你更好的结果。


一些search暗示你可能使用的是基于VIA的芯片,在处理CPU频率缩放时偶尔会遇到驱动问题 。 因为我不知道你的具体硬件设置,所以我不能告诉你更多。 祝你好运。