[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: "Dietmar Hahn" <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>, <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Xu, Anthony" <anthony.xu@xxxxxxxxx>
  • Date: Tue, 16 Jan 2007 10:05:22 +0800
  • Delivery-date: Mon, 15 Jan 2007 18:05:05 -0800
  • List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
  • Thread-index: Acc4tgmCsYFlOoDuS/+JYgoF14GDSwAW5M6g
  • Thread-topic: [Xen-ia64-devel] Question domU blocking and xen timer interrupt

Dietmar Hahn write on 2007年1月15日 23:01:
>> Hi,

Hi Dietmar,

The attached patch is intend to enable HYPERVISOR_set_timer_op for IPF.

I can understand what you described.
Can you ckeck whether HYPERVISOR_sched_op is called with interrupt disabled?
And can you check whether the event for domU timer irq is pending?


--Anthony


>> 
>> 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

Attachment: do_timer.patch
Description: do_timer.patch

_______________________________________________
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®.