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 1TP4a2-0006hc-B9 for kexec@lists.infradead.org; Fri, 19 Oct 2012 04:53:15 +0000 Message-ID: <5080DC34.1080503@cn.fujitsu.com> Date: Fri, 19 Oct 2012 12:51:00 +0800 From: Zhang Yanfei MIME-Version: 1.0 Subject: Re: [PATCH 0/3] x86: clear vmcss on all cpus when doing kdump if necessary References: <5077BB7B.4030203@cn.fujitsu.com> <507C2F18.8080904@redhat.com> <507E17C0.9070305@cn.fujitsu.com> <507E8575.4040908@redhat.com> <507F5762.3060208@cn.fujitsu.com> <507FE020.7040805@redhat.com> In-Reply-To: <507FE020.7040805@redhat.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: kexec-bounces@lists.infradead.org Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: Avi Kivity Cc: x86@kernel.org, "kvm@vger.kernel.org" , linux-doc@vger.kernel.org, "Hao, Xudong" , mtosatti@redhat.com, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, "Nakajima, Jun" 5LqOIDIwMTLlubQxMOaciDE45pelIDE4OjU1LCBBdmkgS2l2aXR5IOWGmemBkzoKPiBPbiAxMC8x OC8yMDEyIDAzOjEyIEFNLCBaaGFuZyBZYW5mZWkgd3JvdGU6Cj4+IOS6jiAyMDEy5bm0MTDmnIgx N+aXpSAxODoxNiwgQXZpIEtpdml0eSDlhpnpgZM6Cj4+PiBPbiAxMC8xNy8yMDEyIDA0OjI4IEFN LCBaaGFuZyBZYW5mZWkgd3JvdGU6Cj4+Pj4g5LqOIDIwMTLlubQxMOaciDE15pelIDIzOjQzLCBB dmkgS2l2aXR5IOWGmemBkzoKPj4+Pj4gT24gMTAvMTIvMjAxMiAwODo0MCBBTSwgWmhhbmcgWWFu ZmVpIHdyb3RlOgo+Pj4+Pj4gQ3VycmVudGx5LCBrZHVtcCBqdXN0IG1ha2VzIGFsbCB0aGUgbG9n aWNhbCBwcm9jZXNzb3JzIGxlYXZlIFZNWCBvcGVyYXRpb24gYnkKPj4+Pj4+IGV4ZWN1dGluZyBW TVhPRkYgaW5zdHJ1Y3Rpb24sIHNvIGFueSBWTUNTcyBhY3RpdmUgb24gdGhlIGxvZ2ljYWwgcHJv Y2Vzc29ycyBtYXkKPj4+Pj4+IGJlIGNvcnJ1cHRlZC4gQnV0LCBzb21ldGltZXMsIHdlIG5lZWQg dGhlIFZNQ1NzIHRvIGRlYnVnIGd1ZXN0IGltYWdlcyBjb250YWluZWQKPj4+Pj4+IGluIHRoZSBo b3N0IHZtY29yZS4gVG8gcHJldmVudCB0aGUgY29ycnVwdGlvbiwgd2Ugc2hvdWxkIFZNQ0xFQVIg dGhlIFZNQ1NzIGJlZm9yZQo+Pj4+Pj4gZXhlY3V0aW5nIHRoZSBWTVhPRkYgaW5zdHJ1Y3Rpb24u Cj4+Pj4+Cj4+Pj4+IEhvdyBoYXZlIHlvdSB2ZXJpZmllZCB0aGF0IFZNWE9GRiBkb2Vzbid0IGZs dXNoIGNhY2hlZCBWTUNTcyBhbHJlYWR5Pwo+Pj4+Pgo+Pj4+Cj4+Pj4gSSB0cmllZCBzb21lIHRl c3RzLCBmb3IgZXhhbXBsZSwgSSBtYWRlIGNvcGllcyBmb3IgZXZlcnkgdm1jcywgYW5kIGluIHRo ZSBrZHVtcAo+Pj4+IHBhdGgsIEkgYmFja2VkIHVwIGFsbCB0aGUgbG9hZGVkIHZtY3MgaW50byB0 aGUgY29waWVzIGJlZm9yZSB2bXhvZmYuCj4+Pj4gQWZ0ZXIgZ2VuZXJhdGluZyB0aGUgdm1jb3Jl LCBJIHJldHJpZXZlIHRoZSB2bWNzcyBhbmQgdGhlaXIgY29waWVzLCBhbmQgY29tcGFyZSB0aGVt LAo+Pj4+IG5vIGRpZmZlcmVuY2VzLgo+Pj4+Cj4+Pj4gQW5vdGhlciB0ZXN0IGlzIHVzaW5nIFZN Q0xFQVIgdG8gY2xlYXIgYWxsIHRoZSBsb2FkZWQgdm1jcyBiZWZvcmUgVk1YT0ZGLAo+Pj4+IGFu ZCBjb21wYXJlIHRoZSB2bWNzcyBhbmQgdGhlaXIgY29waWVzLCB0aGVyZSBhcmUgaW5kZWVkIGRp ZmZlcmVuY2VzIGJldHdlZW4gdGhlCj4+Pj4gdm1jcyBhbmQgaXRzIGNvcHkuCj4+Pj4KPj4+PiBJ IGtub3cgdGhlIHRlc3RzIG1heSBiZSBub3Qgc28gY29udmluY2luZywgZm9yIGV4YW1wbGUsIEkg dXNlZCBtZW1jcHkgdG8gYmFjayB1cAo+Pj4+IHRoZSB2bWNzcyBhbmQgaXQgaXMgYW4gb3JkaW5h cnkgbWVtb3J5IG9wZXJhdGlvbi4gQnV0IHRvIGVuc3VyZSB0aGUgbm9uLWNvcnJ1cHRpb24KPj4+ PiBvZiB0aGUgdm1jc3MgaW4gdGhlIHZtY29yZSwgSSB0aGluayB3ZSBzaG91bGQgVk1DTEVBUiB0 aGUgdm1jc3MgYmVmb3JlIFZNWE9GRiBqdXN0Cj4+Pj4gYXMgdGhlIEludGVsIHNwZWMgc2F5cy4K Pj4+Cj4+PiBTb3JyeSwgSSB3YXMgdW5jbGVhciAtLSBJIHdhcyByZWZlcnJpbmcgdG8gdGhlIHNw ZWMsIEkgd2Fzbid0IHN1cmUKPj4+IHdoZXRoZXIgVk1YT0ZGIGlzIGRlZmluZWQgdG8gZmx1c2gg Vk1DU2VzIG9yIHdoZXRoZXIgaXQganVzdCBpbnZhbGlkYXRlcwo+Pj4gb24tY2hpcCBjYWNoZXMg c28gdGhhdCBpdCB3b24ndCBmbHVzaCB0aGVtIG91dCBpbiB0aGUgZnV0dXJlLCBjb3JydXB0aW5n Cj4+PiBtZW1vcnkuICBXZSBkb24ndCB3YW50IHRvIGRlcGVuZCBvbiBhY3R1YWwgYmVoYXZpb3Vy IGFzIGl0IG1heSBjaGFuZ2UKPj4+IHdpdGggZnV0dXJlIHZlcnNpb24uCj4+Pgo+Pj4gQ29weWlu ZyBzb21lIEludGVsIGZvbGssIG1heWJlIHRoZXkgY2FuIGNsYXJpZnkgaXQuCj4+Pgo+Pgo+PiBZ ZXMsIHRoZSBJbnRlbCBzcGVjIHNheXMgIm1heSBiZSIgYWJvdXQgdGhlIFZNQ1MtY29ycnVwdGlv biB0aGluZy4gRnJvbQo+PiBjaGFwdGVyIDI0LjEwLjEgaW4gSW50ZWzCriA2NCBhbmQgSUEtMzIg QXJjaGl0ZWN0dXJlcyBTb2Z0d2FyZSBEZXZlbG9wZXLigJlzCj4+IE1hbnVhbCBWb2x1bWUgM0M6 U3lzdGVtIFByb2dyYW1taW5nIEd1aWRlLCBQYXJ0IDMsIHRoZXJlIGlzIHRoZSBkZXNjcmlwdGlv bjoKPj4KPj4gIklmIGEgbG9naWNhbCBwcm9jZXNzb3IgbGVhdmVzIFZNWCBvcGVyYXRpb24sIGFu eSBWTUNTcyBhY3RpdmUgb24gdGhhdCBsb2dpY2FsCj4+IHByb2Nlc3NvciBtYXkgYmUgY29ycnVw dGVkIChzZWUgYmVsb3cpLiBUbyBwcmV2ZW50IHN1Y2ggY29ycnVwdGlvbiBvZiBhIFZNQ1MgdGhh dAo+PiBtYXkgYmUgdXNlZCBlaXRoZXIgYWZ0ZXIgYSByZXR1cm4gdG8gVk1YIG9wZXJhdGlvbiBv ciBvbiBhbm90aGVyIGxvZ2ljYWwgcHJvY2Vzc29yLAo+PiBzb2Z0d2FyZSBzaG91bGQgVk1DTEVB UiB0aGF0IFZNQ1MgYmVmb3JlIGV4ZWN1dGluZyB0aGUgVk1YT0ZGIGluc3RydWN0aW9uIG9yCj4+ IHJlbW92aW5nIHBvd2VyIGZyb20gdGhlIHByb2Nlc3NvciAoZS5nLiwgYXMgcGFydCBvZiBhIHRy YW5zaXRpb24gdG8gdGhlIFMzIGFuZCBTNAo+PiBwb3dlciBzdGF0ZXMpLiIKPj4KPj4gT3VyIHB1 cnBvc2UgaXMgdG8gbWFrZSBzdXJlIHRoZSBWTUNTcyBpbiB0aGUgdm1jb3JlIGFyZSB1cGRhdGVk IGFuZCBub24tY29ycnVwdGVkLiBTbwo+PiBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uIGFi b3ZlLCBubyBtYXR0ZXIgd2hldGhlciBWTVhPRkYgaXMgZGVmaW5lZCB0byBmbHVzaAo+PiBWTUNT cyBvciB3aGV0aGVyIGl0IGp1c3QgaW52YWxpZGF0ZXMgb24tY2hpcCBjYWNoZXMsIHdlJ2QgYmV0 dGVyIFZNQ0xFQVIgdGhlCj4+IFZNQ1NzIGJlZm9yZSBleGVjdXRpbmcgdGhlIFZNWE9GRi4KPiAK PiBPaywgdGhhdCdzIGNsZWFyIHRoZW4uICBTbyBhbGwgd2UgbmVlZCBpcyB0byByZW1vdmUgdGhl IHN5c2N0bCBhbmQgY2xlYXIKPiBWTUNTcyB1bmNvbmRpdGlvbmFsbHkuCj4gCgpPSywgSSdsbCBt YWtlIHRoZSBuZXcgcGF0Y2ggYW5kIHJlc2VuZCBpdCBhZ2Fpbi4KClRoYW5rcwpaaGFuZyBZYW5m ZWkKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwprZXhl YyBtYWlsaW5nIGxpc3QKa2V4ZWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2tleGVjCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhang Yanfei Subject: Re: [PATCH 0/3] x86: clear vmcss on all cpus when doing kdump if necessary Date: Fri, 19 Oct 2012 12:51:00 +0800 Message-ID: <5080DC34.1080503@cn.fujitsu.com> References: <5077BB7B.4030203@cn.fujitsu.com> <507C2F18.8080904@redhat.com> <507E17C0.9070305@cn.fujitsu.com> <507E8575.4040908@redhat.com> <507F5762.3060208@cn.fujitsu.com> <507FE020.7040805@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: x86@kernel.org, kexec@lists.infradead.org, linux-doc@vger.kernel.org, mtosatti@redhat.com, linux-kernel@vger.kernel.org, "kvm@vger.kernel.org" , "Hao, Xudong" , "Nakajima, Jun" To: Avi Kivity Return-path: In-Reply-To: <507FE020.7040805@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org =E4=BA=8E 2012=E5=B9=B410=E6=9C=8818=E6=97=A5 18:55, Avi Kivity =E5=86=99= =E9=81=93: > On 10/18/2012 03:12 AM, Zhang Yanfei wrote: >> =E4=BA=8E 2012=E5=B9=B410=E6=9C=8817=E6=97=A5 18:16, Avi Kivity =E5=86= =99=E9=81=93: >>> On 10/17/2012 04:28 AM, Zhang Yanfei wrote: >>>> =E4=BA=8E 2012=E5=B9=B410=E6=9C=8815=E6=97=A5 23:43, Avi Kivity =E5= =86=99=E9=81=93: >>>>> On 10/12/2012 08:40 AM, Zhang Yanfei wrote: >>>>>> Currently, kdump just makes all the logical processors leave VMX= operation by >>>>>> executing VMXOFF instruction, so any VMCSs active on the logical= processors may >>>>>> be corrupted. But, sometimes, we need the VMCSs to debug guest i= mages contained >>>>>> in the host vmcore. To prevent the corruption, we should VMCLEAR= the VMCSs before >>>>>> executing the VMXOFF instruction. >>>>> >>>>> How have you verified that VMXOFF doesn't flush cached VMCSs alre= ady? >>>>> >>>> >>>> I tried some tests, for example, I made copies for every vmcs, and= in the kdump >>>> path, I backed up all the loaded vmcs into the copies before vmxof= f. >>>> After generating the vmcore, I retrieve the vmcss and their copies= , and compare them, >>>> no differences. >>>> >>>> Another test is using VMCLEAR to clear all the loaded vmcs before = VMXOFF, >>>> and compare the vmcss and their copies, there are indeed differenc= es between the >>>> vmcs and its copy. >>>> >>>> I know the tests may be not so convincing, for example, I used mem= cpy to back up >>>> the vmcss and it is an ordinary memory operation. But to ensure th= e non-corruption >>>> of the vmcss in the vmcore, I think we should VMCLEAR the vmcss be= fore VMXOFF just >>>> as the Intel spec says. >>> >>> Sorry, I was unclear -- I was referring to the spec, I wasn't sure >>> whether VMXOFF is defined to flush VMCSes or whether it just invali= dates >>> on-chip caches so that it won't flush them out in the future, corru= pting >>> memory. We don't want to depend on actual behaviour as it may chan= ge >>> with future version. >>> >>> Copying some Intel folk, maybe they can clarify it. >>> >> >> Yes, the Intel spec says "may be" about the VMCS-corruption thing. F= rom >> chapter 24.10.1 in Intel=C2=AE 64 and IA-32 Architectures Software D= eveloper=E2=80=99s >> Manual Volume 3C:System Programming Guide, Part 3, there is the desc= ription: >> >> "If a logical processor leaves VMX operation, any VMCSs active on th= at logical >> processor may be corrupted (see below). To prevent such corruption o= f a VMCS that >> may be used either after a return to VMX operation or on another log= ical processor, >> software should VMCLEAR that VMCS before executing the VMXOFF instru= ction or >> removing power from the processor (e.g., as part of a transition to = the S3 and S4 >> power states)." >> >> Our purpose is to make sure the VMCSs in the vmcore are updated and = non-corrupted. So >> according to the description above, no matter whether VMXOFF is defi= ned to flush >> VMCSs or whether it just invalidates on-chip caches, we'd better VMC= LEAR the >> VMCSs before executing the VMXOFF. >=20 > Ok, that's clear then. So all we need is to remove the sysctl and cl= ear > VMCSs unconditionally. >=20 OK, I'll make the new patch and resend it again. Thanks Zhang Yanfei