mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Revert alloc_idle_vcpu() to support multiple idle domains where max
vcpus is less than max pcpus (e.g., can happen on i386). Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
This commit is contained in:
1 parent
4d60f70295
commit
c89a659a35
1 file changed
+13
-2
+13
-2
@@ -182,8 +182,19 @@ struct vcpu *alloc_vcpu(
|
||||
|
||||
struct vcpu *alloc_idle_vcpu(unsigned int cpu_id)
|
||||
{
|
||||
return idle_vcpu[cpu_id] ?: alloc_vcpu(idle_vcpu[0]->domain,
|
||||
cpu_id, cpu_id);
|
||||
struct domain *d;
|
||||
struct vcpu *v;
|
||||
unsigned int vcpu_id = cpu_id % MAX_VIRT_CPUS;
|
||||
|
||||
if ( (v = idle_vcpu[cpu_id]) != NULL )
|
||||
return v;
|
||||
|
||||
d = (vcpu_id == 0) ?
|
||||
domain_create(IDLE_DOMAIN_ID, 0, 0) :
|
||||
idle_vcpu[cpu_id - vcpu_id]->domain;
|
||||
BUG_ON(d == NULL);
|
||||
|
||||
return alloc_vcpu(d, vcpu_id, cpu_id);
|
||||
}
|
||||
|
||||
static unsigned int extra_dom0_irqs, extra_domU_irqs = 8;
|
||||
|
||||