|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-changelog
[Xen-changelog] [xen-unstable] Revert alloc_idle_vcpu() to support	multi
 
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1249908688 -3600
# Node ID db1890f07661dc6ec699ff789de98d5917f74f37
# Parent  6d37f9be5fdfe2eeaf10ff0a3f95e94840fd937c
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@xxxxxxxxxx>
---
 xen/common/domain.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
diff -r 6d37f9be5fdf -r db1890f07661 xen/common/domain.c
--- a/xen/common/domain.c       Mon Aug 10 13:33:01 2009 +0100
+++ b/xen/common/domain.c       Mon Aug 10 13:51:28 2009 +0100
@@ -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;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread> |  
- [Xen-changelog] [xen-unstable] Revert alloc_idle_vcpu() to support	multiple idle domains where max,
Xen patchbot-unstable <=
  
 |  
  
 | 
    | 
  
  
    |   | 
    |