[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] domctl: do away with tool stack based retrying
commit 15e0aac6fe76be6a710a8e6d3da610d437903266 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Wed Feb 18 16:57:02 2015 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Wed Feb 18 16:57:02 2015 +0100 domctl: do away with tool stack based retrying XEN_DOMCTL_destroydomain so far is being special cased in libxc to reinvoke the operation when getting back EAGAIN. Quite a few other domctl-s have gained continuations, so I see no reason not to use them here too. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- tools/libxc/xc_domain.c | 6 +----- xen/common/domain.c | 6 +----- xen/common/domctl.c | 7 ++++--- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c index b864872..845d1d7 100644 --- a/tools/libxc/xc_domain.c +++ b/tools/libxc/xc_domain.c @@ -112,14 +112,10 @@ int xc_domain_unpause(xc_interface *xch, int xc_domain_destroy(xc_interface *xch, uint32_t domid) { - int ret; DECLARE_DOMCTL; domctl.cmd = XEN_DOMCTL_destroydomain; domctl.domain = (domid_t)domid; - do { - ret = do_domctl(xch, &domctl); - } while ( ret && (errno == EAGAIN) ); - return ret; + return do_domctl(xch, &domctl); } int xc_domain_shutdown(xc_interface *xch, diff --git a/xen/common/domain.c b/xen/common/domain.c index 0b05681..aa78fd7 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -617,13 +617,9 @@ int domain_kill(struct domain *d) case DOMDYING_dying: rc = domain_relinquish_resources(d); if ( rc != 0 ) - { - if ( rc == -ERESTART ) - rc = -EAGAIN; break; - } if ( cpupool_move_domain(d, cpupool0) ) - return -EAGAIN; + return -ERESTART; for_each_vcpu ( d, v ) unmap_vcpu_info(v); d->is_dying = DOMDYING_dead; diff --git a/xen/common/domctl.c b/xen/common/domctl.c index 33ecd45..4a42c66 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -692,10 +692,11 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) break; case XEN_DOMCTL_destroydomain: - { ret = domain_kill(d); - } - break; + if ( ret == -ERESTART ) + ret = hypercall_create_continuation( + __HYPERVISOR_domctl, "h", u_domctl); + break; case XEN_DOMCTL_setnodeaffinity: { -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |