From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758041Ab1GKWHd (ORCPT ); Mon, 11 Jul 2011 18:07:33 -0400 Received: from mx1.redhat.com ([209.132.183.28]:2570 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753165Ab1GKWHc (ORCPT ); Mon, 11 Jul 2011 18:07:32 -0400 Date: Mon, 11 Jul 2011 18:07:09 -0400 From: Vivek Goyal To: Seiji Aguchi Cc: "kexec@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "Eric W. Biederman" , KOSAKI Motohiro , Americo Wang , Matthew Garrett , "tony.luck@intel.com" , Andrew Morton , Jarod Wilson , "hpa@zytor.com" , "dle-develop@lists.sourceforge.net" , Satoru Moriya Subject: Re: [RFC][PATCH] Replace a function call chain of kmsg_dump(KMSG_DUMP_KEXEC) with static function calls Message-ID: <20110711220709.GG30674@redhat.com> References: <5C4C569E8A4B9B42A84A977CF070A35B2C17AAE59A@USINDEVS01.corp.hds.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <5C4C569E8A4B9B42A84A977CF070A35B2C17AAE59A@USINDEVS01.corp.hds.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 11, 2011 at 11:47:17AM -0400, Seiji Aguchi wrote: > Hi, > > [Background] > - Requirement in enterprise area > From our support service experience, we always need to detect root causes of OS panic. > Because customers in enterprise area never forgive us if kdump fails and we can't detect > root causes of panic due to lack of materials for investigation. > > That is why I would like to add kmsg_dump() in kdump path. > > [Upstream status] > Discussion about kmsg_dump() in kdump path: > - Vivek and Eric are worried about reliability of existing kmsg_dump(). > - Especially, Vivek would like to remove a RCU function call chain in kdump path >     which kernel modules can register their function calls freely. > > Development of a feature capturing Oops: > - Pstore has already incorporated in upstream kernel. > > - Matthew Garrett is developing efivars driver, a feature capturing Oops via EFI > through pstore interface. > > https://lkml.org/lkml/2011/6/7/437 > https://lkml.org/lkml/2011/6/7/438 > https://lkml.org/lkml/2011/6/7/439 > https://lkml.org/lkml/2011/6/7/440 > > - However, these features may not work in kdump path because > there are spin_lock/mutex_lock in pstore_dump()/efi_pstore_write(). >     These locks may cause dead lock and kdump may fail as well. I think then right solution is to harden pstore() to be able to called from crashed kernel context where interrupts will not be working, all other cpus are not running and one can afford to rely on taking any locks. Bypassing that just to make sure case of efi work is not going to help. > > [Build Status] > Built this patch on 3.0-rc6 in x86_64. > > [Patch Description] > > For meeting Eric/Vivek's requirements and solving issues of pstore/efivars driver, I propose a following patch. > > - Remove kmsg_dump(KMSG_DUMP_KEXEC) from crash_kexec() > - Add kmsg_dump_kexec() to crash_kexec() > kmsg_dump_kexec() moved behind machine_crash_shutdown() so that > we can output kernel messages without getting any locks. So you are introducing two variants of kmsg dump now? One is kmsg_dump() and other is kmsg_dump_kexec()? Why not just get rid of kmsg_dump() for non panic case and simply always call in crashed kernel case? > > - Introduce CONFIG_KMSG_DUMP_KEXEC > - CONFIG_KMSG_DUMP_KEXEC depends on CONFIG_PRINTK which is required for kmsg_dumper. > > - CONFIG_KMSG_DUMP_KEXEC=n (default) > Kernel message logging feature doesn't work in kdump path. > > - CONFIG_KMSG_DUMP_KEXEC=y > following static functions are called in kdump path. > - kmsg_dump_kexec(): This is based on kmsg_dump() and just removed spinlock and a function call chain from it. > - do_kmsg_dump_kexec(): This is based on pstore_dump() and just removed mutex lock from it. > > Some people who are not familiar with kexec may add function calls getting spin_lock/mutex_lock in kexec path. > These function calls causes failure of kexec. > So, I suggest replace a call chain with static function calls so that we can keep reliability of kexec. > > - Add efi_kmsg_dump_kexec() which outputs kernel messages into NVRAM with EFI. > This is called by do_kmsg_dump_kexec() statically. > By applying to Matthew Garret's patch below, its kernel messages in NVRAM are visible through /dev/pstore. > > https://lkml.org/lkml/2011/6/7/437 > https://lkml.org/lkml/2011/6/7/438 > https://lkml.org/lkml/2011/6/7/439 > https://lkml.org/lkml/2011/6/7/440 > - So with this patch you have removed all other subscribers of kmsg_dump() and only calling your case of efi storage (ramoops, mtdoops?) Thanks Vivek From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx1.redhat.com ([209.132.183.28]) by canuck.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1QgOdQ-00053j-CJ for kexec@lists.infradead.org; Mon, 11 Jul 2011 22:07:25 +0000 Date: Mon, 11 Jul 2011 18:07:09 -0400 From: Vivek Goyal Subject: Re: [RFC][PATCH] Replace a function call chain of kmsg_dump(KMSG_DUMP_KEXEC) with static function calls Message-ID: <20110711220709.GG30674@redhat.com> References: <5C4C569E8A4B9B42A84A977CF070A35B2C17AAE59A@USINDEVS01.corp.hds.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <5C4C569E8A4B9B42A84A977CF070A35B2C17AAE59A@USINDEVS01.corp.hds.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-bounces@lists.infradead.org Errors-To: kexec-bounces+dwmw2=twosheds.infradead.org@lists.infradead.org To: Seiji Aguchi Cc: "dle-develop@lists.sourceforge.net" , "tony.luck@intel.com" , "hpa@zytor.com" , "kexec@lists.infradead.org" , "linux-kernel@vger.kernel.org" , Satoru Moriya , "Eric W. Biederman" , KOSAKI Motohiro , Jarod Wilson , Americo Wang , Andrew Morton , Matthew Garrett T24gTW9uLCBKdWwgMTEsIDIwMTEgYXQgMTE6NDc6MTdBTSAtMDQwMCwgU2VpamkgQWd1Y2hpIHdy b3RlOgo+IEhpLAo+IAo+IFtCYWNrZ3JvdW5kXQo+ICAtIFJlcXVpcmVtZW50IGluIGVudGVycHJp c2UgYXJlYQo+ICBGcm9tIG91ciBzdXBwb3J0IHNlcnZpY2UgZXhwZXJpZW5jZSwgd2UgYWx3YXlz IG5lZWQgdG8gZGV0ZWN0IHJvb3QgY2F1c2VzIG9mIE9TIHBhbmljLgo+ICBCZWNhdXNlIGN1c3Rv bWVycyBpbiBlbnRlcnByaXNlIGFyZWEgbmV2ZXIgZm9yZ2l2ZSB1cyBpZiBrZHVtcCBmYWlscyBh bmQgIHdlIGNhbid0IGRldGVjdAo+ICByb290IGNhdXNlcyBvZiBwYW5pYyBkdWUgdG8gbGFjayBv ZiBtYXRlcmlhbHMgZm9yIGludmVzdGlnYXRpb24uCj4gCj4gIFRoYXQgaXMgd2h5IEkgd291bGQg bGlrZSB0byBhZGQga21zZ19kdW1wKCkgaW4ga2R1bXAgcGF0aC4KPiAKPiBbVXBzdHJlYW0gc3Rh dHVzXQo+ICAgIERpc2N1c3Npb24gYWJvdXQga21zZ19kdW1wKCkgaW4ga2R1bXAgcGF0aDogCj4g ICAgIC0gVml2ZWsgYW5kIEVyaWMgYXJlIHdvcnJpZWQgYWJvdXQgcmVsaWFiaWxpdHkgb2YgZXhp c3Rpbmcga21zZ19kdW1wKCkuCj4gICAgIC0gRXNwZWNpYWxseSwgVml2ZWsgd291bGQgbGlrZSB0 byByZW1vdmUgYSBSQ1UgIGZ1bmN0aW9uIGNhbGwgY2hhaW4gaW4ga2R1bXAgcGF0aAo+IOOAgOOA gOOAgCB3aGljaCBrZXJuZWwgbW9kdWxlcyBjYW4gcmVnaXN0ZXIgdGhlaXIgZnVuY3Rpb24gY2Fs bHMgZnJlZWx5LiAKPiAKPiAgICBEZXZlbG9wbWVudCBvZiBhIGZlYXR1cmUgY2FwdHVyaW5nIE9v cHM6Cj4gICAgIC0gUHN0b3JlIGhhcyBhbHJlYWR5IGluY29ycG9yYXRlZCBpbiB1cHN0cmVhbSBr ZXJuZWwuCj4gIAo+ICAgICAtIE1hdHRoZXcgR2FycmV0dCBpcyBkZXZlbG9waW5nIGVmaXZhcnMg ZHJpdmVyLCBhIGZlYXR1cmUgY2FwdHVyaW5nIE9vcHMgdmlhIEVGSSAKPiAgICAgICB0aHJvdWdo IHBzdG9yZSBpbnRlcmZhY2UuIAo+IAo+ICAgICAgIGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDEx LzYvNy80MzcKPiAgICAgICBodHRwczovL2xrbWwub3JnL2xrbWwvMjAxMS82LzcvNDM4Cj4gICAg ICAgaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMTEvNi83LzQzOQo+ICAgICAgIGh0dHBzOi8vbGtt bC5vcmcvbGttbC8yMDExLzYvNy80NDAKPiAKPiAgICAgLSBIb3dldmVyLCB0aGVzZSBmZWF0dXJl cyBtYXkgbm90IHdvcmsgaW4ga2R1bXAgcGF0aCBiZWNhdXNlCj4gICAgICAgdGhlcmUgYXJlIHNw aW5fbG9jay9tdXRleF9sb2NrIGluIHBzdG9yZV9kdW1wKCkvZWZpX3BzdG9yZV93cml0ZSgpLgo+ IOOAgOOAgOOAgCBUaGVzZSBsb2NrcyBtYXkgY2F1c2UgZGVhZCBsb2NrIGFuZCBrZHVtcCBtYXkg ZmFpbCBhcyB3ZWxsLgoKSSB0aGluayB0aGVuIHJpZ2h0IHNvbHV0aW9uIGlzIHRvIGhhcmRlbiBw c3RvcmUoKSB0byBiZSBhYmxlIHRvIGNhbGxlZApmcm9tIGNyYXNoZWQga2VybmVsIGNvbnRleHQg d2hlcmUgaW50ZXJydXB0cyB3aWxsIG5vdCBiZSB3b3JraW5nLCBhbGwKb3RoZXIgY3B1cyBhcmUg bm90IHJ1bm5pbmcgYW5kIG9uZSBjYW4gYWZmb3JkIHRvIHJlbHkgb24gdGFraW5nIGFueQpsb2Nr cy4KCkJ5cGFzc2luZyB0aGF0IGp1c3QgdG8gbWFrZSBzdXJlIGNhc2Ugb2YgZWZpIHdvcmsgaXMg bm90IGdvaW5nIHRvIGhlbHAuCgo+IAo+IFtCdWlsZCBTdGF0dXNdCj4gICBCdWlsdCB0aGlzIHBh dGNoIG9uIDMuMC1yYzYgaW4geDg2XzY0Lgo+IAo+IFtQYXRjaCBEZXNjcmlwdGlvbl0KPiAKPiAg Rm9yIG1lZXRpbmcgRXJpYy9WaXZlaydzIHJlcXVpcmVtZW50cyBhbmQgc29sdmluZyBpc3N1ZXMg b2YgcHN0b3JlL2VmaXZhcnMgZHJpdmVyLCAgSSBwcm9wb3NlIGEgZm9sbG93aW5nIHBhdGNoLgo+ IAo+ICAgICAtIFJlbW92ZSBrbXNnX2R1bXAoS01TR19EVU1QX0tFWEVDKSBmcm9tIGNyYXNoX2tl eGVjKCkKPiAgICAgLSBBZGQga21zZ19kdW1wX2tleGVjKCkgdG8gY3Jhc2hfa2V4ZWMoKQo+ICAg ICAgICAga21zZ19kdW1wX2tleGVjKCkgbW92ZWQgYmVoaW5kIG1hY2hpbmVfY3Jhc2hfc2h1dGRv d24oKSBzbyB0aGF0Cj4gICAgICAgICB3ZSBjYW4gb3V0cHV0IGtlcm5lbCBtZXNzYWdlcyB3aXRo b3V0IGdldHRpbmcgYW55IGxvY2tzLgoKU28geW91IGFyZSBpbnRyb2R1Y2luZyB0d28gdmFyaWFu dHMgb2Yga21zZyBkdW1wIG5vdz8gT25lIGlzIGttc2dfZHVtcCgpCmFuZCBvdGhlciBpcyBrbXNn X2R1bXBfa2V4ZWMoKT8gV2h5IG5vdCBqdXN0IGdldCByaWQgb2Yga21zZ19kdW1wKCkgZm9yCm5v biBwYW5pYyBjYXNlIGFuZCBzaW1wbHkgYWx3YXlzIGNhbGwgaW4gY3Jhc2hlZCBrZXJuZWwgY2Fz ZT8KCj4gCj4gICAgIC0gSW50cm9kdWNlIENPTkZJR19LTVNHX0RVTVBfS0VYRUMKPiAgICAgICAg IC0gQ09ORklHX0tNU0dfRFVNUF9LRVhFQyBkZXBlbmRzIG9uIENPTkZJR19QUklOVEsgd2hpY2gg aXMgcmVxdWlyZWQgZm9yIGttc2dfZHVtcGVyLgo+IAo+ICAgICAgICAgLSBDT05GSUdfS01TR19E VU1QX0tFWEVDPW4gKGRlZmF1bHQpCj4gICAgICAgICAgIEtlcm5lbCBtZXNzYWdlIGxvZ2dpbmcg ZmVhdHVyZSBkb2Vzbid0IHdvcmsgaW4ga2R1bXAgcGF0aC4KPiAKPiAgICAgICAgIC0gQ09ORklH X0tNU0dfRFVNUF9LRVhFQz15IAo+ICAgICAgICAgICBmb2xsb3dpbmcgc3RhdGljIGZ1bmN0aW9u cyBhcmUgY2FsbGVkIGluIGtkdW1wIHBhdGguCj4gICAgICAgICAgIC0ga21zZ19kdW1wX2tleGVj KCk6IFRoaXMgaXMgYmFzZWQgb24ga21zZ19kdW1wKCkgYW5kIGp1c3QgcmVtb3ZlZCBzcGlubG9j ayBhbmQgYSBmdW5jdGlvbiBjYWxsIGNoYWluIGZyb20gaXQuCj4gICAgICAgICAgIC0gZG9fa21z Z19kdW1wX2tleGVjKCk6IFRoaXMgaXMgYmFzZWQgb24gcHN0b3JlX2R1bXAoKSBhbmQganVzdCBy ZW1vdmVkIG11dGV4IGxvY2sgZnJvbSBpdC4KPiAgICAKPiAgICAgICAgIFNvbWUgcGVvcGxlIHdo byBhcmUgbm90IGZhbWlsaWFyIHdpdGgga2V4ZWMgbWF5IGFkZCBmdW5jdGlvbiBjYWxscyBnZXR0 aW5nIHNwaW5fbG9jay9tdXRleF9sb2NrIGluIGtleGVjIHBhdGguCj4gICAgICAgICBUaGVzZSBm dW5jdGlvbiBjYWxscyBjYXVzZXMgZmFpbHVyZSBvZiBrZXhlYy4KPiAgICAgICAgIFNvLCBJIHN1 Z2dlc3QgcmVwbGFjZSBhIGNhbGwgY2hhaW4gd2l0aCBzdGF0aWMgZnVuY3Rpb24gY2FsbHMgc28g dGhhdCB3ZSBjYW4ga2VlcCByZWxpYWJpbGl0eSBvZiBrZXhlYy4KPiAgCj4gICAgICAtIEFkZCBl Zmlfa21zZ19kdW1wX2tleGVjKCkgd2hpY2ggb3V0cHV0cyBrZXJuZWwgbWVzc2FnZXMgaW50byBO VlJBTSB3aXRoIEVGSS4KPiAgICAgICAgVGhpcyBpcyBjYWxsZWQgYnkgZG9fa21zZ19kdW1wX2tl eGVjKCkgc3RhdGljYWxseS4KPiAgICAgICAgQnkgYXBwbHlpbmcgdG8gTWF0dGhldyBHYXJyZXQn cyBwYXRjaCBiZWxvdywgaXRzIGtlcm5lbCBtZXNzYWdlcyBpbiBOVlJBTSBhcmUgdmlzaWJsZSB0 aHJvdWdoIC9kZXYvcHN0b3JlLgo+IAo+ICAgICAgICAgaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIw MTEvNi83LzQzNwo+ICAgICAgICAgaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMTEvNi83LzQzOAo+ ICAgICAgICAgaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMTEvNi83LzQzOQo+ICAgICAgICAgaHR0 cHM6Ly9sa21sLm9yZy9sa21sLzIwMTEvNi83LzQ0MAo+IAoKLSBTbyB3aXRoIHRoaXMgcGF0Y2gg eW91IGhhdmUgcmVtb3ZlZCBhbGwgb3RoZXIgc3Vic2NyaWJlcnMgb2Yga21zZ19kdW1wKCkKICBh bmQgb25seSBjYWxsaW5nIHlvdXIgY2FzZSBvZiBlZmkgc3RvcmFnZSAocmFtb29wcywgbXRkb29w cz8pCiAKVGhhbmtzClZpdmVrCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwprZXhlYyBtYWlsaW5nIGxpc3QKa2V4ZWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2tleGVjCg==