[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] shut down domain when last vCPU goes down
commit d3b230fc46ee9853064e167f6cb4da8ea0a08112 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Mon Feb 19 14:00:31 2018 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Mon Feb 19 14:00:31 2018 +0100 shut down domain when last vCPU goes down I've just had to deal with an early boot crash of Linux which occurred so early that even "earlyprintk=xen" did not produce any useful output. Hence the domain appeared to hang, while in fact it had brought down its only vCPU. By translating this to a shutdown, the situation will be better recognizable. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- xen/common/domain.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/xen/common/domain.c b/xen/common/domain.c index 4567773..e1c003d 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -1321,6 +1321,22 @@ long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg) break; case VCPUOP_down: + for_each_vcpu ( d, v ) + if ( v->vcpu_id != vcpuid && !test_bit(_VPF_down, &v->pause_flags) ) + { + rc = 1; + break; + } + + if ( !rc ) /* Last vcpu going down? */ + { + domain_shutdown(d, SHUTDOWN_poweroff); + break; + } + + rc = 0; + v = d->vcpu[vcpuid]; + #ifdef CONFIG_X86 if ( pv_shim ) rc = continue_hypercall_on_cpu(0, pv_shim_cpu_down, v); -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |