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

[Xen-devel] [Hackathon minutes] Credit2

This is what I have down from my discussion with Dario about making
credit2 the default scheduler.  (Let me know if I missed out anything
important, Dario.)

Things required before we could make it the default scheduler:
* Implement CPU pinning
* Implement NUMA affinity
* Implement cpu "reservation" technique
* More testing (would happen automatically if made default scheduler)
* Profiling of the algorithms

We had an interesting discussion about priority inheritance and
placement of co-operating domains as well.

One of the problems you come across is that you have a VM with a
higher priority / high number of credits waiting for a service domain
-- say a network driver domain or a stub domian.

The first thing that comes to mind is to have a VM be able to tell the
hypervisor, "I am now waiting on domain X vcpy Y to do work for me".
Then the scheduler could in theory run dXvY at the priority of the
domain that is waiting for it -- this would be a form of priority

The problem with the credit2 scheduler is that the priority is
basically the amount of credit left -- and this is not comparable
between runqueues.  Each runqueue's credit is separate and gets
"reset" or "topped up" at different times; so a VM on a queue that has
just been reset will almost always have more credit than a VM on a
queue that hasn't been reset in a while.

So we could only really do the "priority inheritance" for vcpus
running on the same runqueue.  That's not actually too bad however,
since in credit2 there is one runqueue for several physical cpus,
there is more opportunity for co-placement, even on a system that is
not overloaded.

A further idea was to actually track the total amount of time all
vcpus on a system were waiting for a particular vcpu, and then have
the load balancer try to move a vcpu to the runqueue which has the
highest amount of total time waiting for it.  This will maximize the
chance that it will be able to get a boosted priority.

Anyway, those are just some ideas tossed around, but they might be
worth looking at at some point.


Xen-devel mailing list



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