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

[Xen-ia64-devel] RE: Timer merge



> >Delivering all ticks to all guests is certainly not
> >scalable.  Say there are 1000 lightly-loaded guests sharing
> >a single processor server.  The entire processor would be
> >utilized just delivering all the ticks to each guest!
> >
> >Is this what Xen/x86 does?
> 
> Eddie explained the difference in last mail. Since you also 
> agree there's no need to inject all ticks into all guest, 
> this factor somehow reduces the necessity to always inject 
> virtual timer interrupt that quick in fast path. (Yes, a 
> clean fast path is always welcomed. ;-)

I'm not sure I agree.  Although there is no need to inject
all the ticks when a guest "wakes up", there is still a need
to inject all the ticks when a guest is active, and this
is still 1024 hz for Linux.

> >> Now HZ is defined as 100 in config.h, however current itm
> >> modification policy actually makes this periodic value
> >> useless. Even when itm_delta is added and set into itm, an
> >> immediately following ac_timer softirq will reprogram the itm
> >> to the closest time point in the ac timer list.
> >
> >This sounds like a bug (but on the path for scheduling domains,
> >not delivering guest ticks, correct?)
> 
> This is a bug if you want to keep a periodic HZ concept in 
> hypervisor. (Maybe we can abandon it and only keep a one-shot 
> timer model later). It's unrelated to this discussion, and 
> just raised it since mentioned in the context.

I'm not sure I understand the differences between the periodic
HZ concept and the one-shot timer model... doesn't there always
need to be a timeout for the currently running domain so
the hypervisor scheduler can schedule a different domain?

> IMO, the extra work should at least keep a global monotonic 
> increasing variable to hold itc value at last time interrupt. 
> Then the delta value of guest itc should base on this global 
> variable, instead of local itc. When emulating read_from_itc, 
> we may return by formula like "(now_itc > monotonic_itc) ? 
> (now_itc + vitc_delta) : (monotonic_itc + vitc_delta)". This 
> can promise itc never going backward when vcpu migration. En, 
> anyway this is just some rough thought immediately raised, 
> and we definitely need elaborate and detail discussion in 
> design for vcpu migration. Currently we just need a guest ITM 
> together with ITC delta, as Eddie suggested.

So in your model, reading itc is privileged?  (e.g. secure
itc bit is on)  In the current model, it is not.

> Since SGI guys are also doing something on XEN/IPF, I'm 
> afraid that we'll see possible issue on SN ia64 platform 
> soon. IFIRC, SN platform has un-synchronized ITC, and thus 
> requires a platform RTC timer source to adjust system time. 
> Also SN box has been supported well on current linux release. 
> Maybe some SGI people can jump out to give expertise idea here. ;-) 

Greg, are you still listening out there?
 
> I agree we should enhance current code step by step without 
> anything regressed, (even linux timer source has been 
> modified so many times). We can keep such parallel discussion 
> to learn more ideas from community, at same time with 
> agreement to merge current time code with minimal impact in 
> first step.

Sounds good!

Dan

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


 


Rackspace

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