Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1281701 > unrolled thread
| Started by | 河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com> |
|---|---|
| First post | 2015-12-02 13:00 +0100 |
| Last post | 2015-12-03 13:30 +0100 |
| Articles | 6 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
RE: [V5 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly 河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com> - 2015-12-02 13:00 +0100
Re: [V5 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly Borislav Petkov <bp@alien8.de> - 2015-12-02 16:50 +0100
RE: [V5 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly 河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com> - 2015-12-03 03:10 +0100
Re: [V5 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly Borislav Petkov <bp@alien8.de> - 2015-12-03 10:40 +0100
RE: [V5 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly 河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com> - 2015-12-03 12:30 +0100
Re: [V5 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly Borislav Petkov <bp@alien8.de> - 2015-12-03 13:30 +0100
| From | 河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com> |
|---|---|
| Date | 2015-12-02 13:00 +0100 |
| Subject | RE: [V5 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly |
| Message-ID | <qBeeK-6GK-11@gated-at.bofh.it> |
SGVsbG8gQm9yaXNsYXYsDQoNClNvcnJ5LCBJIGhhdmVuJ3QgcmVwbGllZCB0byB0aGlzIG1haWwg eWV0Lg0KDQo+IE9uIEZyaSwgTm92IDIwLCAyMDE1IGF0IDA2OjM2OjQ4UE0gKzA5MDAsIEhpZGVo aXJvIEthd2FpIHdyb3RlOg0KLi4uDQo+ID4gK3ZvaWQgY3Jhc2hfa2V4ZWMoc3RydWN0IHB0X3Jl Z3MgKnJlZ3MpDQo+ID4gK3sNCj4gPiArCWludCBvbGRfY3B1LCB0aGlzX2NwdTsNCj4gPiArDQo+ ID4gKwkvKg0KPiA+ICsJICogT25seSBvbmUgQ1BVIGlzIGFsbG93ZWQgdG8gZXhlY3V0ZSB0aGUg Y3Jhc2hfa2V4ZWMoKSBjb2RlIGFzIHdpdGgNCj4gPiArCSAqIHBhbmljKCkuICBPdGhlcndpc2Ug cGFyYWxsZWwgY2FsbHMgb2YgcGFuaWMoKSBhbmQgY3Jhc2hfa2V4ZWMoKQ0KPiA+ICsJICogbWF5 IHN0b3AgZWFjaCBvdGhlci4gIFRvIGV4Y2x1ZGUgdGhlbSwgd2UgdXNlIHBhbmljX2NwdSBoZXJl IHRvby4NCj4gPiArCSAqLw0KPiA+ICsJdGhpc19jcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgp Ow0KPiA+ICsJb2xkX2NwdSA9IGF0b21pY19jbXB4Y2hnKCZwYW5pY19jcHUsIC0xLCB0aGlzX2Nw dSk7DQo+ID4gKwlpZiAob2xkX2NwdSA9PSAtMSkgew0KPiA+ICsJCS8qIFRoaXMgaXMgdGhlIDFz dCBDUFUgd2hpY2ggY29tZXMgaGVyZSwgc28gZ28gYWhlYWQuICovDQo+ID4gKwkJX19jcmFzaF9r ZXhlYyhyZWdzKTsNCj4gPiArDQo+ID4gKwkJLyoNCj4gPiArCQkgKiBSZXNldCBwYW5pY19jcHUg dG8gYWxsb3cgYW5vdGhlciBwYW5pYygpL2NyYXNoX2tleGVjKCkNCj4gPiArCQkgKiBjYWxsLg0K PiANCj4gU28gY2FuIHdlIG1ha2UgX19jcmFzaF9rZXhlYygpIHJldHVybiBlcnJvciB2YWx1ZXM/ DQo+IA0KPiAqIGZhaWxlZCB0byBncmFiIGtleGVjX211dGV4IC0+IHJlc2V0IHBhbmljX2NwdQ0K PiANCj4gKiBubyBrZXhlY19jcmFzaF9pbWFnZSAtPiBubyBuZWVkIHRvIHJlc2V0IGl0LCBhbGwg ZnV0dXJlIGNyYXNoX2tleGVjKCkNCj4gY2FsbHMgd29uJ3Qgd29yayBzbyBubyBuZWVkIHRvIHJ1 biBpbnRvIHRoYXQgcGF0aCBhbnltb3JlLiBIb3dldmVyLCB0aGlzIGNvdWxkDQo+IGJlIHByb2Js ZW1hdGljIGlmIHdlIHdhbnQgdGhlIG90aGVyIENQVXMgdG8gcGFuaWMuIERvIHdlIGNhcmU/DQo+ IA0KPiAqIG1hY2hpbmVfa2V4ZWMgc3VjY2Vzc2Z1bCAtPiBkb2Vzbid0IG1hdHRlcg0KDQpXZSBj YW4gZG8gc28sIGJ1dCBJIHRoaW5rIHJlc2V0dGluZyBwYW5pY19jcHUgYWx3YXlzIHdvdWxkIGJl DQpzaW1wbGVyIGFuZCBzYWZlci4NCg0KQWx0aG91Z2ggY2hlY2tpbmcga2V4ZWNfY3Jhc2hfaW1h Z2UgZWFjaCB0aW1lIGlzIHBvaW50bGVzcywgaXQNCmRvZXNuJ3QgY2F1c2UgYW55IGFjdHVhbCBw cm9ibGVtLg0KDQpSZWdhcmRzLA0KDQotLQ0KSGlkZWhpcm8gS2F3YWkNCkhpdGFjaGksIEx0ZC4g UmVzZWFyY2ggJiBEZXZlbG9wbWVudCBHcm91cA0KDQo= -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Borislav Petkov <bp@alien8.de> |
|---|---|
| Date | 2015-12-02 16:50 +0100 |
| Subject | Re: [V5 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly |
| Message-ID | <qBhPk-FC-35@gated-at.bofh.it> |
| In reply to | #1281701 |
On Wed, Dec 02, 2015 at 11:57:38AM +0000, 河合英宏 / KAWAI,HIDEHIRO wrote:
> We can do so, but I think resetting panic_cpu always would be
> simpler and safer.
Well, I think executing code needlessly *especially* at panic time is
not all that rosy either.
Besides something like this:
static bool kexec_failed;
...
if (crash_kexec_post_notifiers && !kexec_failed)
kexec_failed = __crash_kexec(NULL);
is as simple as it gets.
--
Regards/Gruss,
Boris.
ECO tip #101: Trim your mails when you reply.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | 河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com> |
|---|---|
| Date | 2015-12-03 03:10 +0100 |
| Message-ID | <qBrvk-749-9@gated-at.bofh.it> |
| In reply to | #1281927 |
PiBPbiBXZWQsIERlYyAwMiwgMjAxNSBhdCAxMTo1NzozOEFNICswMDAwLCDmsrPlkIjoi7Hlro8g LyBLQVdBSe+8jEhJREVISVJPIHdyb3RlOg0KPiA+IFdlIGNhbiBkbyBzbywgYnV0IEkgdGhpbmsg cmVzZXR0aW5nIHBhbmljX2NwdSBhbHdheXMgd291bGQgYmUNCj4gPiBzaW1wbGVyIGFuZCBzYWZl ci4NCg0KSSdsbCBzdGF0ZSBpbiBkZXRhaWwuDQoNCldoZW4gd2UgY2FsbCBjcmFzaF9rZXhlYygp IHdpdGhvdXQgZW50ZXJpbmcgcGFuaWMoKSBhbmQgcmV0dXJuIGZyb20NCml0LCBwYW5pYygpIHNo b3VsZCBiZSBjYWxsZWQgZXZlbnR1YWxseS4gIEJ1dCB0aGUgY29kZSBwYXRocyBhcmUNCmEgYml0 IGNvbXBsaWNhdGVkIGFuZCB0aGVyZSBhcmUgbWFueSBpbXBsZW1lbnRhdGlvbnMgZm9yIGVhY2gN CmFyY2hpdGVjdHVyZS4gIFNvIG9uZSBkYXksIHRoaXMgYXNzdW1wdGlvbiBtYXkgYmUgYnJva2Vu OyB0aGUgQ1BVDQpkb2Vzbid0IGNhbGwgcGFuaWMoKS4gIE9yIHRoZSBDUFUgbWF5IGZhaWwgdG8g Y2FsbCBwYW5pYygpIGJlY2F1c2UNCndlIGFyZSBhbHJlYWR5IGluIGluc2FuZSBzdGF0ZS4gIEl0 IHdvdWxkIGJlIG5lcnZvdXMsIGJ1dCBhbGxvd2luZw0KYW5vdGhlciBDUFUgdG8gcHJvY2VzcyBw YW5pYyByb3V0aW5lcyBieSByZXNldHRpbmcgcGFuaWNfY3B1DQppcyBzYWZlciBhcHByb2FjaC4N Cg0KPiBXZWxsLCBJIHRoaW5rIGV4ZWN1dGluZyBjb2RlIG5lZWRsZXNzbHkgKmVzcGVjaWFsbHkq IGF0IHBhbmljIHRpbWUgaXMNCj4gbm90IGFsbCB0aGF0IHJvc3kgZWl0aGVyLg0KPiANCj4gQmVz aWRlcyBzb21ldGhpbmcgbGlrZSB0aGlzOg0KPiANCj4gCXN0YXRpYyBib29sIGtleGVjX2ZhaWxl ZDsNCj4gDQo+IAkuLi4NCj4gDQo+ICAgICAgICAgaWYgKGNyYXNoX2tleGVjX3Bvc3Rfbm90aWZp ZXJzICYmICFrZXhlY19mYWlsZWQpDQo+IAkJa2V4ZWNfZmFpbGVkID0gX19jcmFzaF9rZXhlYyhO VUxMKTsNCj4gDQo+IGlzIGFzIHNpbXBsZSBhcyBpdCBnZXRzLg0KDQpTaW5jZSB0aGlzIGNvZGUg aXMgZXhlY3V0ZWQgb25seSBvbmNlIGR1ZSB0byBwYW5pY19jcHUsDQpJIHRoaW5rIGludHJvZHVj aW5nIHRoaXMgbG9naWMgaXMgbm90IG11Y2ggdmFsdWFibGUuDQpBbHNvLCBjdXJyZW50IGltcGxl bWVudGF0aW9uIGlzIGFscmVhZHkgcXVpdGUgc2ltcGxlOg0KDQpwYW5pYygpDQp7DQouLi4NCglf X2NyYXNoX2tleGVjKE5VTEwpIHsNCgkJaWYgKG11dGV4X3RyeWxvY2soJmtleGVjX211dGV4KSkg ew0KCQkJaWYgKGtleGVjX2NyYXNoX2ltYWdlKSB7DQoJCQkJLyogZG9uJ3QgcmV0dXJuICovDQoJ CQl9DQoJCX0NCgkJbXV0ZXhfdW5sb2NrKCZrZXhlY19tdXRleCkNCgl9DQoNCkhvdyBkbyB5b3Ug dGhpbms/DQoNClJlZ2FyZHMsDQotLQ0KSGlkZWhpcm8gS2F3YWkNCkhpdGFjaGksIEx0ZC4gUmVz ZWFyY2ggJiBEZXZlbG9wbWVudCBHcm91cA0KDQoNCg== -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Borislav Petkov <bp@alien8.de> |
|---|---|
| Date | 2015-12-03 10:40 +0100 |
| Subject | Re: [V5 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly |
| Message-ID | <qBywO-38I-23@gated-at.bofh.it> |
| In reply to | #1282646 |
On Thu, Dec 03, 2015 at 02:01:38AM +0000, 河合英宏 / KAWAI,HIDEHIRO wrote:
> > On Wed, Dec 02, 2015 at 11:57:38AM +0000, 河合英宏 / KAWAI,HIDEHIRO wrote:
> > > We can do so, but I think resetting panic_cpu always would be
> > > simpler and safer.
>
> I'll state in detail.
>
> When we call crash_kexec() without entering panic() and return from
> it, panic() should be called eventually.
Huh, the call chain is
panic->crash_kexec
Or do you mean, when crash_kexec() is not called by panic() but by some
of its other callers?
> But the code paths are a bit complicated and there are many
> implementations for each architecture. So one day, this assumption may
> be broken; the CPU doesn't call panic(). Or the CPU may fail to call
> panic() because we are already in insane state. It would be nervous,
> but allowing another CPU to process panic routines by resetting
> panic_cpu is safer approach.
My suggestion was to do this only on the panic path - not necessarily on
the others.
> Since this code is executed only once due to panic_cpu,
> I think introducing this logic is not much valuable.
> Also, current implementation is already quite simple:
>
> panic()
> {
> ...
> __crash_kexec(NULL) {
> if (mutex_trylock(&kexec_mutex)) {
> if (kexec_crash_image) {
> /* don't return */
> }
I don't mean the kexec_crash_image case - I mean the opposite one:
!kexec_crash_image. And I think I know now what you're trying to tell
me: the first CPU which hits panic, will finish panic eventually and so
it will take down the machine.
Every other CPU which happens to enter panic in between the first CPU
and the machine being taken down, doesn't matter because, well, who
cares, we're panicking already.
Am I close?
--
Regards/Gruss,
Boris.
ECO tip #101: Trim your mails when you reply.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | 河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com> |
|---|---|
| Date | 2015-12-03 12:30 +0100 |
| Message-ID | <qBAfg-4hh-21@gated-at.bofh.it> |
| In reply to | #1282849 |
PiBPbiBUaHUsIERlYyAwMywgMjAxNSBhdCAwMjowMTozOEFNICswMDAwLCDmsrPlkIjoi7Hlro8g LyBLQVdBSe+8jEhJREVISVJPIHdyb3RlOg0KPiA+ID4gT24gV2VkLCBEZWMgMDIsIDIwMTUgYXQg MTE6NTc6MzhBTSArMDAwMCwg5rKz5ZCI6Iux5a6PIC8gS0FXQUnvvIxISURFSElSTyB3cm90ZToN Cj4gPiA+ID4gV2UgY2FuIGRvIHNvLCBidXQgSSB0aGluayByZXNldHRpbmcgcGFuaWNfY3B1IGFs d2F5cyB3b3VsZCBiZQ0KPiA+ID4gPiBzaW1wbGVyIGFuZCBzYWZlci4NCj4gPg0KPiA+IEknbGwg c3RhdGUgaW4gZGV0YWlsLg0KPiA+DQo+ID4gV2hlbiB3ZSBjYWxsIGNyYXNoX2tleGVjKCkgd2l0 aG91dCBlbnRlcmluZyBwYW5pYygpIGFuZCByZXR1cm4gZnJvbQ0KPiA+IGl0LCBwYW5pYygpIHNo b3VsZCBiZSBjYWxsZWQgZXZlbnR1YWxseS4NCj4gDQo+IEh1aCwgdGhlIGNhbGwgY2hhaW4gaXMN Cj4gDQo+IHBhbmljLT5jcmFzaF9rZXhlYw0KPiANCj4gT3IgZG8geW91IG1lYW4sIHdoZW4gY3Jh c2hfa2V4ZWMoKSBpcyBub3QgY2FsbGVkIGJ5IHBhbmljKCkgYnV0IGJ5IHNvbWUNCj4gb2YgaXRz IG90aGVyIGNhbGxlcnM/DQoNCkkgd2FzIGFyZ3VpbmcgYWJvdXQgdGhlIGNhc2Ugb2Ygb29wc19l bmQgLS0+IGNyYXNoX2tleGVjDQotLT4gcmV0dXJuIGZyb20gY3Jhc2hfa2V4ZWMgYmVjYXVzZSBv ZiAha2V4ZWNfY3Jhc2hfaW1hZ2UgLS0+DQpwYW5pYy4NCg0KSW4gdGhlIGNhc2Ugb2YgcGFuaWMg LS0+IF9fY3Jhc2hfa2V4ZWMsIF9fY3Jhc2hfa2V4ZWMgaXMgY2FsbGVkDQpvbmx5IG9uY2UsIHNv IHdlIGRvbid0IG5lZWQgdG8gY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBfX2NyYXNoX2tleGVj DQphcyB5b3Ugc3VnZ2VzdGVkLiAgU28gSSB0aG91Z2h0IHlvdSBzdGF0ZWQgYWJvdXQgY3Jhc2hf a2V4ZWMgLS0+IHBhbmljDQpjYXNlLg0KDQo+ID4gQnV0IHRoZSBjb2RlIHBhdGhzIGFyZSBhIGJp dCBjb21wbGljYXRlZCBhbmQgdGhlcmUgYXJlIG1hbnkNCj4gPiBpbXBsZW1lbnRhdGlvbnMgZm9y IGVhY2ggYXJjaGl0ZWN0dXJlLiBTbyBvbmUgZGF5LCB0aGlzIGFzc3VtcHRpb24gbWF5DQo+ID4g YmUgYnJva2VuOyB0aGUgQ1BVIGRvZXNuJ3QgY2FsbCBwYW5pYygpLiBPciB0aGUgQ1BVIG1heSBm YWlsIHRvIGNhbGwNCj4gPiBwYW5pYygpIGJlY2F1c2Ugd2UgYXJlIGFscmVhZHkgaW4gaW5zYW5l IHN0YXRlLiBJdCB3b3VsZCBiZSBuZXJ2b3VzLA0KPiA+IGJ1dCBhbGxvd2luZyBhbm90aGVyIENQ VSB0byBwcm9jZXNzIHBhbmljIHJvdXRpbmVzIGJ5IHJlc2V0dGluZw0KPiA+IHBhbmljX2NwdSBp cyBzYWZlciBhcHByb2FjaC4NCj4gDQo+IE15IHN1Z2dlc3Rpb24gd2FzIHRvIGRvIHRoaXMgb25s eSBvbiB0aGUgcGFuaWMgcGF0aCAtIG5vdCBuZWNlc3NhcmlseSBvbg0KPiB0aGUgb3RoZXJzLg0K PiANCj4gPiBTaW5jZSB0aGlzIGNvZGUgaXMgZXhlY3V0ZWQgb25seSBvbmNlIGR1ZSB0byBwYW5p Y19jcHUsDQo+ID4gSSB0aGluayBpbnRyb2R1Y2luZyB0aGlzIGxvZ2ljIGlzIG5vdCBtdWNoIHZh bHVhYmxlLg0KPiA+IEFsc28sIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaXMgYWxyZWFkeSBxdWl0 ZSBzaW1wbGU6DQo+ID4NCj4gPiBwYW5pYygpDQo+ID4gew0KPiA+IC4uLg0KPiA+IAlfX2NyYXNo X2tleGVjKE5VTEwpIHsNCj4gPiAJCWlmIChtdXRleF90cnlsb2NrKCZrZXhlY19tdXRleCkpIHsN Cj4gPiAJCQlpZiAoa2V4ZWNfY3Jhc2hfaW1hZ2UpIHsNCj4gPiAJCQkJLyogZG9uJ3QgcmV0dXJu ICovDQo+ID4gCQkJfQ0KPiANCj4gSSBkb24ndCBtZWFuIHRoZSBrZXhlY19jcmFzaF9pbWFnZSBj YXNlIC0gSSBtZWFuIHRoZSBvcHBvc2l0ZSBvbmU6DQo+ICFrZXhlY19jcmFzaF9pbWFnZS4NCg0K SSBhbHNvIG1lbnRpb25lZCAha2V4ZWNfY3Jhc2hfaW1hZ2UgY2FzZS4uLg0KDQo+IEFuZCBJIHRo aW5rIEkga25vdyBub3cgd2hhdCB5b3UncmUgdHJ5aW5nIHRvIHRlbGwNCj4gbWU6IHRoZSBmaXJz dCBDUFUgd2hpY2ggaGl0cyBwYW5pYywgd2lsbCBmaW5pc2ggcGFuaWMgZXZlbnR1YWxseSBhbmQg c28NCj4gaXQgd2lsbCB0YWtlIGRvd24gdGhlIG1hY2hpbmUuDQoNCk5vLiAgVGhlIGZpcnN0IENQ VSBjYWxscyBwYW5pYywgYW5kIHRoZW4gaXQgY2FsbHMgX19jcmFzaF9rZXhlYy4NCkJlY2F1c2Ug b2YgIWtleGVjX2NyYXNoX2ltYWdlLCBpdCByZXR1cm5zIGZyb20gX19jcmFzaF9rZXhlYyBhbmQN CmNvbnRpbnVlcyB0byB0aGUgcGFuaWMgcHJvY2VkdXJlLiAgQXQgdGhlIHNhbWUgdGltZSwgYW5v dGhlciBDUFUNCnRyaWVzIHRvIGNhbGwgcGFuaWMoKSwgYnV0IGl0IGRvZXNuJ3QgcnVuIHRoZSBw YW5pYyBwcm9jZWR1cmU7DQpwYW5pY19jcHUgcHJldmVudHMgdGhlIHNlY29uZCBDUFUgZnJvbSBy dW5uaW5nIGl0Lg0KVGhpcyBtZWFucyBfX2NyYXNoX2tleGVjIGlzIGNhbGxlZCBvbmx5IG9uY2Ug ZXZlbiBpZiB3ZSBkb24ndA0KY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBfX2NyYXNoX2tleGVj Lg0KKFBsZWFzZSBub3RlIHRoYXQgY3Jhc2hfa2V4ZWMgY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0 aW1lcyBpbiB0aGUNCmNhc2Ugb2Ygb29wc19lbmQoKSAtLT4gY3Jhc2hfa2V4ZWMoKS4pDQoNCkkn bSBzb3JyeSBJIGNvdWxkbid0IHRlbGwgbXkgdGhvdWdodCB3ZWxsLg0KDQpSZWdhcmRzLA0KLS0N CkhpZGVoaXJvIEthd2FpDQpIaXRhY2hpLCBMdGQuIFJlc2VhcmNoICYgRGV2ZWxvcG1lbnQgR3Jv dXANCg0KDQo= -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Borislav Petkov <bp@alien8.de> |
|---|---|
| Date | 2015-12-03 13:30 +0100 |
| Subject | Re: [V5 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly |
| Message-ID | <qBBbl-4U8-27@gated-at.bofh.it> |
| In reply to | #1282960 |
On Thu, Dec 03, 2015 at 11:29:21AM +0000, 河合英宏 / KAWAI,HIDEHIRO wrote:
> I was arguing about the case of oops_end --> crash_kexec
> --> return from crash_kexec because of !kexec_crash_image -->
> panic.
Aha.
> In the case of panic --> __crash_kexec, __crash_kexec is called
> only once, so we don't need to check the return value of __crash_kexec
> as you suggested. So I thought you stated about crash_kexec --> panic
> case.
No, I meant the other way around.
> I also mentioned !kexec_crash_image case...
I must've missed it.
> No. The first CPU calls panic, and then it calls __crash_kexec.
> Because of !kexec_crash_image, it returns from __crash_kexec and
> continues to the panic procedure. At the same time, another CPU
> tries to call panic(), but it doesn't run the panic procedure;
> panic_cpu prevents the second CPU from running it.
>
> This means __crash_kexec is called only once even if we don't
> check the return value of __crash_kexec.
I think we're on the same page, even if we express it differently - the
other CPUs entering panic() will loop in panic_smp_self_stop() so they
won't reach __crash_kexec().
> (Please note that crash_kexec can be called multiple times in the
> case of oops_end() --> crash_kexec().)
Right, and that was the case that was bugging me - calling into
crash_kexec() on multiple CPUs but it is a trylock and a pointer test -
I guess that's diminishingly small overhead to care.
Thanks.
--
Regards/Gruss,
Boris.
ECO tip #101: Trim your mails when you reply.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web