Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1210776 > unrolled thread

Re: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly

Started byPeter Zijlstra <peterz@infradead.org>
First post2015-08-21 01:10 +0200
Last post2015-08-31 12:00 +0200
Articles 7 — 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.


Contents

  Re: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec()  called directly Peter Zijlstra <peterz@infradead.org> - 2015-08-21 01:10 +0200
    RE: [V3 PATCH 3/4] kexec: Fix race between panic() and  crash_kexec() called directly 河合英宏 / KAWAI,HIDEHIRO   <hidehiro.kawai.ez@hitachi.com> - 2015-08-22 04:40 +0200
      Re: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec()  called directly Peter Zijlstra <peterz@infradead.org> - 2015-08-25 17:00 +0200
        RE: [V3 PATCH 3/4] kexec: Fix race between panic() and  crash_kexec() called directly 河合英宏 / KAWAI,HIDEHIRO   <hidehiro.kawai.ez@hitachi.com> - 2015-08-26 05:20 +0200
          RE: [V3 PATCH 3/4] kexec: Fix race between panic() and  crash_kexec() called directly 河合英宏 / KAWAI,HIDEHIRO   <hidehiro.kawai.ez@hitachi.com> - 2015-08-31 11:00 +0200
            Re: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec()  called directly Peter Zijlstra <peterz@infradead.org> - 2015-08-31 11:10 +0200
              RE: [V3 PATCH 3/4] kexec: Fix race between panic() and  crash_kexec() called directly 河合英宏 / KAWAI,HIDEHIRO   <hidehiro.kawai.ez@hitachi.com> - 2015-08-31 12:00 +0200

#1210776 — Re: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly

FromPeter Zijlstra <peterz@infradead.org>
Date2015-08-21 01:10 +0200
SubjectRe: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly
Message-ID<pZH85-2wb-7@gated-at.bofh.it>
On Thu, Aug 06, 2015 at 02:45:43PM +0900, Hidehiro Kawai wrote:
>  void crash_kexec(struct pt_regs *regs)
>  {
> +	int old_cpu, this_cpu;
> +
> +	/*
> +	 * `old_cpu == -1' means we are the first comer and crash_kexec()
> +	 * was called without entering panic().
> +	 * `old_cpu == this_cpu' means crash_kexec() was called from panic().
> +	 */
> +	this_cpu = raw_smp_processor_id();
> +	old_cpu = atomic_cmpxchg(&panic_cpu, -1, this_cpu);
> +	if (old_cpu != -1 && old_cpu != this_cpu)
> +		return;

This allows recursive calling of crash_kexec(), the Changelog did not
mention that. Is this really required?

> +
>  	/* Take the kexec_mutex here to prevent sys_kexec_load
>  	 * running on one cpu from replacing the crash kernel
>  	 * we are using after a panic on a different cpu.
--
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]


#1211393 — RE: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly

From河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com>
Date2015-08-22 04:40 +0200
SubjectRE: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly
Message-ID<q06SR-5HX-3@gated-at.bofh.it>
In reply to#1210776
PiBGcm9tOiBQZXRlciBaaWpsc3RyYSBbbWFpbHRvOnBldGVyekBpbmZyYWRlYWQub3JnXQ0KPiAN
Cj4gT24gVGh1LCBBdWcgMDYsIDIwMTUgYXQgMDI6NDU6NDNQTSArMDkwMCwgSGlkZWhpcm8gS2F3
YWkgd3JvdGU6DQo+ID4gIHZvaWQgY3Jhc2hfa2V4ZWMoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpDQo+
ID4gIHsNCj4gPiArCWludCBvbGRfY3B1LCB0aGlzX2NwdTsNCj4gPiArDQo+ID4gKwkvKg0KPiA+
ICsJICogYG9sZF9jcHUgPT0gLTEnIG1lYW5zIHdlIGFyZSB0aGUgZmlyc3QgY29tZXIgYW5kIGNy
YXNoX2tleGVjKCkNCj4gPiArCSAqIHdhcyBjYWxsZWQgd2l0aG91dCBlbnRlcmluZyBwYW5pYygp
Lg0KPiA+ICsJICogYG9sZF9jcHUgPT0gdGhpc19jcHUnIG1lYW5zIGNyYXNoX2tleGVjKCkgd2Fz
IGNhbGxlZCBmcm9tIHBhbmljKCkuDQo+ID4gKwkgKi8NCj4gPiArCXRoaXNfY3B1ID0gcmF3X3Nt
cF9wcm9jZXNzb3JfaWQoKTsNCj4gPiArCW9sZF9jcHUgPSBhdG9taWNfY21weGNoZygmcGFuaWNf
Y3B1LCAtMSwgdGhpc19jcHUpOw0KPiA+ICsJaWYgKG9sZF9jcHUgIT0gLTEgJiYgb2xkX2NwdSAh
PSB0aGlzX2NwdSkNCj4gPiArCQlyZXR1cm47DQo+IA0KPiBUaGlzIGFsbG93cyByZWN1cnNpdmUg
Y2FsbGluZyBvZiBjcmFzaF9rZXhlYygpLCB0aGUgQ2hhbmdlbG9nIGRpZCBub3QNCj4gbWVudGlv
biB0aGF0LiBJcyB0aGlzIHJlYWxseSByZXF1aXJlZD8NCg0KV2hhdCBwYXJ0IGFyZSB5b3UgYXJn
dWluZz8gIFJlY3Vyc2l2ZSBjYWxsIG9mIGNyYXNoX2tleGVjKCkgZG9lc24ndA0KaGFwcGVuLiAg
SW4gdGhlIGZpcnN0IHBsYWNlLCBvbmUgb2YgdGhlIHB1cnBvc2Ugb2YgdGhpcyBwYXRjaCBpcw0K
dG8gcHJldmVudCBhIHJlY3Vyc2l2ZSBjYWxsIG9mIGNyYXNoX2tleGVjKCkgaW4gdGhlIGZvbGxv
d2luZyBjYXNlDQphcyBJIHN0YXRlZCBpbiB0aGUgZGVzY3JpcHRpb246DQoNCkNQVSAwOg0KICBv
b3BzX2VuZCgpDQogICAgY3Jhc2hfa2V4ZWMoKQ0KICAgICAgbXV0ZXhfdHJ5bG9jaygpIC8vIGFj
cXVpcmVkDQogICAgICAgIDxOTUk+DQogICAgICAgIGlvX2NoZWNrX2Vycm9yKCkNCiAgICAgICAg
ICBwYW5pYygpDQogICAgICAgICAgICBjcmFzaF9rZXhlYygpDQogICAgICAgICAgICAgIG11dGV4
X3RyeWxvY2soKSAvLyBmYWlsZWQgdG8gYWNxdWlyZQ0KICAgICAgICAgICAgaW5maW5pdGUgbG9v
cA0KDQoNCkFsc28sIHRoZSBsb2dpYyBkb2Vzbid0IGNoYW5nZSBmb3JtIFYxIChhbHRob3VnaCB0
aGUgaW1wbGVtZW50YXRpb24NCmNoYW5nZWQpLCBzbyBJIGRpZG4ndCBhZGQgY2hhbmdlbG9ncyBh
bnkgbW9yZS4NCg0KUmVnYXJkcywNCg0KSGlkZWhpcm8gS2F3YWkNCkhpdGFjaGksIEx0ZC4gUmVz
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]


#1213092

FromPeter Zijlstra <peterz@infradead.org>
Date2015-08-25 17:00 +0200
Message-ID<q1nRE-1aY-9@gated-at.bofh.it>
In reply to#1211393
On Sat, Aug 22, 2015 at 02:35:24AM +0000, 河合英宏 / KAWAI,HIDEHIRO wrote:
> > From: Peter Zijlstra [mailto:peterz@infradead.org]
> > 
> > On Thu, Aug 06, 2015 at 02:45:43PM +0900, Hidehiro Kawai wrote:
> > >  void crash_kexec(struct pt_regs *regs)
> > >  {
> > > +	int old_cpu, this_cpu;
> > > +
> > > +	/*
> > > +	 * `old_cpu == -1' means we are the first comer and crash_kexec()
> > > +	 * was called without entering panic().
> > > +	 * `old_cpu == this_cpu' means crash_kexec() was called from panic().
> > > +	 */
> > > +	this_cpu = raw_smp_processor_id();
> > > +	old_cpu = atomic_cmpxchg(&panic_cpu, -1, this_cpu);
> > > +	if (old_cpu != -1 && old_cpu != this_cpu)
> > > +		return;
> > 
> > This allows recursive calling of crash_kexec(), the Changelog did not
> > mention that. Is this really required?
> 
> What part are you arguing?  Recursive call of crash_kexec() doesn't
> happen.  In the first place, one of the purpose of this patch is
> to prevent a recursive call of crash_kexec() in the following case
> as I stated in the description:
> 
> CPU 0:
>   oops_end()
>     crash_kexec()
>       mutex_trylock() // acquired
>         <NMI>
>         io_check_error()
>           panic()
>             crash_kexec()
>               mutex_trylock() // failed to acquire
>             infinite loop
> 

Yes, but what to we want to do there? It seems to me that is wrong, we
do not want to let a recursive crash_kexec() proceed.

Whereas the condition you created explicitly allows this recursion by
virtue of the 'old_cpu != this_cpu' check.

You changelog does not explain why you want a recursive crash_kexec().

> Also, the logic doesn't change form V1 (although the implementation
> changed), so I didn't add changelogs any more.

I cannot remember V1, nor can any prior patch be relevant.

--
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]


#1213512 — RE: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly

From河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com>
Date2015-08-26 05:20 +0200
SubjectRE: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly
Message-ID<q1zpM-1JJ-9@gated-at.bofh.it>
In reply to#1213092
SGksDQoNCj4gRnJvbTogUGV0ZXIgWmlqbHN0cmEgW21haWx0bzpwZXRlcnpAaW5mcmFkZWFkLm9y
Z10NCj4gDQo+IE9uIFNhdCwgQXVnIDIyLCAyMDE1IGF0IDAyOjM1OjI0QU0gKzAwMDAsIOays+WQ
iOiLseWujyAvIEtBV0FJ77yMSElERUhJUk8gd3JvdGU6DQo+ID4gPiBGcm9tOiBQZXRlciBaaWps
c3RyYSBbbWFpbHRvOnBldGVyekBpbmZyYWRlYWQub3JnXQ0KPiA+ID4NCj4gPiA+IE9uIFRodSwg
QXVnIDA2LCAyMDE1IGF0IDAyOjQ1OjQzUE0gKzA5MDAsIEhpZGVoaXJvIEthd2FpIHdyb3RlOg0K
PiA+ID4gPiAgdm9pZCBjcmFzaF9rZXhlYyhzdHJ1Y3QgcHRfcmVncyAqcmVncykNCj4gPiA+ID4g
IHsNCj4gPiA+ID4gKwlpbnQgb2xkX2NwdSwgdGhpc19jcHU7DQo+ID4gPiA+ICsNCj4gPiA+ID4g
KwkvKg0KPiA+ID4gPiArCSAqIGBvbGRfY3B1ID09IC0xJyBtZWFucyB3ZSBhcmUgdGhlIGZpcnN0
IGNvbWVyIGFuZCBjcmFzaF9rZXhlYygpDQo+ID4gPiA+ICsJICogd2FzIGNhbGxlZCB3aXRob3V0
IGVudGVyaW5nIHBhbmljKCkuDQo+ID4gPiA+ICsJICogYG9sZF9jcHUgPT0gdGhpc19jcHUnIG1l
YW5zIGNyYXNoX2tleGVjKCkgd2FzIGNhbGxlZCBmcm9tIHBhbmljKCkuDQo+ID4gPiA+ICsJICov
DQo+ID4gPiA+ICsJdGhpc19jcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOw0KPiA+ID4gPiAr
CW9sZF9jcHUgPSBhdG9taWNfY21weGNoZygmcGFuaWNfY3B1LCAtMSwgdGhpc19jcHUpOw0KPiA+
ID4gPiArCWlmIChvbGRfY3B1ICE9IC0xICYmIG9sZF9jcHUgIT0gdGhpc19jcHUpDQo+ID4gPiA+
ICsJCXJldHVybjsNCj4gPiA+DQo+ID4gPiBUaGlzIGFsbG93cyByZWN1cnNpdmUgY2FsbGluZyBv
ZiBjcmFzaF9rZXhlYygpLCB0aGUgQ2hhbmdlbG9nIGRpZCBub3QNCj4gPiA+IG1lbnRpb24gdGhh
dC4gSXMgdGhpcyByZWFsbHkgcmVxdWlyZWQ/DQo+ID4NCj4gPiBXaGF0IHBhcnQgYXJlIHlvdSBh
cmd1aW5nPyAgUmVjdXJzaXZlIGNhbGwgb2YgY3Jhc2hfa2V4ZWMoKSBkb2Vzbid0DQo+ID4gaGFw
cGVuLiAgSW4gdGhlIGZpcnN0IHBsYWNlLCBvbmUgb2YgdGhlIHB1cnBvc2Ugb2YgdGhpcyBwYXRj
aCBpcw0KPiA+IHRvIHByZXZlbnQgYSByZWN1cnNpdmUgY2FsbCBvZiBjcmFzaF9rZXhlYygpIGlu
IHRoZSBmb2xsb3dpbmcgY2FzZQ0KPiA+IGFzIEkgc3RhdGVkIGluIHRoZSBkZXNjcmlwdGlvbjoN
Cj4gPg0KPiA+IENQVSAwOg0KPiA+ICAgb29wc19lbmQoKQ0KPiA+ICAgICBjcmFzaF9rZXhlYygp
DQo+ID4gICAgICAgbXV0ZXhfdHJ5bG9jaygpIC8vIGFjcXVpcmVkDQo+ID4gICAgICAgICA8Tk1J
Pg0KPiA+ICAgICAgICAgaW9fY2hlY2tfZXJyb3IoKQ0KPiA+ICAgICAgICAgICBwYW5pYygpDQo+
ID4gICAgICAgICAgICAgY3Jhc2hfa2V4ZWMoKQ0KPiA+ICAgICAgICAgICAgICAgbXV0ZXhfdHJ5
bG9jaygpIC8vIGZhaWxlZCB0byBhY3F1aXJlDQo+ID4gICAgICAgICAgICAgaW5maW5pdGUgbG9v
cA0KPiA+DQo+IA0KPiBZZXMsIGJ1dCB3aGF0IHRvIHdlIHdhbnQgdG8gZG8gdGhlcmU/IEl0IHNl
ZW1zIHRvIG1lIHRoYXQgaXMgd3JvbmcsIHdlDQo+IGRvIG5vdCB3YW50IHRvIGxldCBhIHJlY3Vy
c2l2ZSBjcmFzaF9rZXhlYygpIHByb2NlZWQuDQo+IA0KPiBXaGVyZWFzIHRoZSBjb25kaXRpb24g
eW91IGNyZWF0ZWQgZXhwbGljaXRseSBhbGxvd3MgdGhpcyByZWN1cnNpb24gYnkNCj4gdmlydHVl
IG9mIHRoZSAnb2xkX2NwdSAhPSB0aGlzX2NwdScgY2hlY2suDQoNCkkgdW5kZXJzdGFuZCB5b3Vy
IHF1ZXN0aW9uLiAgSSBkb24ndCBpbnRlbmQgdG8gcGVybWl0IHRoZSByZWN1cnNpdmUNCmNhbGwg
b2YgY3Jhc2hfa2V4ZWMoKSBhcyBmb3IgJ29sZF9jcHUgIT0gdGhpc19jcHUnIGNoZWNrLiAgVGhh
dCBpcw0KbmVlZGVkIGZvciB0aGUgY2FzZSBvZiBwYW5pYygpIC0tPiBjcmFzaF9rZXhlYygpLiAg
U2luY2UgcGFuaWNfY3B1IGhhcw0KYWxyZWFkeSBiZWVuIHNldCB0byB0aGlzX2NwdSBpbiBwYW5p
YygpIChwbGVhc2Ugc2VlIFBBVENIIDEvNCksIG5vIG9uZQ0KY2FuIHJ1biBjcmFzaF9rZXhlYygp
IHdpdGhvdXQgJ29sZF9jcHUgIT0gdGhpc19jcHUnIGNoZWNrLg0KDQpJZiB5b3UgZG9uJ3QgbGlr
ZSB0aGlzIGNoZWNrLCBJIHdvdWxkIGFsc28gYmUgYWJsZSB0byBoYW5kbGUgdGhpcyBjYXNlDQps
aWtlIGJlbG93Og0KDQpjcmFzaF9rZXhlYygpDQp7DQoJb2xkX2NwdSA9IGF0b21pY19jbXB4Y2hn
KCZwYW5pY19jcHUsIC0xLCB0aGlzX2NwdSk7DQoJaWYgKG9sZF9jcHUgIT0gLTEpDQoJCXJldHVy
bjsNCg0KCV9fY3Jhc2hfa2V4ZWMoKTsNCn0NCg0KcGFuaWMoKQ0Kew0KCWF0b21pY19jbXB4Y2hn
KCZwYW5pY19jcHUsIC0xLCB0aGlzX2NwdSk7DQoJX19jcmFzaF9rZXhlYygpOw0KLi4uDQoNCg0K
UmVnYXJkcywNCg0KSGlkZWhpcm8gS2F3YWkNCkhpdGFjaGksIEx0ZC4gUmVzZWFyY2ggJiBEZXZl
bG9wbWVudCBHcm91cA0KDQo=
--
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]


#1216111 — RE: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly

From河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com>
Date2015-08-31 11:00 +0200
SubjectRE: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly
Message-ID<q3t6y-2Mk-3@gated-at.bofh.it>
In reply to#1213512
SGVsbG8gUGV0ZXIsDQoNCj4gRnJvbTogbGludXgta2VybmVsLW93bmVyQHZnZXIua2VybmVsLm9y
ZyBbbWFpbHRvOmxpbnV4LWtlcm5lbC1vd25lckB2Z2VyLmtlcm5lbC5vcmddIE9uIEJlaGFsZiBP
ZiDmsrPlkIjoi7Hlro8gLyBLQVdBSe+8jA0KPiANCj4gSGksDQo+IA0KPiA+IEZyb206IFBldGVy
IFppamxzdHJhIFttYWlsdG86cGV0ZXJ6QGluZnJhZGVhZC5vcmddDQo+ID4NCj4gPiBPbiBTYXQs
IEF1ZyAyMiwgMjAxNSBhdCAwMjozNToyNEFNICswMDAwLCDmsrPlkIjoi7Hlro8gLyBLQVdBSe+8
jEhJREVISVJPIHdyb3RlOg0KPiA+ID4gPiBGcm9tOiBQZXRlciBaaWpsc3RyYSBbbWFpbHRvOnBl
dGVyekBpbmZyYWRlYWQub3JnXQ0KPiA+ID4gPg0KPiA+ID4gPiBPbiBUaHUsIEF1ZyAwNiwgMjAx
NSBhdCAwMjo0NTo0M1BNICswOTAwLCBIaWRlaGlybyBLYXdhaSB3cm90ZToNCj4gPiA+ID4gPiAg
dm9pZCBjcmFzaF9rZXhlYyhzdHJ1Y3QgcHRfcmVncyAqcmVncykNCj4gPiA+ID4gPiAgew0KPiA+
ID4gPiA+ICsJaW50IG9sZF9jcHUsIHRoaXNfY3B1Ow0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiAr
CS8qDQo+ID4gPiA+ID4gKwkgKiBgb2xkX2NwdSA9PSAtMScgbWVhbnMgd2UgYXJlIHRoZSBmaXJz
dCBjb21lciBhbmQgY3Jhc2hfa2V4ZWMoKQ0KPiA+ID4gPiA+ICsJICogd2FzIGNhbGxlZCB3aXRo
b3V0IGVudGVyaW5nIHBhbmljKCkuDQo+ID4gPiA+ID4gKwkgKiBgb2xkX2NwdSA9PSB0aGlzX2Nw
dScgbWVhbnMgY3Jhc2hfa2V4ZWMoKSB3YXMgY2FsbGVkIGZyb20gcGFuaWMoKS4NCj4gPiA+ID4g
PiArCSAqLw0KPiA+ID4gPiA+ICsJdGhpc19jcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOw0K
PiA+ID4gPiA+ICsJb2xkX2NwdSA9IGF0b21pY19jbXB4Y2hnKCZwYW5pY19jcHUsIC0xLCB0aGlz
X2NwdSk7DQo+ID4gPiA+ID4gKwlpZiAob2xkX2NwdSAhPSAtMSAmJiBvbGRfY3B1ICE9IHRoaXNf
Y3B1KQ0KPiA+ID4gPiA+ICsJCXJldHVybjsNCj4gPiA+ID4NCj4gPiA+ID4gVGhpcyBhbGxvd3Mg
cmVjdXJzaXZlIGNhbGxpbmcgb2YgY3Jhc2hfa2V4ZWMoKSwgdGhlIENoYW5nZWxvZyBkaWQgbm90
DQo+ID4gPiA+IG1lbnRpb24gdGhhdC4gSXMgdGhpcyByZWFsbHkgcmVxdWlyZWQ/DQo+ID4gPg0K
PiA+ID4gV2hhdCBwYXJ0IGFyZSB5b3UgYXJndWluZz8gIFJlY3Vyc2l2ZSBjYWxsIG9mIGNyYXNo
X2tleGVjKCkgZG9lc24ndA0KPiA+ID4gaGFwcGVuLiAgSW4gdGhlIGZpcnN0IHBsYWNlLCBvbmUg
b2YgdGhlIHB1cnBvc2Ugb2YgdGhpcyBwYXRjaCBpcw0KPiA+ID4gdG8gcHJldmVudCBhIHJlY3Vy
c2l2ZSBjYWxsIG9mIGNyYXNoX2tleGVjKCkgaW4gdGhlIGZvbGxvd2luZyBjYXNlDQo+ID4gPiBh
cyBJIHN0YXRlZCBpbiB0aGUgZGVzY3JpcHRpb246DQo+ID4gPg0KPiA+ID4gQ1BVIDA6DQo+ID4g
PiAgIG9vcHNfZW5kKCkNCj4gPiA+ICAgICBjcmFzaF9rZXhlYygpDQo+ID4gPiAgICAgICBtdXRl
eF90cnlsb2NrKCkgLy8gYWNxdWlyZWQNCj4gPiA+ICAgICAgICAgPE5NST4NCj4gPiA+ICAgICAg
ICAgaW9fY2hlY2tfZXJyb3IoKQ0KPiA+ID4gICAgICAgICAgIHBhbmljKCkNCj4gPiA+ICAgICAg
ICAgICAgIGNyYXNoX2tleGVjKCkNCj4gPiA+ICAgICAgICAgICAgICAgbXV0ZXhfdHJ5bG9jaygp
IC8vIGZhaWxlZCB0byBhY3F1aXJlDQo+ID4gPiAgICAgICAgICAgICBpbmZpbml0ZSBsb29wDQo+
ID4gPg0KPiA+DQo+ID4gWWVzLCBidXQgd2hhdCB0byB3ZSB3YW50IHRvIGRvIHRoZXJlPyBJdCBz
ZWVtcyB0byBtZSB0aGF0IGlzIHdyb25nLCB3ZQ0KPiA+IGRvIG5vdCB3YW50IHRvIGxldCBhIHJl
Y3Vyc2l2ZSBjcmFzaF9rZXhlYygpIHByb2NlZWQuDQo+ID4NCj4gPiBXaGVyZWFzIHRoZSBjb25k
aXRpb24geW91IGNyZWF0ZWQgZXhwbGljaXRseSBhbGxvd3MgdGhpcyByZWN1cnNpb24gYnkNCj4g
PiB2aXJ0dWUgb2YgdGhlICdvbGRfY3B1ICE9IHRoaXNfY3B1JyBjaGVjay4NCj4gDQo+IEkgdW5k
ZXJzdGFuZCB5b3VyIHF1ZXN0aW9uLiAgSSBkb24ndCBpbnRlbmQgdG8gcGVybWl0IHRoZSByZWN1
cnNpdmUNCj4gY2FsbCBvZiBjcmFzaF9rZXhlYygpIGFzIGZvciAnb2xkX2NwdSAhPSB0aGlzX2Nw
dScgY2hlY2suICBUaGF0IGlzDQo+IG5lZWRlZCBmb3IgdGhlIGNhc2Ugb2YgcGFuaWMoKSAtLT4g
Y3Jhc2hfa2V4ZWMoKS4gIFNpbmNlIHBhbmljX2NwdSBoYXMNCj4gYWxyZWFkeSBiZWVuIHNldCB0
byB0aGlzX2NwdSBpbiBwYW5pYygpIChwbGVhc2Ugc2VlIFBBVENIIDEvNCksIG5vIG9uZQ0KPiBj
YW4gcnVuIGNyYXNoX2tleGVjKCkgd2l0aG91dCAnb2xkX2NwdSAhPSB0aGlzX2NwdScgY2hlY2su
DQo+IA0KPiBJZiB5b3UgZG9uJ3QgbGlrZSB0aGlzIGNoZWNrLCBJIHdvdWxkIGFsc28gYmUgYWJs
ZSB0byBoYW5kbGUgdGhpcyBjYXNlDQo+IGxpa2UgYmVsb3c6DQo+IA0KPiBjcmFzaF9rZXhlYygp
DQo+IHsNCj4gCW9sZF9jcHUgPSBhdG9taWNfY21weGNoZygmcGFuaWNfY3B1LCAtMSwgdGhpc19j
cHUpOw0KPiAJaWYgKG9sZF9jcHUgIT0gLTEpDQo+IAkJcmV0dXJuOw0KPiANCj4gCV9fY3Jhc2hf
a2V4ZWMoKTsNCj4gfQ0KPiANCj4gcGFuaWMoKQ0KPiB7DQo+IAlhdG9taWNfY21weGNoZygmcGFu
aWNfY3B1LCAtMSwgdGhpc19jcHUpOw0KPiAJX19jcmFzaF9rZXhlYygpOw0KPiAuLi4NCj4gDQoN
CklzIHRoYXQgT0s/DQoNClJlZ2FyZHMsDQoNCkhpZGVoaXJvIEthd2FpDQpIaXRhY2hpLCBMdGQu
IFJlc2VhcmNoICYgRGV2ZWxvcG1lbnQgR3JvdXANCg0KDQo=
--
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]


#1216117

FromPeter Zijlstra <peterz@infradead.org>
Date2015-08-31 11:10 +0200
Message-ID<q3tge-3d0-31@gated-at.bofh.it>
In reply to#1216111
On Mon, Aug 31, 2015 at 08:53:11AM +0000, 河合英宏 / KAWAI,HIDEHIRO wrote:
> > I understand your question.  I don't intend to permit the recursive
> > call of crash_kexec() as for 'old_cpu != this_cpu' check.  That is
> > needed for the case of panic() --> crash_kexec().  Since panic_cpu has
> > already been set to this_cpu in panic() (please see PATCH 1/4), no one
> > can run crash_kexec() without 'old_cpu != this_cpu' check.
> > 
> > If you don't like this check, I would also be able to handle this case
> > like below:
> > 
> > crash_kexec()
> > {
> > 	old_cpu = atomic_cmpxchg(&panic_cpu, -1, this_cpu);
> > 	if (old_cpu != -1)
> > 		return;
> > 
> > 	__crash_kexec();
> > }
> > 
> > panic()
> > {
> > 	atomic_cmpxchg(&panic_cpu, -1, this_cpu);
> > 	__crash_kexec();
> > ...
> > 
> 
> Is that OK?

I suppose so, but I think me getting confused means comments can be
added/improved.
--
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]


#1216128 — RE: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly

From河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com>
Date2015-08-31 12:00 +0200
SubjectRE: [V3 PATCH 3/4] kexec: Fix race between panic() and crash_kexec() called directly
Message-ID<q3u2C-47R-17@gated-at.bofh.it>
In reply to#1216117
PiBGcm9tOiBQZXRlciBaaWpsc3RyYSBbbWFpbHRvOnBldGVyekBpbmZyYWRlYWQub3JnXQ0KPiBP
biBNb24sIEF1ZyAzMSwgMjAxNSBhdCAwODo1MzoxMUFNICswMDAwLCDmsrPlkIjoi7Hlro8gLyBL
QVdBSe+8jEhJREVISVJPIHdyb3RlOg0KPiA+ID4gSSB1bmRlcnN0YW5kIHlvdXIgcXVlc3Rpb24u
ICBJIGRvbid0IGludGVuZCB0byBwZXJtaXQgdGhlIHJlY3Vyc2l2ZQ0KPiA+ID4gY2FsbCBvZiBj
cmFzaF9rZXhlYygpIGFzIGZvciAnb2xkX2NwdSAhPSB0aGlzX2NwdScgY2hlY2suICBUaGF0IGlz
DQo+ID4gPiBuZWVkZWQgZm9yIHRoZSBjYXNlIG9mIHBhbmljKCkgLS0+IGNyYXNoX2tleGVjKCku
ICBTaW5jZSBwYW5pY19jcHUgaGFzDQo+ID4gPiBhbHJlYWR5IGJlZW4gc2V0IHRvIHRoaXNfY3B1
IGluIHBhbmljKCkgKHBsZWFzZSBzZWUgUEFUQ0ggMS80KSwgbm8gb25lDQo+ID4gPiBjYW4gcnVu
IGNyYXNoX2tleGVjKCkgd2l0aG91dCAnb2xkX2NwdSAhPSB0aGlzX2NwdScgY2hlY2suDQo+ID4g
Pg0KPiA+ID4gSWYgeW91IGRvbid0IGxpa2UgdGhpcyBjaGVjaywgSSB3b3VsZCBhbHNvIGJlIGFi
bGUgdG8gaGFuZGxlIHRoaXMgY2FzZQ0KPiA+ID4gbGlrZSBiZWxvdzoNCj4gPiA+DQo+ID4gPiBj
cmFzaF9rZXhlYygpDQo+ID4gPiB7DQo+ID4gPiAJb2xkX2NwdSA9IGF0b21pY19jbXB4Y2hnKCZw
YW5pY19jcHUsIC0xLCB0aGlzX2NwdSk7DQo+ID4gPiAJaWYgKG9sZF9jcHUgIT0gLTEpDQo+ID4g
PiAJCXJldHVybjsNCj4gPiA+DQo+ID4gPiAJX19jcmFzaF9rZXhlYygpOw0KPiA+ID4gfQ0KPiA+
ID4NCj4gPiA+IHBhbmljKCkNCj4gPiA+IHsNCj4gPiA+IAlhdG9taWNfY21weGNoZygmcGFuaWNf
Y3B1LCAtMSwgdGhpc19jcHUpOw0KPiA+ID4gCV9fY3Jhc2hfa2V4ZWMoKTsNCj4gPiA+IC4uLg0K
PiA+ID4NCj4gPg0KPiA+IElzIHRoYXQgT0s/DQo+IA0KPiBJIHN1cHBvc2Ugc28sIGJ1dCBJIHRo
aW5rIG1lIGdldHRpbmcgY29uZnVzZWQgbWVhbnMgY29tbWVudHMgY2FuIGJlDQo+IGFkZGVkL2lt
cHJvdmVkLg0KDQpPSywgSSdsbCBpbXByb3ZlIGNvbW1lbnRzIGFuZCBkZXNjcmlwdGlvbiBpbiB0
aGUgbmV4dCB2ZXJzaW9uLg0KDQpUaGFua3MhDQoNCkhpZGVoaXJvIEthd2FpDQpIaXRhY2hpLCBM
dGQuIFJlc2VhcmNoICYgRGV2ZWxvcG1lbnQgR3JvdXANCg0K
--
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