From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ryan Harper Subject: Re: [PATCH 2/3] xend: Add multiple cpumasks support Date: Mon, 14 Aug 2006 17:20:21 -0500 Message-ID: <20060814222021.GS1694@us.ibm.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Pratt Cc: Ryan Grimm , Ryan Harper , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org * Ian Pratt [2006-08-14 17:04]: > > Are you interested in the multi cpumask approach? > > Yes: it certainly doesn't hurt to have that flexibility. > > > If so any thoughts on how > > you'd like to see multiple cpumasks in the config file? > > Either Keir's cpu[X] = "Y" approach or my cpu = [ "A","B","C" ] approach > seem workable. Your last email seemed to indicate to me that you didn't like using quoted values in a list to separate per-vcpu cpumask values. Maybe I was mistaken. > > Keir's approach is rather ill defined if someone tries using both cpu= > and cpu[X]= in the same config file, but I don't see that as a big > problem. Take your pick :-) I'm leaning toward the list notation since I already have code that parses that properly. > > BTW: does the right thing happen in the face of vcpu hot plugging? i.e. > if I unplug a vcpu and put it back in do I keep the old mask? If I add > vcpus what mask do they get? unplug events only affect a vcpu's status. The internal struct vcpu in the hypervisor is not de-allocated/re-allocated during hotplug events. We don't currently support a hotadd for vcpus that weren't allocated at domain creation time. The current method for simulating hot-add would be to start a domain with 32 VCPUS and disable all by the number of vcpus you currently want. Ryan Grimm posted a patch back in February that had xend do this by adding a new config option, max_vcpus, which was used when calling xc_domain_max_vcpus() having the hypervisor alloc that max number of vcpus and then using the vcpus parameter to determine how many to bring online. > > We should probably add a 'vcpu-pin' variant that enables the mask to be > set for all vcpus. Perhaps '-1' for the vcpu number? Or should we add > 'vcpu-pin-all'? vcpu-pin using -1 is probably the quickest, least intrusive method to get this behavior. We could also use a keyword, all for instance: xm vcpu-pin vm1 all 0-4,^5 > > [secondly, what do you think about implicitly defaulting the mask to all > 1's if the first item in a cpu mask is an exclusion? e.g. ^1] That makes sense. I'll include a patch in the set to add this behavior. -- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx (512) 838-9253 T/L: 678-9253 ryanh@us.ibm.com