[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Xen-ia64-devel] SMP guest and itc
Alex Williamson wrote:
> On Mon, 2006-02-13 at 09:33 +0100, Tristan Gingold wrote:
>>> That said, I agree that Xen needs to pre-synchronize ITC
>>> for host SMP to work properly. I don't think guest SMP
>>> for Linux will force ITC to be paravirtualized, but
>>> I guess Tristan will let us know if he discovers otherwise.
>> Currently this is my option: Xen pre-synchronize ITC and no more ITC
>> virtualization is performed.
> Thinking out loud... I wonder if it would be a better long term
> approach to report the ITC as having drift to guest domains and
> introduce a paravirtualized xen time interpolator. I'm worried that
> if the ITC is fully virtualized, things like gettimeofday() on an SMP
> guest could cause lots of ring crossings. Using a time interpolator,
> we might be able to let any jitter protection or contention
> algorithms happen in xen and get a little more efficiency. At some
> point we'll need to run on a system where the ITCs drift so we can't
> count on pre-sync'd ITCs as the only long term solutions. Thanks,
Base on my understanding, the ITC drift between different processor
after fixup done in Linux or Xen today is less than 100ns. So I think
that is not a big issue as if we guarantee the guest doesn't see
backward time. (As VP migration usually take longer than 100ns)
For the gettimeofday() concern, I don't agree. Because even we support
full virtualization, an paravirtualized guest can still get guest ITC
quickly by exposing the formula to guest or accessing share memory (X86
use share memory). The points in my mind is that:
1: Hypervisor do full virtualization.
2: Para-domain can accelerate ITC access thru share memory or
3: hardware domain must cross virtualization fault/resume that
is less effective than para-domain.
Anyway, gettimeofday is not frequently accessed, so it is not a
Meanwhile, what Dan concerned about fast timer IRQ reflection
can still be implemented later after the full virtualization framework
is done :-)
So I suggest we start full virtualization now, but para domain
and VTI domain do slight difference in acceleration.
Xen-ia64-devel mailing list