[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] [PATCH] emulate PAL_HALT_LIGHT on domU
Hi, Yamahata-san, Thank you for your comments. In IA64, ITM/ITC model is used.(for example *1) This IA64 model is different from x86 timer model. So It needs to send a correct ITM/ITC interrupt to Guest OS by using VIRQ_ITC. This VIRQ_ITC signal timing is controlled by the Guest OS itself. So VIRQ_ITC from other is not permitted on this model.(*2) If you set the timer externally, GuestOS timer model is corrupted. HYPERVISOR_set_timer_op just sends VIRQ_TIMER signal to Guest OS, if it reaches the time. For x86 case, timer_interrupt@xxxxxxxxxxxxxxxxxxxx/arch/i386/kernel/time-xen.c wake up. The function is permitted to wake up any time.(just get timer information from Xen Hypervisor.) For IA64 case, no corresponding function for VIRQ_TIMER is exists. If you switch from VIRQ_TIMER to VIRQ_ITC, assumption model in timer function is different. (The IA64 functions are assumed that it only runs on itc/itm timer interruption.) So VIRQ_ITC timer function is not available for HYPERVISOR_set_timer_op. If you want to use HYPERVISOR_set_timer_op on IA64, you should make a new timer_interrupt function for HYPERVISOR_set_timer_op to avoid distruct itc/itm model. Consider the above circumstances, I decided to emulate PAL_HALT_LIGHT on the Xen Hypervisor. This model does not effect on VIRQ_ITC and itc/itm model. Thanks, Atsushi SAKAI. >Hi Sakai. > >xenLinux/x86 paravirtualizes idle loop to get timer interrupt >while cpu halting. >More exactly safe_halt() is paravirtualized using >HYPERVISOR_set_timer_op(). >Xen/IA64 doesn't support HYPERVISOR_set_timer_op(), but it >would be quite easy to add its support. > >I'm not sure about which is better, your approach or paravirtualizing >idle loop. >Could you explain the reason why you added vcpu->arch.hlt_timer >instead of supporting set_timer_op hypercall with vcpu->timer? > >Thanks. > >On Wed, Jul 05, 2006 at 12:46:35PM +0900, Atsushi SAKAI wrote: >> Hi, All >> >> This patch emulates Guest PAL_HALT_LIGHT on domU by using do_block and timer. >> It also adds the function of the timer event sending to domU at the vcpu >> woke up. >> >> Signed-off-by: Atsushi SAKAI <sakaia@xxxxxxxxxxxxxx> >> >> >> About the timer event sending to domU >> >> The function "xen_timer_interrupt" on ParaVM/IA64 only sends >> the timer signal to current vcpu. >> When the idle domain is running, no domUx receives timer signal. >> If some domain cannot receive the timer signal during 10 secs, >> a message "BUG: soft lockup detected appeared" comes from domUx. >> To avoid this, I add a timer check routine at the vcpu woke up. >> >> I tested a few days. >> >> Thanks, >> Atsushi SAKAI >> >> >> > > >> _______________________________________________ >> Xen-ia64-devel mailing list >> Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx >> http://lists.xensource.com/xen-ia64-devel > >-- >yamahata > _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |