Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com> diff -r f71212f712fd -r 44c94a661522 xen/common/sched_credit2.c --- a/xen/common/sched_credit2.c Wed Mar 02 10:31:06 2011 +0000 +++ b/xen/common/sched_credit2.c Thu Mar 03 17:39:51 2011 +0000 @@ -808,6 +808,7 @@ __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,7 +1604,32 @@ /* Protected by runqueue lock */ - BUG_ON(!is_idle_vcpu(scurr->vcpu) && scurr->rqd != rqd); + if ( !is_idle_vcpu(scurr->vcpu) && scurr->rqd != rqd) + { + int other_rqi=-1, this_rqi; + + 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(); + } /* Clear "tickled" bit now that we''ve been scheduled */ if ( cpu_isset(cpu, rqd->tickled) ) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel