From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dulloor Subject: Re: [PATCH 0 of 5] Add credit2 scheduler (EXPERIMENTAL) Date: Sat, 17 Apr 2010 16:29:33 -0400 Message-ID: References: <4BC72004.2030203@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <4BC72004.2030203@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: George Dunlap Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org On Thu, Apr 15, 2010 at 10:17 AM, George Dunlap wrote: > Dulloor wrote: >> >> As we talked before, I am interested in improving the mutiple-socket >> scenario and adding the load balancing functionalilty, which could >> provide an acceptable alternative to pinning vcpus to sockets (for my >> NUMA work). I am going over your patch right now, but what are your >> thoughts ? >> > > That would be great -- my focus for the next several months will be setti= ng > up a testing infrastructure to automatically test performance of differen= t > workloads mixes so I can hone the algorithm and test regressions. > > My idea with load balancing was to do this: > * One runqueue per L2 cache. > * Add code to calculate the load of a runqueue. =A0Load would be the aver= age > (~integral) of (vcpus running + vcpus on runqueue). =A0I was planning on = doing > accurate load calculation, rather than sample-based, and falling back to > sample-based if accurate turned out to be too slow. > * Calculate the load contributed by various vcpus. > * At regular intervals, determine of some kind of balancing needs to be d= one > by looking at the overall runqueue load and placing based on "contributor= y" > load of each VCPU. > > Does that make sense? =A0Thoughts? Sounds good. I can see that the runq_map for all cpus point to the same run-queue (in make_runq_map). I will start there. > > I have some old patches that calculated accurate load, I could dig them u= p > if you wanted something to start with. =A0(I don't think they'll apply cl= eanly > at the moment.) > > Thanks, > -George >> >> -dulloor >> >> On Wed, Apr 14, 2010 at 6:26 AM, George Dunlap >> wrote: >> >>> >>> This patch series introduces the credit2 scheduler. =A0The first two >>> patches >>> introduce changes necessary to allow the credit2 shared runqueue >>> functionality >>> to work properly; the last two implement the functionality itself. >>> >>> The scheduler is still in the experimental phase. =A0There's lots of >>> opportunity to contribute with independent lines of development; email >>> George Dunlap or check out the wiki page >>> http://wiki.xensource.com/xenwiki/Credit2_Scheduler_Development for ide= as >>> and status updates. >>> >>> 19 files changed, 1453 insertions(+), 21 deletions(-) >>> tools/libxc/Makefile =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0| =A0 = =A01 >>> tools/libxc/xc_csched2.c =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0| =A0 50 + >>> tools/libxc/xenctrl.h =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 | =A0 =A0= 8 >>> tools/python/xen/lowlevel/xc/xc.c =A0 =A0 =A0 =A0 | =A0 58 + >>> tools/python/xen/xend/XendAPI.py =A0 =A0 =A0 =A0 =A0| =A0 =A03 >>> tools/python/xen/xend/XendDomain.py =A0 =A0 =A0 | =A0 54 + >>> tools/python/xen/xend/XendDomainInfo.py =A0 | =A0 =A04 >>> tools/python/xen/xend/XendNode.py =A0 =A0 =A0 =A0 | =A0 =A04 >>> tools/python/xen/xend/XendVMMetrics.py =A0 =A0| =A0 =A01 >>> tools/python/xen/xend/server/SrvDomain.py | =A0 14 >>> tools/python/xen/xm/main.py =A0 =A0 =A0 =A0 =A0 =A0 =A0 | =A0 82 ++ >>> xen/arch/ia64/vmx/vmmu.c =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0| =A0 =A06 >>> xen/common/Makefile =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 | =A0 = =A01 >>> xen/common/sched_credit.c =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 | =A0 =A08 >>> xen/common/sched_credit2.c =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0| 1125 >>> +++++++++++++++++++++++++++++ >>> xen/common/schedule.c =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 | =A0 22 >>> xen/include/public/domctl.h =A0 =A0 =A0 =A0 =A0 =A0 =A0 | =A0 =A04 >>> xen/include/public/trace.h =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0| =A0 =A01 >>> xen/include/xen/sched-if.h =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0| =A0 28 >>> >>> _______________________________________________ >>> Xen-devel mailing list >>> Xen-devel@lists.xensource.com >>> http://lists.xensource.com/xen-devel >>> >>> > >