x86/xen: event channels delivery on HVM.
Set the callback to receive evtchns from Xen, using the callback vector delivery mechanism. The traditional way for receiving event channel notifications from Xen is via the interrupts from the platform PCI device. The callback vector is a newer alternative that allow us to receive notifications on any vcpu and doesn't need any PCI support: we allocate a vector exclusively to receive events, in the vector handler we don't need to interact with the vlapic, therefore we avoid a VMEXIT. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Signed-off-by: Sheng Yang <sheng@linux.intel.com> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
This commit is contained in:
committed by
Jeremy Fitzhardinge
parent
bee6ab53e6
commit
38e20b07ef
@@ -56,4 +56,11 @@ void xen_poll_irq(int irq);
|
||||
/* Determine the IRQ which is bound to an event channel */
|
||||
unsigned irq_from_evtchn(unsigned int evtchn);
|
||||
|
||||
/* Xen HVM evtchn vector callback */
|
||||
extern void xen_hvm_callback_vector(void);
|
||||
extern int xen_have_vector_callback;
|
||||
int xen_set_callback_via(uint64_t via);
|
||||
void xen_evtchn_do_upcall(struct pt_regs *regs);
|
||||
void xen_hvm_evtchn_do_upcall(void);
|
||||
|
||||
#endif /* _XEN_EVENTS_H */
|
||||
|
Reference in New Issue
Block a user