[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.