From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Ian Campbell <ian.campbell@citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 2/7] libxl: Add to libxl__domain_type a new return value (LIBXL_DOMAIN_TYPE_NOTFOUND)
Date: Tue, 24 Mar 2015 11:47:45 -0400 [thread overview]
Message-ID: <20150324154745.GE14418@l.oracle.com> (raw)
In-Reply-To: <1427210130.21742.434.camel@citrix.com>
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@citrix.com>
>
> 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.
>
next prev parent reply other threads:[~2015-03-24 15:47 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-23 18:20 [PATCH v3] Fix xl vcpu-set to decrease an guest vCPU amount without complaints Konrad Rzeszutek Wilk
2015-03-23 18:20 ` [PATCH v3 1/7] libxl: Add ERROR_DOMAIN_NOTFOUND for libxl_domain_info when it cannot find the domain Konrad Rzeszutek Wilk
2015-03-24 15:04 ` Ian Campbell
2015-03-23 18:20 ` [PATCH v3 2/7] libxl: Add to libxl__domain_type a new return value (LIBXL_DOMAIN_TYPE_NOTFOUND) Konrad Rzeszutek Wilk
2015-03-24 15:15 ` Ian Campbell
2015-03-24 15:47 ` Konrad Rzeszutek Wilk [this message]
2015-03-23 18:20 ` [PATCH v3 3/7] libxl: In libxl_set_vcpuonline check for maximum number of VCPUs against the cpumap Konrad Rzeszutek Wilk
2015-03-24 15:22 ` Ian Campbell
2015-03-25 18:44 ` Konrad Rzeszutek Wilk
2015-03-26 10:00 ` Ian Campbell
2015-03-23 18:20 ` [PATCH v3 4/7] libxl/vcpuset: Print error if libxl_set_vcpuonline returns ERROR_DOMAIN_NOTFOUND Konrad Rzeszutek Wilk
2015-03-24 15:23 ` Ian Campbell
2015-03-23 18:20 ` [PATCH v3 5/7] libxl/vcpuset: Return error value if failed Konrad Rzeszutek Wilk
2015-03-24 15:24 ` Ian Campbell
2015-03-23 18:21 ` [PATCH v3 6/7] libxl/vcpuset: Remove useless limit on max_vcpus Konrad Rzeszutek Wilk
2015-03-23 18:21 ` [PATCH v3 7/7] libxl/vcpu-set - allow to decrease vcpu count on overcommitted guests (v3) Konrad Rzeszutek Wilk
2015-03-24 15:41 ` Ian Campbell
2015-03-24 15:56 ` Ian vs Ian, round 0 Was:Re: " Konrad Rzeszutek Wilk
2015-03-24 16:01 ` Ian Campbell
2015-03-25 18:42 ` Konrad Rzeszutek Wilk
2015-03-26 9:58 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150324154745.GE14418@l.oracle.com \
--to=konrad.wilk@oracle.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=ian.campbell@citrix.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.