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

RE: [Xen-devel] trigger an interrupt in HVM



>From: James Harper
>Sent: 2008年8月21日 10:32
>
>The various subsystems (xennet, xenvbd) hook onto the same IRQ as the
>PCI device. When the PCI device gets an IRQ, signalling that an event
>channel has been set, and the event channel is for one of the subsystem
>devices, it tells windows that the IRQ wasn't handled, so windows then
>tries the other devices.

Same IRQ as which PCI device? For Linux HVM, a dummy PCI device
is exposed and a platform-pci driver is installed within Linux HVM. When
it accepts interrupt being event pending, it then invokes into each FE
driver directly which is bound to xenbus.

It seems that in your case xenbus is not present at all, and thus each
FE driver is still installed into existing sub-system of same class, and
then you're trying to find a communication channel between dummy
PCI driver and each FE which can't be done by simple function call
and is done by irq sharing by far, is that true?

Maybe to install FE driver onto xen bus type is easier, as the natural
layered function call is then available like in Linux side. I guess I may
still miss something here... :-(

Back to your question. It's viable but simply setting evtchn_upcall_pending
is not enough, as it's not checked at each VM resume path. By far
event pending caused interrupt injection is only triggered from a real
event send operation. One option you may try is to use inter-domain
event channel between PCI driver and each BE driver. I guess inter-
domain binding should allow for remote domain equal to local one,
and then you can simply use notify_remote_via_evtchn to trigger an
injection.

Thanks
Kevin

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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