]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
credit2: Add more debugging
authorGeorge Dunlap <george.dunlap@eu.citrix.com>
Thu, 3 Mar 2011 15:14:30 +0000 (15:14 +0000)
committerGeorge Dunlap <george.dunlap@eu.citrix.com>
Thu, 3 Mar 2011 15:14:30 +0000 (15:14 +0000)
Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
xen/common/sched_credit2.c

index c28f009996f2c548ff9337b8bbb0f81c1ecc7ffe..59c13618ed155a838e8b22a59d325d6062633894 100644 (file)
@@ -808,6 +808,7 @@ static void
 __runq_deassign(struct csched_vcpu *svc)
 {
     BUG_ON(__vcpu_on_runq(svc));
+    BUG_ON(test_bit(__CSFLAG_scheduled, &svc->flags));
 
     list_del_init(&svc->rqd_elem);
     update_max_weight(svc->rqd, 0, svc->weight);
@@ -1603,6 +1604,31 @@ csched_schedule(
 
     /* Protected by runqueue lock */        
 
+    /* DEBUG */
+    if ( !is_idle_vcpu(scurr->vcpu) && scurr->rqd != rqd)
+    {
+        int other_rqi = -1, this_rqi = c2r(ops, cpu);
+
+        if ( scurr->rqd )
+        {
+            int rq;
+            other_rqi = -2;
+            for_each_cpu_mask ( rq, CSCHED_PRIV(ops)->active_queues )
+            {
+                if ( scurr->rqd == &CSCHED_PRIV(ops)->rqd[rq] )
+                {
+                    other_rqi = rq;
+                    break;
+                }
+            }
+        }
+        printk("%s: pcpu %d rq %d, but scurr d%dv%d assigned to "
+               "pcpu %d rq %d!\n",
+               __func__,
+               cpu, this_rqi,
+               scurr->vcpu->domain->domain_id, scurr->vcpu->vcpu_id,
+               scurr->vcpu->processor, other_rqi);
+    }
     BUG_ON(!is_idle_vcpu(scurr->vcpu) && scurr->rqd != rqd);
 
     /* Clear "tickled" bit now that we've been scheduled */