diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-07-11 17:48:10 +0100 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-07-11 17:48:10 +0100 |
commit | d53485d69b6d328366038cfad8e9e90f66bdb317 (patch) | |
tree | d92cce8ad45ef5062e812595437fd46679b85728 /xen/arch/x86/i8259.c | |
parent | 74eb7bf176e6cb5d109ee5b0f617bc7d6c71abc3 (diff) | |
download | xen-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.c | 1 |
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]); } |