[libvirt] [Xen-devel] [PATCH] Convert libxl driver to Xen 4.2

Ondřej Holeček oholecek at suse.com
Tue Nov 27 12:05:21 UTC 2012


Tuesday 27 of November 2012 10:51:30, Ian Campbell:
> On Mon, 2012-11-26 at 22:28 +0000, Jim Fehlig wrote:

> > @@ -393,26 +458,25 @@ libxlMakeDomBuildInfo(virDomainDefPtr def, libxl_domain_config *d_config)
> >      int hvm = STREQ(def->os.type, "hvm");
> >      int i;
> > 
> > -    /* Currently, libxenlight only supports 32 vcpus per domain.
> > -     * cur_vcpus member of struct libxl_domain_build_info is defined
> > -     * as an int, but its semantic is a bitmap of online vcpus, so
> > -     * only 32 can be represented.
> > +    /*
> > +     * libxl in Xen 4.2 supports up to 128 vcpus, cur_vcpus was replaced
> > +     * by avail_vcpus of type libxl_bitmap
> 
> Do you happen to know where the 128 number comes from? I think libxl is
> mostly agnostic about the size of this bitmap and should just be
> exposing whatever the hypervisor supports.

You are right that this check is probably unnecessary. While working on some parts of this patch I
merely tried to update original patch by Daniel De Graaf and wasn't removing any code I didn't understand.
Anyway, I was inspired by commit e1e1e98cacd8 at Xen git and related patch message [0].

[0] http://lists.xen.org/archives/html/xen-devel/2012-06/msg01667.html

> 
> >       */
> > -    if (def->maxvcpus > 32 || def->vcpus > 32) {
> > -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> > -                       _("This version of libxenlight only supports 32 "
> > -                         "vcpus per domain"));
> > +    if (def->maxvcpus > LIBXL_MAXVCPUS || def->vcpus > LIBXL_MAXVCPUS) {
> > +        virReportError(VIR_ERR_INTERNAL_ERROR,
> > +                       _("This version of libxenlight only supports %u "
> > +                         "vcpus per domain"), LIBXL_MAXVCPUS);
> >          return -1;
> >      }
> 




More information about the libvir-list mailing list