[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


 


Rackspace

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