[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] vcpu pin weight considerstion TAKE3
Hi, Emmanuel Thank you for commenting and suggestion of my patch. I comment in line. If pcpu group(or partitioning) API is acceptable, that is simple way to solve. Emmanuel Ackaouy <ackaouy@xxxxxxxxx> wrote: > Hi. > > Before I discuss the approach again, let me first comment on your > patch: > > I don't understand why you need to keep track of the subset of > active VCPUs which are online. An active VCPU is one which > has recently consumed credits. I don't understand the point of > ignoring those which are currently blocked when you look. Can > you explain? This is not blocked one, _VPF_down one. Blocked vcpu is counted in this code(online_vcpu_count). So This is for online vcpu reduced by xm vcpu-sets. > > > Now to step back a little and look at the approach itself: > > Weights are useful to proportionally allocate credits to domains > which are competing for the _same_(!!!) CPU resources. When > you restrict where a VCPU can run, you break this assumption. My case is for pcpu.credit(vcpu.credit sum) > 30msec. To appropriate weighting, I reduced each vcpu credit with same ratio. > > You are attempting to divide the total weight among different > "zones" by assigning a restricted VCPU's share of the total > weight to the physical CPU where it last ran. This will work > as long as your distinct "zones" do not overlap. When they > do overlap, this will not work. Yes, you are right. I am considering vcpu-pinned domain view. (c.f.My configure is domU1 and domU2 is pinned to pcpu0-1 only on 4pcpu machine.) >From not pinned domain view, skipped weight should give to to the non-pinned vcpu. Current patch gives same CPU resources to the non-pinned vcpu after comsuming credit. (since credit is shorten by vcpu-pinned pcpu.credit >30msec) It should be treat vcpu credit should give based on vcpu weight. I will fix it. Thank you for your suggestion. > To be specific, in summing_vcpupin_weight(), you assign a > restricted VCPU's share of the total weight to the CPU it last > ran on. This assumes that all other competing VCPUs will > also sum over that physical CPU. This isn't true when distinct > CPU affinity masks ("zones") can overlap. Yes, For this correct handling, previous TAKE2 patch calculates each pcpu weight based on vcpu-pin information. In this TAKE3 patch, some vcpu-pin overlap case is problematic. (not all of the cases is problematic.) In this mean, this patch does not purposes partitioning at first. > > When all distinct CPU affinity masks do not overlap with each > other, the host system has essentially been partitioned. > > Partitioning is an interesting subset of the general problem > because: > - It is easily defined > - it has a simple and elegant solution. > > Your solution only works when the system has been properly > partitioned. This is fine. Actually, the problem of handling > overlapping CPU affinity masks is not a tractable one. > For this properly handing, TAKE2 patch have vcpu-pin weight handling. Anyway CPU grouping is another solution to solve. If permittable, I am willing re-write it. > What I argue is that there is a cleaner approach to deal with > the partitioning of the host: For the most part, you only have > to allow multiple csched_privates structures to co-exist. Each > such group will have a master CPU doing its accounting just > like today. The accounting code will be left mostly untouched: > You probably just need to AND your group's assigned CPUs > to the online mask here and there. > > Keeping the accounting work the same and distributing it > across CPUs is more desirable than adding complexity while > still keeping it on a single CPU. > > Personally I think Xen would also benefit from having a clean > interface for managing CPU partitions but this isn't strictly > necessary. > > Unfortunately, having left XenSource some months ago, I > have virtually no time to spend on Xen. I would love to help > review patches that add partitioning support the way I have > described: By allowing the co-existence of independent > scheduling "zones", each represented by its distinct version > of the current csched_private structure. I appreciate the work > you are doing trying to tackle this problem but I think your > patches are the wrong way forward. Given that, I'm not going > to be able to spend time looking at further re-spins of this > patch. > > Cheers, > Emmanuel. > > On Jul 10, 2007, at 10:47, Atsushi SAKAI wrote: > > > Hi, Keir and Emmanuel > > > > This patch intends to correct the weight treatment for vcpu-pin. > > Would you give me a comment on this? > > > > sched_credit.c | 115 > > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- > > 1 files changed, 114 insertions(+), 1 deletion(-) > > > > > > Current algorithm is > > 1)calculate pcpu_weight based on all active vcpu. > > vcpu_weight = sdom->weight/sdom->online_vcpu_count(newly added > > variable) > > v->processor > > (This routine runs when vcpu count is changed, not every 30msec.) > > > > 2)calulate vcpupin_factor based on > > avarage of > > vcpu-pinned-pcpu_weight/(csched_priv.weight/num_online_cpu()) > > > > 3)consider above factor when credit is added in vcpu-pin case. > > at atomic_add(credit_fair, &svc->credit); > > > > Signed-off-by: Atsushi SAKAI <sakaia@xxxxxxxxxxxxxx> > > > > Difference from previous patch(+365 lines) is > > > > 1)credit_balance consideration factor is omitted (about -150 lines) > > 2)detailed pcpu_weight calculation is changed (about -100 lines) > > (currently uses v->processor instead of vcpu->cpu_affinity) > > > > Thanks > > Atsushi SAKAI > > > > <vcpupin0710.patch>_______________________________________________ > > Xen-devel mailing list > > Xen-devel@xxxxxxxxxxxxxxxxxxx > > http://lists.xensource.com/xen-devel > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel Thanks Atsushi SAKAI _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |