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

Re: [Xen-devel] [PATCH] Reflect cpupool in numa node affinity


  • To: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
  • From: Juergen Gross <juergen.gross@xxxxxxxxxxxxxx>
  • Date: Mon, 23 Jan 2012 12:31:13 +0100
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 23 Jan 2012 11:31:37 +0000
  • Domainkey-signature: s=s1536a; d=ts.fujitsu.com; c=nofws; q=dns; h=X-SBRSScore:X-IronPort-AV:Received:X-IronPort-AV: Received:Received:Message-ID:Date:From:Organization: User-Agent:MIME-Version:To:CC:Subject:References: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=vv5ubeSMwsIoN3DqCfk8zoMKWO3mgWKhYz4h5CrmC3ijwPgQwcvN90ux tKkl3VVoT+1G8pcw6Oi4+AI2HvRhNu1QDZHCmGaM3iGx0WHf4AgxsP8Pg 7RW5vIhQd9GXD8ybkRtiRNy7V8uf+xHgoyNWPAKrXRoj/r4LtH8U8HQwY vKnbk1Vc7QvPyAgD1AZ3yweCcRkQhstOgTVeWxldzINTPuZSj0yCymDpj xmr8Mjtzx1B17YIbbY4L0JQ5xHKn1;
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

On 01/23/2012 12:03 PM, Ian Campbell wrote:
On Mon, 2012-01-23 at 09:51 +0000, Juergen Gross wrote:
@@ -365,15 +366,21 @@ void domain_update_node_affinity(struct
  void domain_update_node_affinity(struct domain *d)
  {
      cpumask_t cpumask;
+    cpumask_t online_affinity;
+    cpumask_t *online;
      nodemask_t nodemask = NODE_MASK_NONE;
      struct vcpu *v;
      unsigned int node;

+    online = (d->cpupool == NULL) ?&cpu_online_map : d->cpupool->cpu_valid;
      cpumask_clear(&cpumask);
      spin_lock(&d->node_affinity_lock);

      for_each_vcpu ( d, v )
-        cpumask_or(&cpumask,&cpumask, v->cpu_affinity);
+    {
+        cpumask_and(&online_affinity, v->cpu_affinity, online);
+        cpumask_or(&cpumask,&cpumask,&online_affinity);
+    }

      for_each_online_node ( node )
          if ( cpumask_intersects(&node_to_cpumask(node),&cpumask) )
Is there any possibility that the addition of the cpumask_and clause
could result in the empty set?

No. v->cpu_affinity is set to all ones if:
- the domain is moved to another cpupool
- the last cpu which is set in v->cpu_affinity is removed from the cpupool the
  domain is assigned to


Juergen

--
Juergen Gross                 Principal Developer Operating Systems
PDG ES&S SWE OS6                       Telephone: +49 (0) 89 3222 2967
Fujitsu Technology Solutions              e-mail: juergen.gross@xxxxxxxxxxxxxx
Domagkstr. 28                           Internet: ts.fujitsu.com
D-80807 Muenchen                 Company details: ts.fujitsu.com/imprint.html


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


 


Rackspace

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