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

Re: [Xen-devel] Question about vcpu_avail



On 11/23/2009 04:28 PM, Keir Fraser wrote:
On 23/11/2009 15:02, "Michal Novotny"<minovotn@xxxxxxxxxx>  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@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


_______________________________________________
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®.