|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
Re: [Xen-ia64-devel] Question domU blocking and xen timer interrupt
> Hi,
>
> for emulating the function block_domain() in the mini-os I played with the
> hypervisor call HYPERVISOR_sched_op(SCHEDOP_block, 0).
> For tests I tried a timer interrupt in the mini-os with HZ=1 (means 1
> interrupt per second). The timer initialisation sets cr.itm.
> A thread gets started and calls HYPERVISOR_sched_op(SCHEDOP_block, 0) in a
> loop. Now the domU gets blocked and never woken up (no timerinterrupt
> occurs!) until I press a key and a console interrupt is done. This wakes up
> the domU. Now the timer stuff gets checked but now is the current cr.itc
> larger than the old cr.itm and the timer interrupt handler gets not called
> (in vcpu_timer_expired()).
> May it be that the xen timer interrupt handling does not handle this domU
> blocking correctly or do I understand something completely wrong?
> On x86 the HYPERVISOR_set_timer_op(until) is used to wake up the domU
> again. But this is not implemented on ia64.
> Thanks.
>
I looked a little bit deeper in the xen source. As far as I understand is
xen_timer_irqaction() called on every timer interrupt in the hypervisor. I
can see only the checking of the timer of the "current" domain. If a domain
never gets scheduled because of the set _VCPUF_blocked flag, then the domain
gets never a timer interrupt because it never gets broken by the xen timer
interrupt! Do I see this right? Is this the right way?
Thanks.
Dietmar.
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
|
|
|
|