From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx1.redhat.com ([209.132.183.28]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Ya4Pp-0001zZ-Gp for kexec@lists.infradead.org; Mon, 23 Mar 2015 15:37:22 +0000 Date: Mon, 23 Mar 2015 11:36:59 -0400 From: Vivek Goyal Subject: Re: [PATCH v2] kernel/panic/kexec: fix "crash_kexec_post_notifiers" option issue in oops path Message-ID: <20150323153659.GC3172@redhat.com> References: <54F9D645.2050008@jp.fujitsu.com> <20150323034752.GD2068@dhcp-16-105.nay.redhat.com> <20150323071943.GA22765@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20150323071943.GA22765@gmail.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: Ingo Molnar Cc: Baoquan He , kexec@lists.infradead.org, linux-kernel@vger.kernel.org, hidehiro.kawai.ez@hitachi.com, =?utf-8?B?IkhhdGF5YW1hLCBEYWlzdWtlL+eVkeWxsSDlpKfovJQi?= , mingo@redhat.com, ebiederm@xmission.com, masami.hiramatsu.pt@hitachi.com, akpm@linux-foundation.org, bp@suse.de T24gTW9uLCBNYXIgMjMsIDIwMTUgYXQgMDg6MTk6NDNBTSArMDEwMCwgSW5nbyBNb2xuYXIgd3Jv dGU6Cj4gCj4gKiBCYW9xdWFuIEhlIDxiaGVAcmVkaGF0LmNvbT4gd3JvdGU6Cj4gCj4gPiBDQyBt b3JlIHBlb3BsZSAuLi4KPiA+IAo+ID4gT24gMDMvMDcvMTUgYXQgMDE6MzFhbSwgIkhhdGF5YW1h LCBEYWlzdWtlL+eVkeWxsSDlpKfovJQiIHdyb3RlOgo+ID4gPiBUaGUgY29tbWl0IGYwNmU1MTUz ZjRhZTJlMmYzYjAzMDBmMGUyNjBlNDBjYjdmZWZkNDUgaW50cm9kdWNlZAo+ID4gPiAiY3Jhc2hf a2V4ZWNfcG9zdF9ub3RpZmllcnMiIGtlcm5lbCBib290IG9wdGlvbiwgd2hpY2ggdG9nZ2xlcwo+ ID4gPiB3aGVhdGhlciBwYW5pYygpIGNhbGxzIGNyYXNoX2tleGVjKCkgYmVmb3JlIHBhbmljX25v dGlmaWVycyBhbmQgZHVtcAo+ID4gPiBrbXNnIG9yIGFmdGVyLgo+ID4gPiAKPiA+ID4gVGhlIHBy b2JsZW0gaXMgdGhhdCB0aGUgY29tbWl0IG92ZXJsb29rcyBwYW5pY19vbl9vb3BzIGtlcm5lbCBi b290Cj4gPiA+IG9wdGlvbi4gSWYgaXQgaXMgZW5hYmxlZCwgY3Jhc2hfa2V4ZWMoKSBpcyBjYWxs ZWQgZGlyZWN0bHkgd2l0aG91dAo+ID4gPiBnb2luZyB0aHJvdWdoIHBhbmljKCkgaW4gb29wcyBw YXRoLgo+ID4gPiAKPiA+ID4gVG8gZml4IHRoaXMgaXNzdWUsIHRoaXMgcGF0Y2ggYWRkcyBhIGNo ZWNrIHRvCj4gPiA+ICJjcmFzaF9rZXhlY19wb3N0X25vdGlmaWVycyIgaW4gdGhlIGNvbmRpdGlv biBvZiBrZXhlY19zaG91bGRfY3Jhc2goKS4KPiA+ID4gCj4gPiA+IEFsc28sIHB1dCBhIGNvbW1l bnQgaW4ga2V4ZWNfc2hvdWxkX2NyYXNoKCkgdG8gZXhwbGFpbiBub3Qgb2J2aW91cwo+ID4gPiB0 aGluZ3Mgb24gdGhpcyBwYXRjaC4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEhBVEFZQU1B IERhaXN1a2UgPGQuaGF0YXlhbWFAanAuZnVqaXRzdS5jb20+Cj4gPiA+IEFja2VkLWJ5OiBCYW9x dWFuIEhlIDxiaGVAcmVkaGF0LmNvbT4KPiA+ID4gVGVzdGVkLWJ5OiBIaWRlaGlybyBLYXdhaSA8 aGlkZWhpcm8ua2F3YWkuZXpAaGl0YWNoaS5jb20+Cj4gPiA+IFJldmlld2VkLWJ5OiBNYXNhbWkg SGlyYW1hdHN1IDxtYXNhbWkuaGlyYW1hdHN1LnB0QGhpdGFjaGkuY29tPgo+ID4gPiAtLS0KPiA+ ID4gIGluY2x1ZGUvbGludXgva2VybmVsLmggfCAgMyArKysKPiA+ID4gIGtlcm5lbC9rZXhlYy5j ICAgICAgICAgfCAxMSArKysrKysrKysrKwo+ID4gPiAga2VybmVsL3BhbmljLmMgICAgICAgICB8 ICAyICstCj4gPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKPiAKPiBUaGlzIGlzIGhhY2sgdXBvbiBoYWNrLCBidXQgd2h5IHdhcyB0aGlzIGNyYXAg bWVyZ2VkIGluIHRoZSBmaXJzdCAKPiBwbGFjZT8KPiAKPiBJIHNlZSB0d28gcHJvYmxlbXMganVz dCBieSBjdXJzb3J5IHJldmlldzoKPiAKPiAxKQo+IAo+IEZpcnN0bHksIHRoZSByZWFsIGJ1ZyBp bjoKPiAKPiAgIGYwNmU1MTUzZjRhZSAoImtlcm5lbC9wYW5pYy5jOiBhZGQgImNyYXNoX2tleGVj X3Bvc3Rfbm90aWZpZXJzIiBvcHRpb24gZm9yIGtkdW1wIGFmdGVyIHBhbmljX25vdGlmZXJzIikK PiAKPiBXYXMgdGhhdCBjcmFzaF9rZXhlYygpIHdhcyBjYWxsZWQgdW5jb25kaXRpb25hbGx5IGFm dGVyIG5vdGlmaWVycyB3ZXJlIAo+IGNhbGxlZCwgd2hpY2ggc2hvdWxkIGJlIGZpeGVkIHZpYSB0 aGUgc2ltcGxlIHBhdGNoIGJlbG93ICh1bnRlc3RlZCkuIAo+IExvb2tzIG11Y2ggc2ltcGxlciB0 aGFuIHlvdXIgZml4Lgo+IAo+IDIpCj4gCj4gU2Vjb25kbHksIGFuZCBtb3JlIGltcG9ydGFudGx5 LCB0aGUgd2hvbGUgcHJlbWlzZSBvZiBjb21taXQgCj4gZjA2ZTUxNTNmNGFlIGlzIGJyb2tlbiBJ TUhPOgo+IAo+ICAiVGhpcyBjYW4gaGVscCByYXJlIHNpdHVhdGlvbnMgd2hlcmUga2R1bXAgZmFp bHMgYmVjYXVzZSBvZiB1bnN0YWJsZQo+ICAgY3Jhc2hlZCBrZXJuZWwgb3IgaGFyZHdhcmUgZmFp bHVyZSAobWVtb3J5IGNvcnJ1cHRpb24gb24gY3JpdGljYWwKPiAgIGRhdGEvY29kZSkiCj4gCj4g d3RmPwo+IAo+IElmIHRoZSBrZXJuZWwgY3Jhc2hlZCBkdWUgdG8gYSBrZXJuZWwgY3Jhc2gsIHRo ZW4gdGhlIGtlcm5lbCBib290aW5nIAo+IHVwIGluIHdoYXRldmVyIGhhcmR3YXJlIHN0YXRlIHNo b3VsZCBiZSBhYmxlIHRvIGRvIGEgY2xlYW4gYm9vdHVwLiBUaGUgCj4gZml4IGZvciB0aG9zZSAn cmFyZSBzaXR1YXRpb25zJyBzaG91bGQgYmUgdG8gZml4IHRoZSByZWFsIGJ1ZyAoZm9yIAo+IGV4 YW1wbGUgYnkgbWFraW5nIGhhcmR3YXJlIGRyaXZlciBpbml0IChvciBkZWluaXQpIHNlcXVlbmNl cyBtb3JlIAo+IHJvYnVzdCksIG5vdCB0byBwYXBlciBpdCBvdmVyIGJ5IG9yZGVyaW5nIGFyb3Vu ZCBjcmFzaC10aW1lIHNlcXVlbmNlcyAKPiAuLi4KPiAKPiBJZiBpdCBjcmFzaGVkIGR1ZSB0byBz b21lIGhhcmR3YXJlIGZhaWx1cmUsIHRoZXJlJ3MgbGl0ZXJhbGx5IGFuIAo+IGluZmluaXRlIGFt b3VudCBvZiBmYWlsdXJlIG1vZGVzIHRoYXQgbWF5IG9yIG1heSBub3QgYmUgaW1wYWN0ZWQgYnkg Cj4ga2V4ZWMgY3Jhc2gtdGltZSBoYW5kbGluZyBvcmRlcmluZy4gV2UgZG9uJ3Qgd2FudCB0byBw dXQgYSB6aWxsaW9uIAo+IHN1Y2ggZmxhZ3MgaW50byB0aGUga2VybmVsIHByb3BlciBqdXN0IHRv IGFsbG93IHRoZSBwZXJ0dXJiYXRpb24gb2YgCj4gdGhlIGtlcm5lbC4KPiAKPiBUaGFua3MsCj4g Cj4gCUluZ28KPiAKCkkgcXVpY2tseSB0ZXN0ZWQgdGhpcyBwYXRjaCB0byBtYWtlIHN1cmUgSSBj YW4gc3RpbGwgdHJhbnNpdGlvbiBpbnRvCnNlY29uZCBrZXJuZWwgd2hlbiBjcmFzaF9rZXhlY19w b3N0X25vdGlmaWVycyBpcyBzcGVjaWZpZWQgb24gY29tbWFuZApsaW5lLiBJIGhhdmUgbm90IHRy aWVkIHJ1bm5pbmcgYW55IG5vdGlmaWVycy4gU28uCgpUZXN0ZWQtYnk6IFZpdmVrIEdveWFsIDx2 Z295YWxAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IFZpdmVrIEdveWFsIDx2Z295YWxAcmVkaGF0LmNv bT4KClRoaXMgc2hvdWxkIGJlIGEgZ2VuZXJhbCBmaXggYW5kIG5vdCBhIHJlcGxhY2VtZW50IGZv ciB0aGUgcGF0Y2gKaW4gcXVlc3Rpb24gaW4gdGhpcyBtYWlsIHRocmVhZC4gCgpUaGFua3MKVml2 ZWsKCj4gZGlmZiAtLWdpdCBhL2tlcm5lbC9wYW5pYy5jIGIva2VybmVsL3BhbmljLmMKPiBpbmRl eCA4MTM2YWQ3NmU1ZmQuLjc3NDYxNGY3MmNiZCAxMDA2NDQKPiAtLS0gYS9rZXJuZWwvcGFuaWMu Ywo+ICsrKyBiL2tlcm5lbC9wYW5pYy5jCj4gQEAgLTE0Miw3ICsxNDIsOCBAQCB2b2lkIHBhbmlj KGNvbnN0IGNoYXIgKmZtdCwgLi4uKQo+ICAJICogTm90ZTogc2luY2Ugc29tZSBwYW5pY19ub3Rp ZmllcnMgY2FuIG1ha2UgY3Jhc2hlZCBrZXJuZWwKPiAgCSAqIG1vcmUgdW5zdGFibGUsIGl0IGNh biBpbmNyZWFzZSByaXNrcyBvZiB0aGUga2R1bXAgZmFpbHVyZSB0b28uCj4gIAkgKi8KPiAtCWNy YXNoX2tleGVjKE5VTEwpOwo+ICsJaWYgKGNyYXNoX2tleGVjX3Bvc3Rfbm90aWZpZXJzKQo+ICsJ CWNyYXNoX2tleGVjKE5VTEwpOwo+ICAKPiAgCWJ1c3Rfc3BpbmxvY2tzKDApOwo+ICAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmtleGVjIG1haWxpbmcg bGlzdAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8va2V4ZWMK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753164AbbCWPhD (ORCPT ); Mon, 23 Mar 2015 11:37:03 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41700 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752794AbbCWPhA (ORCPT ); Mon, 23 Mar 2015 11:37:00 -0400 Date: Mon, 23 Mar 2015 11:36:59 -0400 From: Vivek Goyal To: Ingo Molnar Cc: Baoquan He , =?utf-8?B?IkhhdGF5YW1hLCBEYWlzdWtlL+eVkeWxsSDlpKfovJQi?= , ebiederm@xmission.com, masami.hiramatsu.pt@hitachi.com, hidehiro.kawai.ez@hitachi.com, linux-kernel@vger.kernel.org, kexec@lists.infradead.org, akpm@linux-foundation.org, mingo@redhat.com, bp@suse.de Subject: Re: [PATCH v2] kernel/panic/kexec: fix "crash_kexec_post_notifiers" option issue in oops path Message-ID: <20150323153659.GC3172@redhat.com> References: <54F9D645.2050008@jp.fujitsu.com> <20150323034752.GD2068@dhcp-16-105.nay.redhat.com> <20150323071943.GA22765@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20150323071943.GA22765@gmail.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 23, 2015 at 08:19:43AM +0100, Ingo Molnar wrote: > > * Baoquan He wrote: > > > CC more people ... > > > > On 03/07/15 at 01:31am, "Hatayama, Daisuke/畑山 大輔" wrote: > > > The commit f06e5153f4ae2e2f3b0300f0e260e40cb7fefd45 introduced > > > "crash_kexec_post_notifiers" kernel boot option, which toggles > > > wheather panic() calls crash_kexec() before panic_notifiers and dump > > > kmsg or after. > > > > > > The problem is that the commit overlooks panic_on_oops kernel boot > > > option. If it is enabled, crash_kexec() is called directly without > > > going through panic() in oops path. > > > > > > To fix this issue, this patch adds a check to > > > "crash_kexec_post_notifiers" in the condition of kexec_should_crash(). > > > > > > Also, put a comment in kexec_should_crash() to explain not obvious > > > things on this patch. > > > > > > Signed-off-by: HATAYAMA Daisuke > > > Acked-by: Baoquan He > > > Tested-by: Hidehiro Kawai > > > Reviewed-by: Masami Hiramatsu > > > --- > > > include/linux/kernel.h | 3 +++ > > > kernel/kexec.c | 11 +++++++++++ > > > kernel/panic.c | 2 +- > > > 3 files changed, 15 insertions(+), 1 deletion(-) > > This is hack upon hack, but why was this crap merged in the first > place? > > I see two problems just by cursory review: > > 1) > > Firstly, the real bug in: > > f06e5153f4ae ("kernel/panic.c: add "crash_kexec_post_notifiers" option for kdump after panic_notifers") > > Was that crash_kexec() was called unconditionally after notifiers were > called, which should be fixed via the simple patch below (untested). > Looks much simpler than your fix. > > 2) > > Secondly, and more importantly, the whole premise of commit > f06e5153f4ae is broken IMHO: > > "This can help rare situations where kdump fails because of unstable > crashed kernel or hardware failure (memory corruption on critical > data/code)" > > wtf? > > If the kernel crashed due to a kernel crash, then the kernel booting > up in whatever hardware state should be able to do a clean bootup. The > fix for those 'rare situations' should be to fix the real bug (for > example by making hardware driver init (or deinit) sequences more > robust), not to paper it over by ordering around crash-time sequences > ... > > If it crashed due to some hardware failure, there's literally an > infinite amount of failure modes that may or may not be impacted by > kexec crash-time handling ordering. We don't want to put a zillion > such flags into the kernel proper just to allow the perturbation of > the kernel. > > Thanks, > > Ingo > I quickly tested this patch to make sure I can still transition into second kernel when crash_kexec_post_notifiers is specified on command line. I have not tried running any notifiers. So. Tested-by: Vivek Goyal Acked-by: Vivek Goyal This should be a general fix and not a replacement for the patch in question in this mail thread. Thanks Vivek > diff --git a/kernel/panic.c b/kernel/panic.c > index 8136ad76e5fd..774614f72cbd 100644 > --- a/kernel/panic.c > +++ b/kernel/panic.c > @@ -142,7 +142,8 @@ void panic(const char *fmt, ...) > * Note: since some panic_notifiers can make crashed kernel > * more unstable, it can increase risks of the kdump failure too. > */ > - crash_kexec(NULL); > + if (crash_kexec_post_notifiers) > + crash_kexec(NULL); > > bust_spinlocks(0); >