2009年8月30日日曜日

softtsc(TSCのエミュレーション)

最近のXenでは、Xen起動時にsofttscオプションを指定することで、HVMドメインにおいてTSCをエミュレーションできるようになります。この機能を使うことにより、HVMドメインの時刻のずれをある程度抑制できます。




■設定例

/boot/grub/menu.lst抜粋

title Xen-unstable + 2.6.18.8-xen, iommu=0
        root (hd0,0)
        kernel /xen-3.5.gz iommu=0 com1=9600,8n1 console=com1,vga softtsc
        module /vmlinuz-2.6.18.8-xen ro root=LABEL=/
        module /initrd-2.6.18.8-xen.img

■実行例

softtscオプションが有効な場合、HVMドメインがRDTSCインストラクションを発行すると、Xenが管理するドメインの実行時間を基にTSCカウンタの値が決定されます。また、HVMドメインは(CPUの実働クロックに関わらず)仮想CPUのクロックを1000MHzと報告します。

softtscオプションありの場合

root@vm245:~# cat /proc/cpuinfo
 processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Quad CPU    Q8400  @ 2.66GHz
stepping        : 10
cpu MHz         : 1000.005
……

デフォルト(softtscオプションなし)の場合は、HVMドメインがRDTSCインストラクションを発行すると、CPUが持つTSCカウンタの値をそのまま受け取ります。

softtscオプションなしの場合

hasegaw@vm245:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Quad CPU    Q8400  @ 2.66GHz
stepping        : 10
cpu MHz         : 2666.414
……

■注意点


  • softtscオプションを指定した場合、そのXenハイパーバイザ上で実行されるすべてのHVMドメインに機能します。

  • 将来的には仮想CPUのクロック速度、ドメイン単位での有効化/無効化が可能になると思われます。

  • マージ時期 2008年7月(xen-unstable)

0 件のコメント:

コメントを投稿