rhel54 64bit系统的时钟step forward问题

来源:岁月联盟 编辑:exp 时间:2011-12-11

 

在vcpu overcommit的环境下,rhel54的32bit和64bit系统时钟漂移的现象不一样。

32bit系统时间会变慢,这个是reasonable的,但是64bit系统时间会变快,乍一听就觉得不合理,没有理由变快的。32bit有四个clocksource, 而64bit只有一个clocksource,就是jiffie。

通过查看代码发现,64bit在时钟中断上来时会对jiffie做补偿,根据tsc的差值来计算lost tick。

由于Vm启动时的timer_mode配成1了,也就是Xen会对中间的missed tick做补偿,从测试结果上来看,就是64bit的系统在xen和自身的双重补偿机制下,补多了,导致step forward了,不论是修改timer_mode还是修改64bit的command line都可以解决这个问题,实验也证明这两种方法都有效,

但是第二种更佳,第一种的时间会比第二种慢,和标准时间偏差的更多。

 

摘自 wanjia19870902的专栏