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.85_2 #1 (Red Hat Linux)) id 1bMs5b-0003B0-Fu for kexec@lists.infradead.org; Tue, 12 Jul 2016 07:26:44 +0000 Subject: Re: [V3 PATCH 1/2] x86/panic: Replace smp_send_stop() with kdump friendly version References: <20160705113323.5864.66834.stgit@softrs> <20160705113325.5864.74840.stgit@softrs> <57845FFC.6050308@redhat.com> <04EAB7311EE43145B2D3536183D1A84454C6F9CB@GSjpTKYDCembx31.service.hitachi.net> <578494D4.2020505@redhat.com> <04EAB7311EE43145B2D3536183D1A84454C707D6@GSjpTKYDCembx31.service.hitachi.net> From: Xunlei Pang Message-ID: <57849B8E.2070007@redhat.com> Date: Tue, 12 Jul 2016 15:26:06 +0800 MIME-Version: 1.0 In-Reply-To: <04EAB7311EE43145B2D3536183D1A84454C707D6@GSjpTKYDCembx31.service.hitachi.net> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: xlpang@redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: =?UTF-8?B?5rKz5ZCI6Iux5a6PIC8gS0FXQUnvvIxISURFSElSTw==?= , "'xlpang@redhat.com'" , Andrew Morton , Dave Young , "Eric W. Biederman" , Baoquan He Cc: Michal Hocko , Toshi Kani , "Peter Zijlstra (Intel)" , Minfei Huang , "H. Peter Anvin" , Daniel Walker , Ingo Molnar , Takao Indoh , "x86@kernel.org" , "Lee, Chun-Yi" , Borislav Petkov , Vivek Goyal , Petr Mladek , Josh Poimboeuf , Thomas Gleixner , Ingo Molnar , "kexec@lists.infradead.org" , "linux-kernel@vger.kernel.org" , HATAYAMA Daisuke , Masami Hiramatsu , Tejun Heo , Vitaly Kuznetsov T24gMjAxNi8wNy8xMiBhdCAxNToxMiwg5rKz5ZCI6Iux5a6PIC8gS0FXQUnvvIxISURFSElSTyB3 cm90ZToKPj4gRnJvbTogbGludXgta2VybmVsLW93bmVyQHZnZXIua2VybmVsLm9yZyBbbWFpbHRv OmxpbnV4LWtlcm5lbC1vd25lckB2Z2VyLmtlcm5lbC5vcmddIE9uIEJlaGFsZiBPZiBYdW5sZWkg UGFuZwo+PiBTZW50OiBUdWVzZGF5LCBKdWx5IDEyLCAyMDE2IDM6NTcgUE0KPj4gT24gMjAxNi8w Ny8xMiBhdCAxMTo1Niwg5rKz5ZCI6Iux5a6PIC8gS0FXQUnvvIxISURFSElSTyB3cm90ZToKPj4+ IEhpIFh1bmxlaSwKPj4+Cj4+PiBUaGFua3MgZm9yIHRoZSByZXZpZXcuCj4+Pgo+Pj4+IEZyb206 IFh1bmxlaSBQYW5nIFttYWlsdG86eHBhbmdAcmVkaGF0LmNvbV0KPj4+PiBTZW50OiBUdWVzZGF5 LCBKdWx5IDEyLCAyMDE2IDEyOjEyIFBNCj4+Pj4gT24gMjAxNi8wNy8wNSBhdCAxOTozMywgSGlk ZWhpcm8gS2F3YWkgd3JvdGU6Cj4+Pj4+IFRoaXMgcGF0Y2ggZml4ZXMgb25lIG9mIHRoZSBwcm9i bGVtcyByZXBvcnRlZCBieSBEYW5pZWwgV2Fsa2VyCj4+Pj4+IChodHRwczovL2xrbWwub3JnL2xr bWwvMjAxNS82LzI0LzQ0KS4KPj4+Pj4KPj4+Pj4gSWYgY3Jhc2hfa2V4ZWNfcG9zdF9ub3RpZmll cnMgYm9vdCBvcHRpb24gaXMgc3BlY2lmaWVkLCBvdGhlciBDUFVzCj4+Pj4+IGFyZSBzdG9wcGVk IGJ5IHNtcF9zZW5kX3N0b3AoKSBpbnN0ZWFkIG9mIG1hY2hpbmVfY3Jhc2hfc2h1dGRvd24oKQo+ Pj4+PiBpbiBjcmFzaF9rZXhlYygpIHBhdGguICBUaGlzIGJlaGF2aW9yIGNoYW5nZSBsZWFkcyB0 d28gcHJvYmxlbXMuCj4+Pj4+Cj4+Pj4+ICBQcm9ibGVtIDE6Cj4+Pj4+ICBvY3Rlb25fZ2VuZXJp Y19zaHV0ZG93bigpIGZvciBNSVBTIE9DVEVPTiBhc3N1bWVzIHRoYXQgb3RoZXIgQ1BVcyBhcmUK Pj4+Pj4gIHN0aWxsIG9ubGluZSBhbmQgdHJ5IHRvIHN0b3AgdGhlaXIgd2F0Y2hkb2cgdGltZXIu ICBJZgo+Pj4+PiAgc21wX3NlbmRfc3RvcCgpIGlzIGNhbGxlZCBiZWZvcmUgb2N0ZW9uX2dlbmVy aWNfc2h1dGRvd24oKSwgc3RvcHBpbmcKPj4+Pj4gIHdhdGNoZG9nIHRpbWVyIHdpbGwgZmFpbCBi ZWNhdXNlIG90aGVyIENQVXMgaGF2ZSBiZWVuIG9mZmxpbmVkIGJ5Cj4+Pj4+ICBzbXBfc2VuZF9z dG9wKCkuCj4+Pj4+Cj4+Pj4+ICAgIHBhbmljKCkKPj4+Pj4gICAgICBpZiBjcmFzaF9rZXhlY19w b3N0X25vdGlmaWVycyA9PSAxCj4+Pj4+ICAgICAgICBzbXBfc2VuZF9zdG9wKCkKPj4+Pj4gICAg ICAgIGF0b21pY19ub3RpZmllcl9jYWxsX2NoYWluKCkKPj4+Pj4gICAgICAgIGttc2dfZHVtcCgp Cj4+Pj4+ICAgICAgY3Jhc2hfa2V4ZWMoKQo+Pj4+PiAgICAgICAgbWFjaGluZV9jcmFzaF9zaHV0 ZG93bigpCj4+Pj4+ICAgICAgICAgIG9jdGVvbl9nZW5lcmljX3NodXRkb3duKCkgLy8gc2h1dGRv d24gd2F0Y2hkb2cgZm9yIE9OTElORSBDUFVzCj4+Pj4+Cj4+Pj4+ICBQcm9ibGVtIDI6Cj4+Pj4+ ICBNb3N0IG9mIGFyY2hpdGVjdHVyZXMgc3RvcCBvdGhlciBDUFVzIGluIG1hY2hpbmVfY3Jhc2hf c2h1dGRvd24oKQo+Pj4+PiAgcGF0aCwgYW5kIHRoZXkgYWxzbyBkbyBzb21ldGhpbmcgbmVlZGVk IGZvciBrZHVtcC4gIEZvciBleGFtcGxlLAo+Pj4+PiAgdGhleSBzYXZlIHJlZ2lzdGVycywgZGlz YWJsZSB2aXJ0dWFsaXphdGlvbiBleHRlbnNpb25zLCBhbmQgc28gb24uCj4+Pj4+ICBIb3dldmVy LCBpZiBzbXBfc2VuZF9zdG9wKCkgc3RvcHMgb3RoZXIgQ1BVcyBiZWZvcmUKPj4+Pj4gIG1hY2hp bmVfY3Jhc2hfc2h1dGRvd24oKSwgd2UgbWlzcyB0aG9zZSBvcGVyYXRpb25zLgo+Pj4+Pgo+Pj4+ PiBIb3cgZG8gd2UgZml4IHRoZXNlIHByb2JsZW1zPyAgSW4gdGhlIGZpcnN0IHBsYWNlLCB3ZSBz aG91bGQgc3RvcAo+Pj4+PiBvdGhlciBDUFVzIGFzIHNvb24gYXMgcG9zc2libGUgd2hlbiBwYW5p YygpIHdhcyBjYWxsZWQsIG90aGVyd2lzZQo+Pj4+PiBvdGhlciBDUFVzIG1heSB3aXBlIG91dCBh IGNsdWUgdG8gdGhlIGNhdXNlIG9mIHRoZSBmYWlsdXJlLiAgU28sIHdlCj4+Pj4+IHJlcGxhY2Ug c21wX3NlbmRfc3RvcCgpIHdpdGggbW9yZSBzdWl0YWJsZSBvbmUgZm9yIGtkdW1wLgo+Pj4+Pgo+ Pj4+PiBUaGlzIHBhdGNoIHNvbHZlcyBQcm9ibGVtIDIgYnkgcmVwbGFjaW5nIHNtcF9zZW5kX3N0 b3AoKSBpbiBwYW5pYygpCj4+Pj4+IHdpdGggcGFuaWNfc21wX3NlbmRfc3RvcCgpLiAgVGhpcyBp cyBhIHdlYWsgZnVuY3Rpb24gd2hpY2ggY2FsbHMKPj4+Pj4gc21wX3NlbmRfc3RvcCgpLCBhbmQg YXJjaGl0ZWN0dXJlIGRlcGVuZGVudCBjb2RlIG1heSBvdmVycmlkZSB0aGlzCj4+Pj4+IHdpdGgg YXBwcm9wcmlhdGUgb25lLiAgVGhpcyBwYXRjaCBvbmx5IHByb3ZpZGVzIHg4Ni1zcGVjaWZpYyB2 ZXJzaW9uLgo+Pj4+Pgo+Pj4+PiBDaGFuZ2VzIGluIFYzOgo+Pj4+PiAtIFJldmlzZSBjb21tZW50 cywgZGVzY3JpcHRpb24sIGFuZCBzeW1ib2wgbmFtZXMKPj4+Pj4KPj4+Pj4gQ2hhbmdlcyBpbiBW MjoKPj4+Pj4gLSBSZXBsYWNlIHNtcF9zZW5kX3N0b3AoKSBjYWxsIHdpdGggY3Jhc2hfa2V4ZWMg dmVyc2lvbiB3aGljaAo+Pj4+PiAgIHNhdmVzIGNwdSBzdGF0ZXMgYW5kIGNsZWFucyB1cCBWTVgv U1ZNCj4+Pj4+IC0gRHJvcCBhIGZpeCBmb3IgUHJvYmxlbSAxIGF0IHRoaXMgbW9tZW50Cj4+Pj4+ Cj4+Pj4+IFJlcG9ydGVkLWJ5OiBEYW5pZWwgV2Fsa2VyIDxkd2Fsa2VyQGZpZm85OS5jb20+Cj4+ Pj4+IEZpeGVzOiBmMDZlNTE1M2Y0YWUgKGtlcm5lbC9wYW5pYy5jOiBhZGQgImNyYXNoX2tleGVj X3Bvc3Rfbm90aWZpZXJzIiBvcHRpb24pCj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEhpZGVoaXJvIEth d2FpIDxoaWRlaGlyby5rYXdhaS5lekBoaXRhY2hpLmNvbT4KPj4+Pj4gQ2M6IERhdmUgWW91bmcg PGR5b3VuZ0ByZWRoYXQuY29tPgo+Pj4+PiBDYzogQmFvcXVhbiBIZSA8YmhlQHJlZGhhdC5jb20+ Cj4+Pj4+IENjOiBWaXZlayBHb3lhbCA8dmdveWFsQHJlZGhhdC5jb20+Cj4+Pj4+IENjOiBFcmlj IEJpZWRlcm1hbiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgo+Pj4+PiBDYzogTWFzYW1pIEhpcmFt YXRzdSA8bWhpcmFtYXRAa2VybmVsLm9yZz4KPj4+Pj4gQ2M6IFRob21hcyBHbGVpeG5lciA8dGds eEBsaW51dHJvbml4LmRlPgo+Pj4+PiBDYzogSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+ Cj4+Pj4+IENjOiAiSC4gUGV0ZXIgQW52aW4iIDxocGFAenl0b3IuY29tPgo+Pj4+PiBDYzogQm9y aXNsYXYgUGV0a292IDxicEBzdXNlLmRlPgo+Pj4+PiBDYzogVG9zaGkgS2FuaSA8dG9zaGkua2Fu aUBocGUuY29tPgo+Pj4+PiBDYzogIlBldGVyIFppamxzdHJhIChJbnRlbCkiIDxwZXRlcnpAaW5m cmFkZWFkLm9yZz4KPj4+Pj4gQ2M6IFRha2FvIEluZG9oIDxpbmRvdS50YWthb0BqcC5mdWppdHN1 LmNvbT4KPj4+Pj4gQ2M6ICJMZWUsIENodW4tWWkiIDxqb2V5bGkua2VybmVsQGdtYWlsLmNvbT4K Pj4+Pj4gQ2M6IE1pbmZlaSBIdWFuZyA8bW5maHVhbmdAZ21haWwuY29tPgo+Pj4+PiBDYzogQW5k cmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KPj4+Pj4gQ2M6IE1pY2hhbCBI b2NrbyA8bWhvY2tvQHN1c2UuY29tPgo+Pj4+PiBDYzogVml0YWx5IEt1em5ldHNvdiA8dmt1em5l dHNAcmVkaGF0LmNvbT4KPj4+Pj4gQ2M6IFBldHIgTWxhZGVrIDxwbWxhZGVrQHN1c2UuY29tPgo+ Pj4+PiBDYzogVGVqdW4gSGVvIDx0akBrZXJuZWwub3JnPgo+Pj4+PiBDYzogSm9zaCBQb2ltYm9l dWYgPGpwb2ltYm9lQHJlZGhhdC5jb20+Cj4+Pj4+IC0tLQo+Pj4+PiAgYXJjaC94ODYva2VybmVs L2NyYXNoLmMgfCAgIDE0ICsrKysrKysrKystLS0tCj4+Pj4+ICBrZXJuZWwvcGFuaWMuYyAgICAg ICAgICB8ICAgNDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+ Pj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkK Pj4+Pj4KPj4+Pj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcmFzaC5jIGIvYXJjaC94 ODYva2VybmVsL2NyYXNoLmMKPj4+Pj4gaW5kZXggOWVmOTc4ZC4uMzMwNTQzMyAxMDA2NDQKPj4+ Pj4gLS0tIGEvYXJjaC94ODYva2VybmVsL2NyYXNoLmMKPj4+Pj4gKysrIGIvYXJjaC94ODYva2Vy bmVsL2NyYXNoLmMKPj4+Pj4gQEAgLTEzMywxNSArMTMzLDIxIEBAIHN0YXRpYyB2b2lkIGtkdW1w X25taV9jYWxsYmFjayhpbnQgY3B1LCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKPj4+Pj4gIAlkaXNh YmxlX2xvY2FsX0FQSUMoKTsKPj4+Pj4gIH0KPj4+Pj4KPj4+Pj4gLXN0YXRpYyB2b2lkIGtkdW1w X25taV9zaG9vdGRvd25fY3B1cyh2b2lkKQo+Pj4+PiArLyogT3ZlcnJpZGUgdGhlIHdlYWsgZnVu Y3Rpb24gaW4ga2VybmVsL3BhbmljLmMgKi8KPj4+Pj4gK3ZvaWQgcGFuaWNfc21wX3NlbmRfc3Rv cCh2b2lkKQo+Pj4+PiAgewo+Pj4+PiAtCW5taV9zaG9vdGRvd25fY3B1cyhrZHVtcF9ubWlfY2Fs bGJhY2spOwo+Pj4+PiArCXN0YXRpYyBpbnQgY3B1c19zdG9wcGVkOwo+Pj4+IFNob3VsZCBiZSBh dG9taWNfdCB0eXBlPwo+Pj4gcGFuaWNfc21wX3NlbmRfc3RvcCgpIGNhbiBiZSBjYWxsZWQgYnkg b25seSBvbmUgcGFuaWNraW5nIENQVQo+Pj4gKGJ1dCBjYW4gYmUgY2FsbGVkIHR3aWNlKS4gSXQg aXMgc3VmZmljaWVudCB0byBiZSBub3JtYWwgdmFyaWFibGUuCj4+IFRoZXJlIGFyZSBvdGhlciBj YWxsIHNpdGVzIG9mIF9fY3Jhc2hfa2V4ZWMoKSBmb3Igb29wcyBjYXNlcywgd2hpY2ggY2FuCj4+ IGNhbGwgcGFuaWNfc21wX3NlbmRfc3RvcCgpIGNvbmN1cnJlbnRseSBvbiBhIGRpZmZlcmVudCBj cHUuCj4gSW4gb29wcyBjYXNlcywgY3Jhc2hfa2V4ZWMoKSBpcyBjYWxsZWQgZmlyc3QsIHRoZW4g X19jcmFzaF9rZXhlYygpIGlzCj4gY2FsbGVkLiAgY3Jhc2hfa2V4ZWMoKSBleGNsdWRlcyBjb25j dXJyZW50IGV4ZWN1dGlvbiBvZiBwYW5pYygpIGFuZAo+IGNyYXNoX2tleGVjKCkgdmlhIHBhbmlj X2NwdSwgc28gcGFuaWNfc21wX3NlbmRfc3RvcCgpIHNob3VsZG4ndCBiZQo+IGNhbGxlZCBjb25j dXJyZW50bHkuCgpSaWdodCwgdGhhdCdzIHdoeSBvb3BzIGNhbGxzIGNyYXNoX2tleGVjKCkgbm90 IF9fY3Jhc2hfa2V4ZWMoKS4KSSBoYXZlIG5vIHByb2JsZW0gb24gdGhpcy4gVGhhbmtzIQoKUmVn YXJkcywKWHVubGVpCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwprZXhlYyBtYWlsaW5nIGxpc3QKa2V4ZWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2tleGVjCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751141AbcGLH0Y (ORCPT ); Tue, 12 Jul 2016 03:26:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49228 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750717AbcGLH0X (ORCPT ); Tue, 12 Jul 2016 03:26:23 -0400 Reply-To: xlpang@redhat.com Subject: Re: [V3 PATCH 1/2] x86/panic: Replace smp_send_stop() with kdump friendly version References: <20160705113323.5864.66834.stgit@softrs> <20160705113325.5864.74840.stgit@softrs> <57845FFC.6050308@redhat.com> <04EAB7311EE43145B2D3536183D1A84454C6F9CB@GSjpTKYDCembx31.service.hitachi.net> <578494D4.2020505@redhat.com> <04EAB7311EE43145B2D3536183D1A84454C707D6@GSjpTKYDCembx31.service.hitachi.net> To: =?UTF-8?B?5rKz5ZCI6Iux5a6PIC8gS0FXQUnvvIxISURFSElSTw==?= , "'xlpang@redhat.com'" , Andrew Morton , Dave Young , "Eric W. Biederman" , Baoquan He Cc: Michal Hocko , Toshi Kani , "Peter Zijlstra (Intel)" , Minfei Huang , "H. Peter Anvin" , Daniel Walker , Ingo Molnar , Takao Indoh , "x86@kernel.org" , "Lee, Chun-Yi" , Borislav Petkov , Vivek Goyal , Petr Mladek , Josh Poimboeuf , Thomas Gleixner , Ingo Molnar , "kexec@lists.infradead.org" , "linux-kernel@vger.kernel.org" , HATAYAMA Daisuke , Masami Hiramatsu , Tejun Heo , Vitaly Kuznetsov From: Xunlei Pang Message-ID: <57849B8E.2070007@redhat.com> Date: Tue, 12 Jul 2016 15:26:06 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <04EAB7311EE43145B2D3536183D1A84454C707D6@GSjpTKYDCembx31.service.hitachi.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Tue, 12 Jul 2016 07:26:22 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2016/07/12 at 15:12, 河合英宏 / KAWAI,HIDEHIRO wrote: >> From: linux-kernel-owner@vger.kernel.org [mailto:linux-kernel-owner@vger.kernel.org] On Behalf Of Xunlei Pang >> Sent: Tuesday, July 12, 2016 3:57 PM >> On 2016/07/12 at 11:56, 河合英宏 / KAWAI,HIDEHIRO wrote: >>> Hi Xunlei, >>> >>> Thanks for the review. >>> >>>> From: Xunlei Pang [mailto:xpang@redhat.com] >>>> Sent: Tuesday, July 12, 2016 12:12 PM >>>> On 2016/07/05 at 19:33, Hidehiro Kawai wrote: >>>>> This patch fixes one of the problems reported by Daniel Walker >>>>> (https://lkml.org/lkml/2015/6/24/44). >>>>> >>>>> If crash_kexec_post_notifiers boot option is specified, other CPUs >>>>> are stopped by smp_send_stop() instead of machine_crash_shutdown() >>>>> in crash_kexec() path. This behavior change leads two problems. >>>>> >>>>> Problem 1: >>>>> octeon_generic_shutdown() for MIPS OCTEON assumes that other CPUs are >>>>> still online and try to stop their watchdog timer. If >>>>> smp_send_stop() is called before octeon_generic_shutdown(), stopping >>>>> watchdog timer will fail because other CPUs have been offlined by >>>>> smp_send_stop(). >>>>> >>>>> panic() >>>>> if crash_kexec_post_notifiers == 1 >>>>> smp_send_stop() >>>>> atomic_notifier_call_chain() >>>>> kmsg_dump() >>>>> crash_kexec() >>>>> machine_crash_shutdown() >>>>> octeon_generic_shutdown() // shutdown watchdog for ONLINE CPUs >>>>> >>>>> Problem 2: >>>>> Most of architectures stop other CPUs in machine_crash_shutdown() >>>>> path, and they also do something needed for kdump. For example, >>>>> they save registers, disable virtualization extensions, and so on. >>>>> However, if smp_send_stop() stops other CPUs before >>>>> machine_crash_shutdown(), we miss those operations. >>>>> >>>>> How do we fix these problems? In the first place, we should stop >>>>> other CPUs as soon as possible when panic() was called, otherwise >>>>> other CPUs may wipe out a clue to the cause of the failure. So, we >>>>> replace smp_send_stop() with more suitable one for kdump. >>>>> >>>>> This patch solves Problem 2 by replacing smp_send_stop() in panic() >>>>> with panic_smp_send_stop(). This is a weak function which calls >>>>> smp_send_stop(), and architecture dependent code may override this >>>>> with appropriate one. This patch only provides x86-specific version. >>>>> >>>>> Changes in V3: >>>>> - Revise comments, description, and symbol names >>>>> >>>>> Changes in V2: >>>>> - Replace smp_send_stop() call with crash_kexec version which >>>>> saves cpu states and cleans up VMX/SVM >>>>> - Drop a fix for Problem 1 at this moment >>>>> >>>>> Reported-by: Daniel Walker >>>>> Fixes: f06e5153f4ae (kernel/panic.c: add "crash_kexec_post_notifiers" option) >>>>> Signed-off-by: Hidehiro Kawai >>>>> Cc: Dave Young >>>>> Cc: Baoquan He >>>>> Cc: Vivek Goyal >>>>> Cc: Eric Biederman >>>>> Cc: Masami Hiramatsu >>>>> Cc: Thomas Gleixner >>>>> Cc: Ingo Molnar >>>>> Cc: "H. Peter Anvin" >>>>> Cc: Borislav Petkov >>>>> Cc: Toshi Kani >>>>> Cc: "Peter Zijlstra (Intel)" >>>>> Cc: Takao Indoh >>>>> Cc: "Lee, Chun-Yi" >>>>> Cc: Minfei Huang >>>>> Cc: Andrew Morton >>>>> Cc: Michal Hocko >>>>> Cc: Vitaly Kuznetsov >>>>> Cc: Petr Mladek >>>>> Cc: Tejun Heo >>>>> Cc: Josh Poimboeuf >>>>> --- >>>>> arch/x86/kernel/crash.c | 14 ++++++++++---- >>>>> kernel/panic.c | 43 ++++++++++++++++++++++++++++++++----------- >>>>> 2 files changed, 42 insertions(+), 15 deletions(-) >>>>> >>>>> diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c >>>>> index 9ef978d..3305433 100644 >>>>> --- a/arch/x86/kernel/crash.c >>>>> +++ b/arch/x86/kernel/crash.c >>>>> @@ -133,15 +133,21 @@ static void kdump_nmi_callback(int cpu, struct pt_regs *regs) >>>>> disable_local_APIC(); >>>>> } >>>>> >>>>> -static void kdump_nmi_shootdown_cpus(void) >>>>> +/* Override the weak function in kernel/panic.c */ >>>>> +void panic_smp_send_stop(void) >>>>> { >>>>> - nmi_shootdown_cpus(kdump_nmi_callback); >>>>> + static int cpus_stopped; >>>> Should be atomic_t type? >>> panic_smp_send_stop() can be called by only one panicking CPU >>> (but can be called twice). It is sufficient to be normal variable. >> There are other call sites of __crash_kexec() for oops cases, which can >> call panic_smp_send_stop() concurrently on a different cpu. > In oops cases, crash_kexec() is called first, then __crash_kexec() is > called. crash_kexec() excludes concurrent execution of panic() and > crash_kexec() via panic_cpu, so panic_smp_send_stop() shouldn't be > called concurrently. Right, that's why oops calls crash_kexec() not __crash_kexec(). I have no problem on this. Thanks! Regards, Xunlei