[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] A credit scheduler issue

Hi Emmanuel,

    I am trying to debug the credit scheduler to solve the many HVM domain instability issues we have found with the credit scheduler.


    While debugging I notice an odd behavior; When running on a 2 CPU system, dom0 gets 2 vcpus by default. And even if there are no other domains running in the system,  the dom0 vcpus are getting migrated to different pcpus in the load balance. I think it is due to the preemption happening in the credit scheduler; and it is not necessary and is actually wasteful to move vcpus when no of vcpus in the system are equal to no of pcpus.

    I would like to know your thinking about this behavior. Is it an intended in the design?


I added this small fix to the scheduler to fix this behavior. And with it I see the stability of Xen improved. Win2003 boot was crashing with unhandled MMIO error on xen64 earlier with credit scheduler. I am not seeing that crash with this small fix anymore. It is quiet possible that there are more bugs I need to catch for HVM domains in the credit scheduler. And I would like to know your thoughts for this change.


csched_runq_steal(struct csched_pcpu *spc, int cpu, int pri)


    struct list_head *iter;

    struct csched_vcpu *speer;

    struct vcpu *vc;


    /* If there are only 1 vcpu in the queue then stealing it from the queue

     * is not going not help in load balancing.


    if (spc->runq.next->next == &spc->runq)

            return NULL;


Thanks & Regards,



Open Source Technology Center, Intel Corp


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.