Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1210776 > unrolled thread
| Started by | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| First post | 2015-08-21 01:10 +0200 |
| Last post | 2015-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.
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
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Date | 2015-08-21 01:10 +0200 |
| Subject | Re: [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]
| From | 河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com> |
|---|---|
| Date | 2015-08-22 04:40 +0200 |
| Subject | RE: [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]
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Date | 2015-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]
| From | 河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com> |
|---|---|
| Date | 2015-08-26 05:20 +0200 |
| Subject | RE: [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]
| From | 河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com> |
|---|---|
| Date | 2015-08-31 11:00 +0200 |
| Subject | RE: [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]
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Date | 2015-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]
| From | 河合英宏 / KAWAI,HIDEHIRO <hidehiro.kawai.ez@hitachi.com> |
|---|---|
| Date | 2015-08-31 12:00 +0200 |
| Subject | RE: [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