From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 0/3] x86: clear vmcss on all cpus when doing kdump if necessary Date: Wed, 17 Oct 2012 12:16:21 +0200 Message-ID: <507E8575.4040908@redhat.com> References: <5077BB7B.4030203@cn.fujitsu.com> <507C2F18.8080904@redhat.com> <507E17C0.9070305@cn.fujitsu.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: Zhang Yanfei Return-path: In-Reply-To: <507E17C0.9070305@cn.fujitsu.com> Sender: linux-doc-owner@vger.kernel.org List-Id: kvm.vger.kernel.org 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 op= eration by >>> executing VMXOFF instruction, so any VMCSs active on the logical pr= ocessors may >>> be corrupted. But, sometimes, we need the VMCSs to debug guest imag= es contained >>> in the host vmcore. To prevent the corruption, we should VMCLEAR th= e VMCSs before >>> executing the VMXOFF instruction. >>=20 >> How have you verified that VMXOFF doesn't flush cached VMCSs already= ? >>=20 >=20 > 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 vmxoff. > After generating the vmcore, I retrieve the vmcss and their copies, a= nd compare them, > no differences. >=20 > Another test is using VMCLEAR to clear all the loaded vmcs before VMX= OFF, > and compare the vmcss and their copies, there are indeed differences = between the > vmcs and its copy. >=20 > I know the tests may be not so convincing, for example, I used memcpy= to back up > the vmcss and it is an ordinary memory operation. But to ensure the n= on-corruption > of the vmcss in the vmcore, I think we should VMCLEAR the vmcss befor= e 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 invalidate= s on-chip caches so that it won't flush them out in the future, corruptin= g memory. We don't want to depend on actual behaviour as it may change with future version. Copying some Intel folk, maybe they can clarify it. >=20 >>> >>> The patch set provides an alternative way to clear VMCSs related to= guests >>> on all cpus when host is doing kdump. >>> >>=20 >> I'm not sure the sysctl is really necessary. The only reason to tur= n if >> off is if the corruption is so severe that the loaded vmcs list itse= lf >> causes a crash. I think it should be rare enough that we can do it >> unconditionally. >>=20 >=20 > You mean not using sysctl and just let VMCLEAR-VMCSS be a default beh= aviour? If so, > I agree with you. Yes, that's what I meant. --=20 error compiling committee.c: too many arguments to function