[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
|