[Libvir] [PATCH] check the maximum of virtual CPU

Masayuki Sunou fj1826dm at aa.jp.fujitsu.com
Tue Mar 6 11:08:57 UTC 2007


Hi, Dan

> >  1. When initially creating a VM
> >  2. When changing the config of an inactive VM
> >  3. When changing the config of a running VM
> > 
Certainly, I had not considered concerning 1 and 2.
So, I corrected the patch based on your proposal.

 ・ virDomainGetMaxVcpus
   Judge state (active/inactive) of the domain, and return information
   corresponding to each state. 

 ・ virConnectGetMaxVcpus
   Add it as a method that returns the number of maximum CPUs defined by Xen. 


However, I only added virConnectGetMaxVcpus because I did not understand
the use image of it. 

Is it added as a command of virsh?
Or, is it used from virsh create and virsh start?


Signed-off-by: Masayuki Sunou <fj1826dm at aa.jp.fujitsu.com>

Thanks

----------------------------------------------------------------------
In message <20070306035647.GA31470 at redhat.com>
   "Re: [Libvir] [PATCH] check the maximum of virtual CPU"
   ""Daniel P. Berrange" <berrange at redhat.com>" wrote:

> On Mon, Mar 05, 2007 at 03:42:35PM +0900, Masayuki Sunou wrote:
> > I removed a needless part from the former patch.
> > 
> > Add check the maxmum of virtual CPU.
> 
> I was thinking about how to make use of this new API in virt-manager 
> when I came up with a further complication :-) There are three scenarios
> where I'd like to be able to find out the maximum VCPUs possible for
> a guest VM:
> 
>  1. When initially creating a VM
>  2. When changing the config of an inactive VM
>  3. When changing the config of a running VM
> 
> Thus far in this thread, we've focused on addressing the last point,
> but I think its worth trying address all 3 while we're looking at
> this area.
> 
> In the first case, we do not have a virDomainPtr object at all yet,
> all we have is a virConnectPtr and info about the type of domain
> we're planning to create - Xen, QEMU, KVM, KQEMU. When creating a
> VM we need to apply some domain type specific limit.
> 
> In the case of an inactive domain, we have a virDomainPtr object
> and from that the internal drivers can determine the domain type
> or Xen, QEMU, KVM, etc, and again apply some domain type specific
> limit.
> 
> In the 3rd case of a running VM though, the hypervisor limit is
> typically not neccessarily the one that is relevant. While the
> hypervisor will still has its own limit of VCPUs, the effective
> limit is likely lower - ie fixed at the number of virtual CPUs
> which were allocated when the guest OS booted. So if you boot a
> guest with 4 cpus, you can hotplug remove & add CPUs, but you
> can never go above 4 until the guest is shutdown.
> 
> So anyway, I think we need to add 2 apis to address this whole
> issue:
> 
>   -  int virConnectGetMaxVcpus(virConnectPtr conn, 
>                                const char *type);
> 
>       Returns the maximum number of virtual CPUs supported for
>       a guest VM of a specific type. Thje 'type' parameter here
>       corresponds to the 'type' attribute in the <domain>
>       element of the XML.
> 
>   -  int virDomainGetMaxVcpus(virDomainPtr dom);
> 
>       Returns the maximum number of virual CPUs supported for
>       the guest VM. If the guest is inactive, this is basically
>       the same as virConnectGetMaxVcpus. If the guest is running
>       this will reflect the maximum number of VCPus the guest
>       was booted with.
> 
> In terms of the Xen implementation, the virConnectGetMaxVcpus
> method can simply return  MAX_VIRT_VCPUS. Likewie virDomainGetMaxVcpus
> can do the same for inactive guests, but if the guest is running then
> we will need to call out to XenD to extract the max vcpus info.
> 
> Any other thoughts from people on the list ???
> 
> Dan.
> -- 
> |=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
> |=-           Perl modules: http://search.cpan.org/~danberr/              -=|
> |=-               Projects: http://freshmeat.net/~danielpb/               -=|
> |=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libvirt-check-max-vcpu.patch
Type: application/octet-stream
Size: 17330 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20070306/d43b1d0a/attachment-0001.obj>


More information about the libvir-list mailing list