1. 程式人生 > >由kvm-clock時鐘源導致的SUSE 11 SP1虛擬機器卡死的問題

由kvm-clock時鐘源導致的SUSE 11 SP1虛擬機器卡死的問題

當虛擬機器使用kvm-clock作為時鐘源時,kvm-clock從host的KVM核心模組獲取時間資訊,與當前vCPU的TSC時間戳一起處理後算出一個時鐘cycle值。虛擬機器根據該cycle值來得到當前的時間。

kvm-clock計算cycle值依賴於host設定時間資訊時的TSC值,以及vCPU讀取該資訊時的TSC兩者的差值。但host給虛擬機器多個vCPU設定時間相近的時間資訊時,host不同的CPU讀到的TSC值也可能相差較大,導致虛擬機器裡面不同vCPU算出的cycle值回跳,即時鐘回退。時鐘回退導致虛擬機器核心死迴圈卡住。