From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Novotny Subject: Re: Question about vcpu_avail Date: Tue, 24 Nov 2009 12:27:30 +0100 Message-ID: <4B0BC322.3000705@redhat.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: 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: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On 11/23/2009 04:28 PM, Keir Fraser wrote: > On 23/11/2009 15:02, "Michal Novotny" wrote: > > >> I would like to ask about vcpu_avail variable in XendDomainInfo.py. Is >> that variable working and what is it used for ? I think it's a bitmask >> showing what VCPUs are used and what are not, am I correct? >> > Yes, it allows you to configure which VCPUs are brought online by default on > guest bootup. If you do add a maxvcpus config item, it can be parsed out > into vcpus and vcpu_avail entirely within xm's create.py (excuse dodgy > pseudocode): > if defined(maxvcpus): > vcpu_avail = (1<< vcpus) - 1 > vcpus = maxvcpus > > i.e., no need for xend itself to know about the new config item. > > -- Keir > > Well, I don't know Keir since the main use scenario for maxvcpus is to set number of vcpus for the guest so a new definition in Xend should be required. Then you just issue `xm vcpu-set {domainName} {numberOfVcpus}` command to change number of VCPUs used by the guest, method `setVCpuCount(self, vcpus)` from XendDomainInfo.py is called to set number of VCpus so check should be implemented here as: def setVCpuCount(self, vcpus): if vcpus > self.info['maxvcpus']: log.debug("Cannot set %d vcpu(s) for domain %s (domid %d)." "Maximum number of vcpu(s) is set to %d" % (vcpus, self.info['name'], self.domid, self.info['maxvcpus'])) raise VmError("Cannot set %d vcpu(s). Maximum number of vcpus for " "this domain is %d" % (vcpus, self.info['maxvcpus']) ) self.info['vcpu_avail'] = (1 << vcpus) - 1 self.storeVm('vcpu_avail', self.info['vcpu_avail']) And domain_max_vcpus() call should be changed from `xc.domain_max_vcpus(self.domid, int(self.info['vcpus']))` to `xc.domain_max_vcpus(self.domid, int(self.info['maxvcpus']))`. The only change that should be done to xm/create.py is to add `maxvcpus` to add_conf mapping to allow it to be read/parsed out from the config file. Well, I've been looking to the code and there is self.info['VCPUs_max'] in XendDomainInfo.py. What is it used for? Could it be used for the same purpose like `maxvcpus` from example above? Michal >> Also, I'm >> thinking of adding some variable of `maxvcpus` to define maximum number >> of vcpus for PV guests. This way we could define a config file like: >> >> vcpus = 2 >> maxvcpus = 4 >> >> and by setting `xm vcpu-set {domain} {numberOfVCPUs}` we can set up to 4 >> vcpus. Current behavior is to set to 1 vcpu and back to 2 vcpus but >> never to cross the number defined in of vcpus. Now we could be able to >> allocate up to 4 vcpus to the guest and not just 2... What do you think >> about that idea? >> > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel >