[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] TSC virtualization across different host frequency platform migration



> that's always the case even w/o migration, since VM can be
> preempted at any time.

Not if it the vcpu is pinned, and that may often
be the case for database apps.

> That's really application specific, depending on the frequency
> of gettimeofday, e.g. in some database transation to stamp
> each record fastly. I had no exact data though. One of my
> colleagues (Xiaowei Yang) once solved one severe performance
> downgrade issue (orders of magnitude, >10%), when guest
> is observed falling back to use vHPET instead of TSC. The
> reason for fallback is not important here, but that actually inspires
> us to pay more attention here.

I'm suggesting that you measure and compare the cycle
cost of a TSC read and a vTSC read (and maybe also
a vHPET read), and also look at the code to see what
the bottleneck is for a vTSC read and if it can be made
faster.  And since your solution doesn't solve PV time,
maybe also measure a vTSC read in a PV guest.

I also agree with Keir that a tsc scaler might be a
good enhancement to request for future VT-x designs.

> -----Original Message-----
> From: Tian, Kevin [mailto:kevin.tian@xxxxxxxxx]
> Sent: Thursday, April 23, 2009 12:15 AM
> To: Dan Magenheimer; Dong, Eddie; xen-devel@xxxxxxxxxxxxxxxxxxx
> Cc: Keir Fraser; Zhang, Xiantao; Yang, Xiaowei
> Subject: RE: [Xen-devel] TSC virtualization across different
> host frequency platform migration
>
>
> >From: Dan Magenheimer [mailto:dan.magenheimer@xxxxxxxxxx]
> >Sent: 2009年4月23日 11:40
> >
> >OK, I think I understand, but I think you are
> >solving a very limited problem ("make sure that
> >a user/program that requests time-of-day gets
> >an answer which is close to accurate") but
> >not solving the broader class of time problems,
> >and you may be making them worse.  If your solution
> >is implemented and the OS or an application reads tsc,
> >the values obtained will be monotonically increasing
> >but will have large gaps, correct?
>
> that's always the case even w/o migration, since VM can be
> preempted at any time.
>
> >
> >If software-emulated tsc reads is really 10% loss
> >in system performance, I agree that this might be
> >the lesser of two evils.  But I don't believe the
> >10%.
>
> That's really application specific, depending on the frequency
> of gettimeofday, e.g. in some database transation to stamp
> each record fastly. I had no exact data though. One of my
> colleagues (Xiaowei Yang) once solved one severe performance
> downgrade issue (orders of magnitude, >10%), when guest
> is observed falling back to use vHPET instead of TSC. The
> reason for fallback is not important here, but that actually inspires
> us to pay more attention here.
>
> Thanks,
> Kevin
>
> >
> >> -----Original Message-----
> >> From: Tian, Kevin [mailto:kevin.tian@xxxxxxxxx]
> >> Sent: Wednesday, April 22, 2009 9:21 PM
> >> To: Dong, Eddie; Dan Magenheimer; xen-devel@xxxxxxxxxxxxxxxxxxx
> >> Cc: Keir Fraser; Zhang, Xiantao
> >> Subject: RE: [Xen-devel] TSC virtualization across different
> >> host frequency platform migration
> >>
> >>
> >> >From: Dong, Eddie
> >> >Sent: 2009年4月23日 9:29
> >> >
> >> >Dan Magenheimer wrote:
> >> >> Hi Eddie/Kevin --
> >> >>
> >> >> I'm sorry to be dense, but I don't understand the
> >> >> details of your solution.  I'm also not sure I
> >> >> understand the problem you are trying to solve.
> >> >> The problem description doesn't describe a problem,
> >> >> just an event.
> >> >>
> >> >> I'm guessing the problem is:  When a guest chooses
> >> >> TSC as its primary clocksource AND a migration later
> >> >> occurs to a host with a different TSC frequency
> >> >> THEN wallclock time (e.g. the "date" command)
> >> >> becomes incorrect.
> >> >
> >> >Mostly yes though don't know if guest wall clock depends on
> >> >TSC heavily.
> >> >
> >> >>
> >> >> I'm also guessing that you are NOT trying to solve
> >> >> the problem:  An application that uses TSC
> >> >> heavily to measure the passage of time AND
> >> >> calibrates TSC on host A AND invisibly
> >> >> migrates to host B with a different TSC
> >> >> frequency THEN will NOT be able to accurately
> >> >> measure the passage of time.  However, it will
> >> >> continue to be monotonically increasing.
> >> >
> >> >Yes, if we don't scale the TSC.
> >> >The proposal tries to solve the problem.
> >> >
> >> >We can use software trap and emulate to scale the TSC so
> >> >that guest TSC after migration is same with that before migration.
> >> >
> >> >But this is not optimial since the overhead may be too high. So we
> >> >propose to use smart scaling, which continuously use TSC_OFFSET,
> >> >but adjust the TSC_OFFSET value time to time (today it is fixed),
> >> >so that an application that uses TSC heavily to measure the
> >> >passage of time
> >> >can get correct time.
> >> >
> >>
> >> So we're really not trying to solve the micro-level accuracy if app
> >> tries to use TSC for that purpose, which always bias from bare
> >> metal as long as running in a VM. Here we're trying to ensure
> >> macro-level accuracy and thus ToD in guest after migration, with
> >> performance optimized if app in VM uses gettimeofday frequently.
> >> In that way, gap between trap vs. notrap would be orders of
> >> magnitude.
> >>
> >> Thanks
> >> Kevin
> >

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.