From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from [222.73.24.84] (helo=song.cn.fujitsu.com) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1Tg9rb-0002jW-3q for kexec@lists.infradead.org; Wed, 05 Dec 2012 07:57:52 +0000 Message-ID: <50BEFDF9.9080601@cn.fujitsu.com> Date: Wed, 05 Dec 2012 15:55:37 +0800 From: Zhang Yanfei MIME-Version: 1.0 Subject: Re: [PATCH v9 1/2] x86/kexec: VMCLEAR VMCSs loaded on all cpus if necessary References: <50B43299.9030409@cn.fujitsu.com> <50B432CA.70804@cn.fujitsu.com> <87zk1t4lt4.fsf@xmission.com> In-Reply-To: <87zk1t4lt4.fsf@xmission.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Sender: kexec-bounces@lists.infradead.org Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: "Eric W. Biederman" Cc: Marcelo Tosatti , Gleb Natapov , "kvm@vger.kernel.org" , "x86@kernel.org" , "kexec@lists.infradead.org" , "linux-kernel@vger.kernel.org" 09ogMjAxMsTqMTLUwjA1yNUgMDQ6MTQsIEVyaWMgVy4gQmllZGVybWFuINC0tcA6Cj4gWmhhbmcg WWFuZmVpIDx6aGFuZ3lhbmZlaUBjbi5mdWppdHN1LmNvbT4gd3JpdGVzOgo+IAo+PiBUaGlzIHBh dGNoIHByb3ZpZGVzIGEgd2F5IHRvIFZNQ0xFQVIgVk1DU3MgcmVsYXRlZCB0byBndWVzdHMKPj4g b24gYWxsIGNwdXMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgVk1YT0ZGIHdoZW4gZG9pbmcga2R1bXAu IFRoaXMKPj4gaXMgdXNlZCB0byBlbnN1cmUgdGhlIFZNQ1NzIGluIHRoZSB2bWNvcmUgdXBkYXRl ZCBhbmQKPj4gbm9uLWNvcnJ1cHRlZC4KPiAKPiBBcG9sb2dpZXMgZm9yIHRoZSBkZWxheSBJIGhh dmUgYmVlbiB0cmF2ZWxsaW5nLCBhbmQgSSB3YW50ZWQKPiB0byBhdCBsZWFzdCByZWFkIHRocm91 Z2ggdGhlIGNvZGUuCj4gCj4gT3ZlcmFsbCBJIHRoaW5rIHRoaXMgaXMgZ29vZCBidXQgSSBoYXZl IG9uZSBuaXQsIGFuZCBJIHNlZSBvbmUgcmVhbAo+IHByb2JsZW0gd2l0aCB0aGlzIGNvZGUuCj4g Cj4+ICsvKgo+PiArICogVGhpcyBpcyB1c2VkIHRvIFZNQ0xFQVIgYWxsIFZNQ1NzIGxvYWRlZCBv biB0aGUKPj4gKyAqIHByb2Nlc3Nvci4gQW5kIHdoZW4gbG9hZGluZyBrdm1faW50ZWwgbW9kdWxl LCB0aGUKPj4gKyAqIGNhbGxiYWNrIGZ1bmN0aW9uIHBvaW50ZXIgd2lsbCBiZSBhc3NpZ25lZC4K Pj4gKyAqLwo+PiArdm9pZCAoKmNyYXNoX3ZtY2xlYXJfbG9hZGVkX3ZtY3NzKSh2b2lkKSA9IE5V TEw7Cj4+ICtFWFBPUlRfU1lNQk9MX0dQTChjcmFzaF92bWNsZWFyX2xvYWRlZF92bWNzcyk7Cj4+ ICsKPj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBjcHVfZW1lcmdlbmN5X3ZtY2xlYXJfbG9hZGVkX3Zt Y3NzKHZvaWQpCj4+ICt7Cj4+ICsJaWYgKGNyYXNoX3ZtY2xlYXJfbG9hZGVkX3ZtY3NzKQo+PiAr CQljcmFzaF92bWNsZWFyX2xvYWRlZF92bWNzcygpOwo+PiArfQo+IAo+IFRoZSBuaXQgaXMgdGhl IHVzZSBvZiBlbWVyZ2VuY3kgaW5zdGVhZCBvZiBjcmFzaCBpbiB0aGUgbmFtZS4KCm9rLCBlbWVy Z2VuY3kgLT4gY3Jhc2gKCj4gCj4gVGhlIHByb2JsZW0gaXMgdGhhdCB0aGlzIGlzIHBvdGVudGlh bGx5IGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGlmCj4ga3ZtLWludGVsIGlzIHJlbW92ZWQu ICBUaGUgZWFzaXN0IGZpeCB3b3VsZCBiZSBpbiB5b3VyIHNlY29uZCBwYXRjaCB0bwo+IGp1c3Qg bWFrZSBpdCBpbXBvc3NpYmxlIHRvIHVubG9hZCB0aGUga3ZtLWludGVsIG1vZHVsZS4gIE90aGVy d2lzZQo+IHRoZXJlIHRoZSBkZWZlcmVuY2Ugb2YgY3Jhc2hfdm1jbGVhcl9sb2FkZWRfdm1jc3Mg bmVlZHMgdG8gYmUgcmN1Cj4gcHJvdGVjdGVkLCB3aXRoIGEgc3luY3Job25pemVfcmN1IGFmdGVy IHRoZSBwb2ludGVyIGlzIHNldCB0byBOVUxMIGluCj4gdGhlIHVubG9hZCBwYXRoLgoKQWgsIHRo YW5rcyBmb3IgdGhpcyBjb21tZW50LgoKSSB0aGluayBJIHdpbGwgdXNlIHRoZSByY3UgbWFjaGFu aXNtIHRvIHNvbHZlIHRoZSBwcm9ibGVtLgoKPiAKPiBPdGhlcndpc2UgSSBoYXZlIG5vIG9iamVj dGlvbnMgdG8gdGhpcyBjb2RlLgoKVGhhbmtzIGZvciB5b3VyIHJldmlldy4gSSB3aWxsIHVwZGF0 ZSB0aGUgcGF0Y2ggYW5kIHJlc2VuZCBpdC4KClRoYW5rcwpaaGFuZyBZYW5mZWkKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmtleGVjIG1haWxpbmcgbGlz dAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8va2V4ZWMK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhang Yanfei Subject: Re: [PATCH v9 1/2] x86/kexec: VMCLEAR VMCSs loaded on all cpus if necessary Date: Wed, 05 Dec 2012 15:55:37 +0800 Message-ID: <50BEFDF9.9080601@cn.fujitsu.com> References: <50B43299.9030409@cn.fujitsu.com> <50B432CA.70804@cn.fujitsu.com> <87zk1t4lt4.fsf@xmission.com> Mime-Version: 1.0 Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: "x86@kernel.org" , Marcelo Tosatti , Gleb Natapov , "kexec@lists.infradead.org" , "kvm@vger.kernel.org" , "linux-kernel@vger.kernel.org" To: "Eric W. Biederman" Return-path: Received: from cn.fujitsu.com ([222.73.24.84]:19726 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1751585Ab2LEH5g convert rfc822-to-8bit (ORCPT ); Wed, 5 Dec 2012 02:57:36 -0500 In-Reply-To: <87zk1t4lt4.fsf@xmission.com> Sender: kvm-owner@vger.kernel.org List-ID: =D3=DA 2012=C4=EA12=D4=C205=C8=D5 04:14, Eric W. Biederman =D0=B4=B5=C0= : > Zhang Yanfei writes: >=20 >> This patch provides a way to VMCLEAR VMCSs related to guests >> on all cpus before executing the VMXOFF when doing kdump. This >> is used to ensure the VMCSs in the vmcore updated and >> non-corrupted. >=20 > Apologies for the delay I have been travelling, and I wanted > to at least read through the code. >=20 > Overall I think this is good but I have one nit, and I see one real > problem with this code. >=20 >> +/* >> + * This is used to VMCLEAR all VMCSs loaded on the >> + * processor. And when loading kvm_intel module, the >> + * callback function pointer will be assigned. >> + */ >> +void (*crash_vmclear_loaded_vmcss)(void) =3D NULL; >> +EXPORT_SYMBOL_GPL(crash_vmclear_loaded_vmcss); >> + >> +static inline void cpu_emergency_vmclear_loaded_vmcss(void) >> +{ >> + if (crash_vmclear_loaded_vmcss) >> + crash_vmclear_loaded_vmcss(); >> +} >=20 > The nit is the use of emergency instead of crash in the name. ok, emergency -> crash >=20 > The problem is that this is potentially a NULL pointer dereference if > kvm-intel is removed. The easist fix would be in your second patch t= o > just make it impossible to unload the kvm-intel module. Otherwise > there the deference of crash_vmclear_loaded_vmcss needs to be rcu > protected, with a syncrhonize_rcu after the pointer is set to NULL in > the unload path. Ah, thanks for this comment. I think I will use the rcu machanism to solve the problem. >=20 > Otherwise I have no objections to this code. Thanks for your review. I will update the patch and resend it. Thanks Zhang Yanfei