>-----Original Message-----
>From: Avi Kivity [mailto:[EMAIL PROTECTED] 
>Sent: 2007年6月21日 17:01
>To: Dong, Eddie
>Cc: Gregory Haskins; kvm-devel@lists.sourceforge.net
>Subject: Re: [kvm-devel] A testing for KVM
>
>Dong, Eddie wrote:
>> In Xen, we virtualize TSC too to make sure the guest TSC time is
>> synchronized with 
>> guest PIT time, so guest can see an accurate virtual time. (refer my
>> presentation
>> doc on Xen September summit 06.) It is good but time to time
>> we see bugs due to the complicated time virtualization 
>mechanism. As far
>> as I know,
>> Vmware doesn't solve this problem either, it depends on guest
>> application to sync
>> guest time with real time (network or host). 
>>
>>   
>
>Do you mean that rdtsc is trapped?  Or that you play with 
>TSC_OFFSET so 
>that time is smoother?

Yes, change the TSC_OFFSET value in case a VM is descheduled. 
And adjust it back till all pending PIT irq is injected.

In Xen, we keep a notion of "guest time", so each time resource no matter 
guest PIT, RTC, PM timer or TSC time should sync with "guest time".

I mention this, but not suggest to implement same way since it is 
too complicated.

>
>> We can use PV time of linux, another way is to persuade community to
>> give up 
>> the cross reference of PIT and TSC to give up picking the lost ticks
>> given that 
>> today's OS is smart enough and won't disable IRQ for that long time
>> before
>>  another PIT expires (1-4ms), so those kind of picking up 
>lost ticks is
>> quit 
>> unnecessary, especially for X86-64 (faster processor).
>>
>> Another big issue is that guest Linux will eventually fail 
>back to PIT
>> time source after
>> hundreds of "lost ticks" and thus give up TSC time source. This is OK
>> for normal application
>> but dead set for database server where gettimeofday is 
>frequently used.
>> We saw
>>  30-40% performance degradation due to this only. (gettimeofday  will
>> read port 40
>>  multiple times which is extremely slow under virtualization).
>>
>> I will ask Jun, Avi to bring this issue to virtualization 
>mini summit to
>> persuade 
>> communitty to do some changes in guest timer IRQ handler.
>>   
>
>For newer kernels, we can supply a paravirt clocksource (as in 
>Anthony's 
>patchset) which will  remove the need for changing the bare hardware 
>time code.

Yes. but I am wondering about the performance. Hypercall to get 
host time should be expansive than hardware support TSC read which is
 about 200 cycles. I may make mistake since I didn't go through the patch
in very detail.

gettimeofday is very important :-)


Eddie

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to