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

[Xen-devel] [PATCH] Accurate vcpu weighting for credit scheduler


This patch intends to accurate vcpu weighting
for CPU intensive job.

The reason of this problem is that
vcpu round-robin queue blocks large weight vcpus
by small weight vcpus.

For example, we assume following case on 2pcpu environment.
(with 4domains (each domain has 2vcpus))

dom1 vcpu0,1 w128 credit  4
dom2 vcpu0,1 w128 credit  4
dom3 vcpu0,1 w256 credit  8
dom4 vcpu0,1 w512 credit 15

d4v0 gets 15ms credit each time.
but if 3vcpus are blocking,(like d1v0, d2v0, d3v0)
d4v0 credit becomes over 30msec(45msec=15x3times).
Then d4v0 credit cleared.
This makes d4v0 uses smaller credit than expected.
This problem also occurs on d4v1 case.
(blocked by d1v1, d2v1, d3v1)

In my case, xentop shows following % for each domain.
dom1 27
dom2 28
dom3 53
dom4 88

After this patch applied, each domain has following %.
dom1 25
dom2 25
dom3 49
dom4 99

This patch adds condition that 
"credit clear function" should work
when vcpu is not runnable.

 sched_credit.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Signed-off-by: Atsushi SAKAI <sakaia@xxxxxxxxxxxxxx>

Atsushi SAKAI


Attachment: xen-upper-bound-check-when-not-in-runqueue.patch
Description: Binary data

Xen-devel mailing list



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