On Wed, Feb 22, 2017 at 01:34:54PM +0100, Peter Krempa wrote:
On Wed, Feb 22, 2017 at 12:16:51 +0000, Daniel Berrange wrote:
> On Fri, Feb 10, 2017 at 06:10:18PM +0100, Peter Krempa wrote:
> > Similarly to domainSetGuestVcpus this commit adds API which allows to
> > modify state of individual vcpus rather than just setting the count.
> >
> > This allows to enable CPUs in specific guest NUMA nodes to achieve any
> > necessary configuration.
> > ---
> > include/libvirt/libvirt-domain.h | 5 +++++
> > src/driver-hypervisor.h | 7 ++++++
> > src/libvirt-domain.c | 48
++++++++++++++++++++++++++++++++++++++++
> > src/libvirt_public.syms | 5 +++++
> > src/remote/remote_driver.c | 1 +
> > src/remote/remote_protocol.x | 16 +++++++++++++-
> > src/remote_protocol-structs | 7 ++++++
> > 7 files changed, 88 insertions(+), 1 deletion(-)
> >
> > diff --git a/include/libvirt/libvirt-domain.h
b/include/libvirt/libvirt-domain.h
> > index e303140a2..c0f715d66 100644
> > --- a/include/libvirt/libvirt-domain.h
> > +++ b/include/libvirt/libvirt-domain.h
> > @@ -4528,4 +4528,9 @@ int virDomainSetGuestVcpus(virDomainPtr domain,
> > int state,
> > unsigned int flags);
> >
> > +int virDomainSetVcpu(virDomainPtr domain,
> > + const char *vcpumap,
> > + int state,
> > + unsigned int flags);
>
> In adding support for this to perl/go bindings I see that this is using
> a different style to the existing APIs. With the exception of the
> virDomainSetGuestVcpus() API, everything else dealing with CPU maps
> uses an 'unsigned char *cpu' & 'int maplen' pair to store the
data as
> a bitmap. I think we should change this API to also use the bitmap
> rather than the textual format as it gives consistency with other
> APIs, particularly when mapping into other languages. For example
> in Go, the bitmaps get turned into a boolean array, so it is a very
> natural representation to manipulate - the textual format is rather
> inconvenient in this respect.
I modelled this API after the qemuDomainSetGuestVcpus and
qemuDomainGetGuestVcpusParams which already uses the string
representation rather the harder-to-use bitmap one, since they are in
for a while we can't change those.
Yep, we can't change those, but we can't avoid spreading the inconsistency
further, as all the other methods relating to CPUs aginst virDomain use
a bitmap
Regards,
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://entangle-photo.org -o-
http://search.cpan.org/~danberr/ :|