WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Re: Xen scheduler

To: "Petersson, Mats" <Mats.Petersson@xxxxxxx>
Subject: Re: [Xen-devel] Re: Xen scheduler
From: Emmanuel Ackaouy <ackaouy@xxxxxxxxx>
Date: Tue, 24 Apr 2007 16:47:28 +0200
Cc: ncmike@xxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx, pak333@xxxxxxxxxxx
Delivery-date: Tue, 24 Apr 2007 07:46:54 -0700
Dkim-signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:in-reply-to:references:mime-version:content-type:message-id:content-transfer-encoding:cc:from:subject:date:to:x-mailer; b=Kk/ai1+SsQTr4OYozgBoepc9FKHTB8CABi8HYJqGkfGXCz5mu3mnLw1o7I/LNeVSit44zALGrOTEb/cJitq/kW0XQU+yygfVNU+9grhqJpD3ZKtcSkY4OvnakT1XUpgVm0i22gaEUPnkIKAj00PC28CShk6NdqqsHpaRguMx6vI=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:in-reply-to:references:mime-version:content-type:message-id:content-transfer-encoding:cc:from:subject:date:to:x-mailer; b=iIRhxnvt/Tc+6AIdoMEBElA6xDNEsuqJaeUtSXtrxwQVFqfByfZDo4aJ+A7W10vO+XJhlHht4v0EwkGTqdKxZUesc9ntSGonpEpzL5Alu6gfIJw1Ag/aJ1wlaSBeHciN/cDzMoc6SwntBLH7uGzrw1pttX+r32H+nkiVC9PX43w=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <907625E08839C4409CE5768403633E0B018E1C50@xxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <907625E08839C4409CE5768403633E0B018E1C50@xxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Mats,

As I've just explained in my previous post to the mailing list, what
you say is not totally correct.

On partially idle systems, the credit scheduler does schedule across
sockets and cores before co-scheduling them. At least it used to but
I've not looked at the code in a while so perhaps someone changed
this?

On a system with no idle PCPU, when time slicing becomes
necessary, what you say is true: The scheduler doesn't care
which PCPU hosts which VCPU. On NUMA systems, this
means a VCPU may not always run closest to the memory
it is using at the time.

On Apr 24, 2007, at 13:07, Petersson, Mats wrote:



-----Original Message-----
From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
[mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of
pak333@xxxxxxxxxxx
Sent: 23 April 2007 20:34
To: ncmike@xxxxxxxxxx
Cc: Mike D. Day; xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] Re: Xen scheduler

Thanks. A little more clarification.

Here is an example.

I have multiple VMs, each with 2 vcpus. There is no user
affinity. So i will let the vcpus run whereever the Xen
scheduler chooses. My system has 2 dual core sockets.

     If all 4 pcpus are idle, then will the scheduler assign
the vcpus of a VM to the same socket pcpus.
     If while running, 2 pcpus from different sockets become
available, the scheduler will assign 2 vcpus to those two
pcpus. Does the scheduler do any optimization as to moving
the vcpus of a vm to the same socket or just assign the vcpus
as they become ready.

Xen's current schedulers doesn't have any clue about CPU cores and their
relationship to sockets, memory locations or any other such things. So
if you get two VCPUS from the same domain or two different domains on
one of your physical dual core CPU is entirely random, and will remain
so at any time a VCPU is rescheduled. Whichever PCPU happens to be ready
when the VCPU is schedule will be used unless you specifically restrict
the VCPU to a (set of) PCPU(s).

or if 3 pcpus are idle will the scheduler assign vcpus from a
VM to the same socket.

It will assign "any VCPU to any PCPU that is allowed for that VCPU", and it doesn't really care which VM or which socket any particular VCPU/PCPU
combination belongs to.

Basically all my questions boil down to this: Does the
Scheduler know about the pcpu layout(same socket) and does it
do any scheduling based on that.

Not at present. There's been some discussions on this, and whilst it's
easy to solve some of the obvious cases, there are also some harder nuts
to crack. What do you do when the system is really busy and there's not
a "good" PCPU to schedule a particular VCPU on - do you wait for the
PCPU that is ideal to become available, or do you schedule it on a less
ideal PCPU? How long do you allow the wait for that ideal PCPU?

Whilst it's easy to say "Just do it right", solving the rather hairy
problems of when there's congestion and making the right "judgement" of
the situation is much harder.

--
Mats

Thanks
Prabha







        -------------- Original message --------------
        From: "Mike D. Day" <ncmike@xxxxxxxxxx>
        
        > On 21/04/07 06:03 +0000, pak333@xxxxxxxxxxx wrote:
        > >
        > > Hi,
        > >
        > >
        > >
        > > On running on a dual/quad core does the Xen
scheduler take into
        > > account the physical layout of the cores.
        > >
        > > For example if a VM has two vcpus, and there are 4
physical cpus
        > > free, will it take care to assign the 2vcpus (from
a VM) to 2 pcpus
        > > on the same socket.
        >
        >
        > The scheduler only knows the affinity of vcpus for physical
        > cpus. The affinity is determined by a userspace
application and can
        > be modified using a domain control hypercall. Look in
        > xen/common/domctl.c around line 568 for the following:
        >
        > case XEN_DOMCTL_setvc puaffinity:
        > case XEN_DOMCTL_getvcpuaffinity:
        >
        >
        >
        > When the credit scheduler migrates a vcpu to a pcpu,
it only considers
        > pcpus for which the affinity bit is set. If the
userspace application
        > sets affinity such that only the bits set for pcpus
on the same
        > socket, then the vcpu will only run on pcpu's sharing
the same
        > socket.
        >
        >
        > Mike
        >
        > --
        > Mike D. Day
        > IBM LTC
        > Cell: 919 412-3900
        > Sametime: ncmike@xxxxxxxxxx AIM: ncmikeday Yahoo:
ultra.runner
        > PGP key: http://www.ncultra.org/ncmike/pubkey.asc
        >
        > _______________________________________________
        > 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



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>