|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 2/7] libxl: Add to libxl__domain_type a new return value (LIBXL_DOMAIN_TYPE_NOTFOUND)
On Tue, Mar 24, 2015 at 03:15:30PM +0000, Ian Campbell wrote:
> On Mon, 2015-03-23 at 14:20 -0400, Konrad Rzeszutek Wilk wrote:
> > So that the callers can distinguish between an error and
> > an domain not found. The exposed API calls that are effected
> > by this are: libxl_domain_[remus_start,suspend,unpause,cdrom_insert,
> > set_vcpuonline]
> >
> > We add an helper function to deal with the two types of errors:
> > libxl_domain_type2err. However for libxl_[pci,dom].c we just add
> > the extra check for LIBXL_DOMAIN_TYPE_NOTFOUND for simplicity
> > reasons.
> >
> > Suggested-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
>
> Did I?
You suggested that 'libxl_set_vcpuonline' deal with all of the
various issues instead of having them in the 'vcpusset'. This would
bolting in libxl_set_vcpuonline' the proper error code support - which
this patch does.
>
> Anyway, I'm not terribly keen on the approach taken here, sorry, in
> particular extending libxl_domain_type with a subset of the libxl_error
> codes and the shenanigans which are needed to convert between them.
:-)
>
> Off hand I can think of 3 possible alternative solutions:
>
> Arrange that the -ve error values in libxl_domain_type directly
> correspond to an appropriate libxl_error code, allowing code to do
> if (type < 0) return type;
> if (type < 0) { rc = type ; goto out }
> type stuff.
>
> Change the prototype of libxl__domain_type to always return a libxl rc
> and on success return the type via a pointer argument.
>
> Change the return type of libxl_domain_type to an int and return either
> a LIBXL_DOMAIN_TYPE_FOO or an ERROR_*.
>
> They all have downsides (I don't much like the implicit cast between
> domain type and error code, changing the prototype will probably be
> disruptive, changing the return type means gcc can't catch missing
> switch statements for us).
>
> Perhaps you or my fellow maintainers have a better idea or a preference
> for one of the above?
Drop the patch altogether and just leave the imprecise errors
that libxl_set_vcpuonline can return?
It is OK if it just returns LIBXL_DOMAIN_TYPE_INVALID - as the message about
what went wrong is most important. With patches:
"libxl/vcpu-set - allow to decrease vcpu count on overcommitted guests (v3)"
and
"libxl: In libxl_set_vcpuonline check for maximum number of VCPUs against the
cpumap"
we print now the error messages when the user mistakenly:
1) picks the wrong domain id
2) picks the wrong cpu count (too many)
So this patch can be ignored.
>
> Ian.
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |