Hi, Isaku
Previous TAKE2 uses vcpu_pend_timer@hlt_timer_fn.
(this is one reason.)
But logical Source code checks revealed
"soft lockup detecteted(>10sec timer stops)" in linux kernel
causes from wrong vcpu_get_next_timer_ns value
NOT VIRQ_ITC during idle-domain running.
About vcpu_get_next_timer_ns
In Take1, I just uses vcpu_set_next_timer code.
But previous Take2 vcpu_pend_timer is just calculate
the domain_itm - ia64_get_itc.
It causes problem for case ia64_get_itc > domain_itm,
In such a cases, the domain_itm - ia64_get_itc gets large value(more than
10secs),
Then "softlock up" is appeared.
So this patch does not need to add vcpu_pend_timer fixes.
But this should be fixed in sometime.
(another reason)
Thanks,
Atsushi SAKAI
>Hi Atsushi.
>
>On Tue, Aug 22, 2006 at 02:44:34PM +0900, Atsushi SAKAI wrote:
>
>> As you pointed out, vcpu_pend_timer() is usually used as current.
>> This problem does not occur.
>> But, I am using vcpu_pend_timer in hlt_timer_fn with other vcpu.
>> (This makes problem)
>
>hlt_timer_fn() doesn't call vcpu_pend_timer(). But vcpu_unblock().
>Do I miss anything else?
>
>>From your patch.
>@@ -240,6 +241,12 @@ void startup_cpu_idle_loop(void)
> # error "XMAPPEDREGS_SHIFT doesn't match sizeof(mapped_regs_t)."
> #endif
>
>+void hlt_timer_fn(void *data)
>+{
>+ struct vcpu *v = data;
>+ vcpu_unblock(v);
>+}
>+
>
>--
>yamahata
>
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|