From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH RFC] hvm: Allow triple fault to imply crash rather than reboot Date: Mon, 4 Feb 2013 14:50:39 +0000 Message-ID: <510FCABF.7010003@citrix.com> References: <6f8c532df545a3d51fec.1359987936@andrewcoop.uk.xensource.com> <510FD7C002000078000BB8F0@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <510FD7C002000078000BB8F0@nat28.tlf.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: "Keir (Xen.org)" , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org On 04/02/13 14:46, Jan Beulich wrote: >>>> On 04.02.13 at 15:25, Andrew Cooper wrote: >> While the triple fault action on native hardware will result in a system >> reset, any modern operating system can and will make use of less violent >> reboot methods. As a result, the most likely cause of a triple fault is a >> fatal software bug. >> >> This patch allows the toolstack to indicate that a triple fault should mean >> a >> crash rather than a reboot. The default of reboot still remains the same. > Makes sense to me; minor nits below (no need to resend just > because of that, but would be nice to be addressed if you had > to rev the patch anyway). > >> --- a/xen/arch/x86/hvm/hvm.c >> +++ b/xen/arch/x86/hvm/hvm.c >> @@ -1233,9 +1233,14 @@ void hvm_hlt(unsigned long rflags) >> void hvm_triple_fault(void) >> { >> struct vcpu *v = current; >> + struct domain * d = v->domain; > Stray blank. Space between * and d ? > >> + u8 reason = d->arch.hvm_domain.params[HVM_PARAM_TRIPLE_FAULT_CRASH] >> + ? SHUTDOWN_crash : SHUTDOWN_reboot; >> + >> gdprintk(XENLOG_INFO, "Triple fault on VCPU%d - " >> - "invoking HVM system reset.\n", v->vcpu_id); >> - domain_shutdown(v->domain, SHUTDOWN_reboot); >> + "invoking HVM system %s.\n", v->vcpu_id, >> + reason == SHUTDOWN_crash ? "crash" : "reboot"); >> + domain_shutdown(v->domain, reason); > So you have d cached in a local variable now, yet you still use > v->domain here? Doh - missed that. > > Also, I'd prefer for the message to continue to say "reset". > > Jan > Ok - I will respin and send as non-rfc.