From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <54579F4B.8050404@redhat.com> Date: Mon, 03 Nov 2014 16:29:15 +0100 From: Paolo Bonzini MIME-Version: 1.0 To: Ben Hutchings CC: linux-kernel@vger.kernel.org, stable@vger.kernel.org, akpm@linux-foundation.org, Jun Nakajima , Xinhao Xu , Yang Zhang , Xiao Guangrong , Gleb Natapov , Nadav Har'El Subject: Re: [PATCH 3.2 087/102] nEPT: Nested INVEPT References: <5455F35E.1040304@redhat.com> <1415022261.27313.25.camel@decadent.org.uk> In-Reply-To: <1415022261.27313.25.camel@decadent.org.uk> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: On 03/11/2014 14:44, Ben Hutchings wrote: >> You can just use the same scheme as your patch 88/102: > Why is that? Why should I not use the upstream version? Because it makes no sense to invalidate nested EPT page tables, if the kernel cannot make nested EPT page tables in the first place. I think that this "if" in your patch should always trigger, thus making your large patch equivalent to my small patch: + if (!(nested_vmx_secondary_ctls_high & SECONDARY_EXEC_ENABLE_EPT) || + !(nested_vmx_ept_caps & VMX_EPT_INVEPT_BIT)) { + kvm_queue_exception(vcpu, UD_VECTOR); + return 1; + } ... but without looking at the entire source of vmx.c in the relatively old 3.2 kernel, I'd rather play it safe and avoid introducing bugs in case the above turns out not to be true. Paolo