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

[Xen-devel] about the interrupt



hi, all
what I figure out the function flow about handling interrupt  is as below, is it true?

(1)when Interrupt come, guest will trap into xen. do_IRQ() will handle the interupt
(2)if the interrupt is for guest, then __do_IRQ_guest() will handle it
(3)__do_IRQ_guest() will call send_guest_pirq() or hvm_do_IRQ_dpci() 
(4)send_guest_pirq() will call evtchn_set_pending()
(5)evtchn_set_pending() will call vcpu_mark_events_pending()
(6)if it is hvm, it will call hvm_assert_evtchn_irq() to deliver irq to vioapic.
(7)....
(8)guest will handle the interrupt, it will trap into the xen again.
(9)In vmx_vmexit_handler(), hvm_maybe_deassert_evtchn_irq() will be called to deassert the irq.


In evtchn_bind_pirq(), the evtchn is from get_free_port(), which means it is allocated randomly.
I want to who will call  evtchn_bind_pirq() ? 

Do you have any other doc, manual, url, wiki page about how xen handle interrupt ?

--
Best Regards,
yandong



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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