aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/i8259.c
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-07-11 17:48:10 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-07-11 17:48:10 +0100
commitd53485d69b6d328366038cfad8e9e90f66bdb317 (patch)
treed92cce8ad45ef5062e812595437fd46679b85728 /xen/arch/x86/i8259.c
parent74eb7bf176e6cb5d109ee5b0f617bc7d6c71abc3 (diff)
downloadxen-d53485d69b6d328366038cfad8e9e90f66bdb317.tar.gz
xen-d53485d69b6d328366038cfad8e9e90f66bdb317.tar.bz2
xen-d53485d69b6d328366038cfad8e9e90f66bdb317.zip
Provide cpu hotplug support to Xen. Note this hotplug
support is specific to PM, instead of for a run-time single CPU hotplug which can be a separate task. See embedded comment: /* * XXX: One important thing missed here is to migrate vcpus * from dead cpu to other online ones and then put whole * system into a stop state. It assures a safe environment * for a cpu hotplug/remove at normal running state. * * However for xen PM case, at this point: * -> All other domains should be notified with PM event, * and then in following states: * * Suspend state, or * * Paused state, which is a force step to all * domains if they do nothing to suspend * -> All vcpus of dom0 (except vcpu0) have already beem * hot removed * with the net effect that all other cpus only have idle vcpu * running. In this special case, we can avoid vcpu migration * then and system can be considered in a stop state. * * So current cpu hotplug is a special version for PM specific * usage, and need more effort later for full cpu hotplug. * (ktian1) */ Signed-off-by: Kevin Tian <kevin.tian@intel.com> Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/arch/x86/i8259.c')
-rw-r--r--xen/arch/x86/i8259.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/xen/arch/x86/i8259.c b/xen/arch/x86/i8259.c
index 2069319ce4..ecda0f1212 100644
--- a/xen/arch/x86/i8259.c
+++ b/xen/arch/x86/i8259.c
@@ -396,6 +396,7 @@ void __init init_IRQ(void)
irq_desc[i].action = NULL;
irq_desc[i].depth = 1;
spin_lock_init(&irq_desc[i].lock);
+ cpus_setall(irq_desc[i].affinity);
set_intr_gate(i, interrupt[i]);
}