[Libvir] Re: Proposal : add 3 functions to Libvirt API, for virtual CPUs
Daniel P. Berrange
berrange at redhat.com
Mon Jul 10 17:27:55 UTC 2006
On Mon, Jul 10, 2006 at 12:44:34PM -0400, Daniel Veillard wrote:
> > /**
> > * virDomainGetVcpus:
> > * @domain: pointer to domain object, or NULL for Domain0
> > * @info: pointer to an array of virVcpuInfo structures
> > * @maxinfo: number of structures in info array
> > *
> > * Extract information about virtual CPUs of a domain, store it in info
> > array.
> > *
> > * Returns the number of info filled in case of success, -1 in case of
> > failure.
> > */
> > int virDomainGetVcpus(virDomainPtr domain, virVcpuInfoPtr info, int
> > maxinfo)
> Hum ... now the problem with that API entry point is that we 'burn' the
> maximum 256 processors in the ABI, i.e. if we ever need to go past 256
> client and servers need to be recompiled. Maybe this is not a real problem
> in practice but that's annoying. Is there existing APIs doing this kind
> of things (in POSIX for example), and what hard limit did they use ?
> int virDomainGetVcpusNr(virDomainPtr domain, int nr, virVcpuInfoPtr info,
> int maxCPU);
> Where the maxCPU is defined by the client as the number of real CPU
> it defined in its virVcpuInfoPtr and then an iteration over the virtual
> CPU defined in the domain is possible too.
> Of course if the domain uses many virtual CPUs this would become expensive
> but somehow I don't see that being the common use, I would rather guess
> the domains created use a few CPUs even if instantiated on a very large machine.
> > with the following structure (in libvirt.h):
> > /**
> > * virVcpuInfo: structure for information about a virtual CPU in a domain.
> > */
> > #define VIR_MAX_CPUS 256
> Hum, there is already NUMA machines with more than 256 processors,
> it's annoying to define an API limit when you know it is already breakable.
Yeah, if we define such a hard limit in the ABI, then I can pretty much
guarentee this will come back to bite us. As Daniel says, there are already
machines in existance with huge number of CPUS, so I can easily see us hitting
that limit within a pretty short time period - particularly now that Xen has
been ported to IA64 - cf HP Superdome machines with 128 physical CPUs - add
in dual core & hyperthreading to that....
|=- 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 -=|
More information about the libvir-list