On Tue, Oct 5, 2010 at 3:52 AM, Yuehai Xu <yuehaixu@xxxxxxxxx> wrote:
> However, I stop one of the CPU intensive program in a DomU while keep
> the other running, the results are:
> .....
> < 0.327815345 |x d1v0> (dom: 1) --> (dom: 2) vruntime : 1542607)
> < 0.327906620 -x d2v0> (dom: 2) --> (dom: 1) vruntime : 109521)
> < 0.344349033 |x d1v0> (dom: 1) --> (dom: 2) vruntime : 19779544)
> < 0.344377129 -x d2v0> (dom: 2) --> (dom: 1) vruntime : 33528)
> < 0.344570662 |x d1v0> (dom: 1) --> (dom: 2) vruntime : 232540)
> < 0.344643933 -x d2v0> (dom: 2) --> (dom: 1) vruntime : 87857)
> < 0.345009170 |x d1v0> (dom: 1) --> (dom: 2) vruntime : 439081)
> < 0.345034387 -x d2v0> (dom: 2) --> (dom: 1) vruntime : 30059)
> < 0.369973183 -x d1v0> (dom: 1) --> (dom: 1) vruntime : 30000506)
> < 0.392423279 |x d1v0> (dom: 1) --> (dom: 2) vruntime : 27006658)
> ....
>
> Here I am gotten confusing, since my algorithm of scheduling is very
> simple, every VM should have 30ms of PCPU, however, from the results,
> the time for
> each VCPU to have PCPU is quite unstable. I think somewhere, the
> routine of schedule() should be invoked frequently, and from xentop,
> the VM with CPU
> intensive occupies PCPU almost at 97%.
Idle VMs are never 100% idle; there are a lot of "maintenance" tasks
still to be done.
Your mostly-idle domain (domain 2) seems to be running for pretty
short periods of time -- less than 100us. That's pretty reasonable.
The question to ask is, what happens when domain 2 wakes up -- is it
put on the runqueue, waiting for the running domain to finish its
timeslice? Or is it run immediately? Given the trace you give here,
I would guess that it's run immediately. If that's not what you
expect, you need to figure out why it's doing that and make it do
something else. :-)
-George
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|