This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-ia64-devel] Question domU blocking and xen timer interrupt

To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-ia64-devel] Question domU blocking and xen timer interrupt
From: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 15 Jan 2007 16:01:06 +0100
Delivery-date: Mon, 15 Jan 2007 07:00:34 -0800
Domainkey-signature: s=s768; d=fujitsu-siemens.com; c=nofws; q=dns; b=ICBJPr9E7rWiTWrI8+mz7t97Qp6HhzisvqNoHaW/01AX6GSkYhD4p93amDP95hgfXdxOTmHi/ZV34Un5LJlgsNunJzy/ADPSPevJ+tc0ypyZBTSm6BQGuM29qA0mSrXb;
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <200701151342.45870.dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
References: <200701151342.45870.dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: KMail/1.9.5
> 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?


Xen-ia64-devel mailing list