[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 0/4] xen/tools: Credit2: implement caps.
The fact that a domain has an utilization cap, means the following: - a domain with an utilization cap, will not run for more than the cap itself; - cap is expressed in terms of % of physical CPU time. A domain that must not use more than 1/4 of _one_ physical CPU, will be given a cap of 25%; a domain that must not use more than 1+1/2 of physical CPU time, will be given a cap of 150%; - caps are per-domain. So, it's the overall execution time of all the vCPUs of the domain that will stay below the cap. This is implemented as follows: - each domain has a budget. This budget is periodically replenished; - when the vCPUs run, they burn the budget (in a similar way to how they burn credits). - the budget is, basically, the amount of time that the vCPUs of the domain can use every period; - when there is no budget any longer, the vCPUs of the domain can't run, and are "parked". When there is some budget again (e.g., because of a replenishment, they are "unparked". This budgetting mechanism is implemented on top of Credit1, and hence it is completely independent from them, and changing weights of a domain and setting a cap for it, are orthogonal operations. Note that caps already exist in Credit1, however, there: - because of the way it is implemented, it is very imprecise. E.g., I've seen Credit1 domains with caps of 80%, oscillating between 72% and 88%. With this patch applied (and using Credit2, of course), I've never seen an error bigget than +/- 1% (this is mostly looking at xentop, and doing some calculation from traces, I'll investigate more and send in the numbers, but so far, so good :-D); - because of the way it is implemented, it works very bad (if at all) if combined with changing the domains' weights and/or pinning; - because of the way it is implemented, it may cause a guest with a cap incur in livelock, deadlock, or crash because of watchdogs. With this patch applied (and using Credit2, of course), I've not seen anything like that (but I'll continue running more tests). Here's the git branch: git://xenbits.xen.org/people/dariof/xen.git rel/sched/credit2-caps http://xenbits.xen.org/gitweb/?p=people/dariof/xen.git;a=shortlog;h=refs/heads/rel/sched/credit2-caps https://travis-ci.org/fdario/xen/builds/240749240 Thanks and Regards, Dario --- Dario Faggioli (4): xen: credit2: implement utilization cap xen: credit2: allow to set and get utilization cap xen: credit2: improve distribution of budget (for domains with caps) libxl/xl: allow to get and set cap on Credit2. tools/libxl/libxl_sched.c | 21 + tools/xentrace/formats | 2 tools/xentrace/xenalyze.c | 10 - tools/xl/xl_cmdtable.c | 1 tools/xl/xl_sched.c | 25 +- xen/common/sched_credit2.c | 623 ++++++++++++++++++++++++++++++++++++++++--- xen/include/public/domctl.h | 1 xen/include/xen/sched.h | 3 8 files changed, 633 insertions(+), 53 deletions(-) -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |