[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] FW: about VIRQ & PIRQ
> what is VIRQÂ ?How VIRQ is different from PIRQ ?How VIRQ & PIRQ are
> related each other in xen ?
Lets take a step back. In Xen, interrupt-like events are carried by "event
channels". An event channel is a general mechanism for a domain receiving a
notification "something happened on event channel n". That's all the
information an event conveys, it's up to the domain to figure out what to do
PIRQs represent physical interrupts from the real hardware. If a domain is
controlling a real hardware device (such as a network card) it needs to
receive IRQs it generates, just like it would on a native system. Xen allows
the domain to bind the IRQ line of that device to an event channel in the
guest - this allows the guest to receive "something happened" notifications
so that it can handle the device appropriately. This kind of event channel
notification is referred to as a PIRQ to show that it comes from a *physical*
(not virtual) source.
If I recall correctly, PIRQs are mapped one-to-one onto the lower numbered
event channels (I'm not sure if this is specific to XenLinux or part of the
A VIRQ is a interrupt-like event that originates from Xen itself. An example
would be notifications from the Xen virtual timer device. Again, the guest
sees it as an event channel notification but this time we call it a VIRQ to
show that it comes from an entirely *virtual* source.
There are actually more variations to event channels: events might also come
from another domain we are communicating with, or (I think) from another VCPU
in the same domain.
Hope this helps,
Dave: Just a question. What use is a unicyle with no seat? And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!
Xen-devel mailing list