diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-06-17 07:22:06 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-06-17 07:22:06 +0100 |
commit | 38b998cfb6e8b572a265bb6ba400a1db700e5882 (patch) | |
tree | 48c0ab213ece61a89dffabc452fbdd3285506238 /xen/include/xen/event.h | |
parent | 56d6b7ac5dedb2413b22713e3760a617a3d5e260 (diff) | |
download | xen-38b998cfb6e8b572a265bb6ba400a1db700e5882.tar.gz xen-38b998cfb6e8b572a265bb6ba400a1db700e5882.tar.bz2 xen-38b998cfb6e8b572a265bb6ba400a1db700e5882.zip |
x86: IRQ affinity should track vCPU affinity
With IRQs getting bound to the CPU the binding vCPU currently runs on
there can result quite a bit of extra cross CPU traffic as soon as
that vCPU moves to a different pCPU. Likewise, when a domain re-binds
an event channel associated with a pIRQ, that IRQ's affinity should
also be adjusted.
The open issue is how to break ties for interrupts shared by multiple
domains - currently, the last request (at any point in time) is being
honored.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen/include/xen/event.h')
-rw-r--r-- | xen/include/xen/event.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/xen/include/xen/event.h b/xen/include/xen/event.h index 0adb2eb93e..f39207c8d0 100644 --- a/xen/include/xen/event.h +++ b/xen/include/xen/event.h @@ -47,6 +47,9 @@ long evtchn_bind_vcpu(unsigned int port, unsigned int vcpu_id); /* Unmask a local event-channel port. */ int evtchn_unmask(unsigned int port); +/* Move all PIRQs after a vCPU was moved to another pCPU. */ +void evtchn_move_pirqs(struct vcpu *v); + /* Allocate/free a Xen-attached event channel port. */ int alloc_unbound_xen_event_channel( struct vcpu *local_vcpu, domid_t remote_domid); |