From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gleb Natapov Subject: Re: [PATCH] KVM-Use value reading from MSR when construct the eptp in VMX mode Date: Mon, 25 Aug 2014 17:04:07 +0300 Message-ID: <20140825140407.GH18167@minantech.com> References: <20140824093759.GG18167@minantech.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, pbonzini@redhat.com, "wanpeng.li" To: Dennis Chen Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On Mon, Aug 25, 2014 at 11:16:34AM +0800, Dennis Chen wrote: > On Sun, Aug 24, 2014 at 5:38 PM, Gleb Natapov wrote: > > On Sun, Aug 24, 2014 at 11:54:32AM +0800, Dennis Chen wrote: > >> This patch is used to construct the eptp in vmx mode with values > >> readed from MSR according to the intel x86 software developer's > >> manual. > >> > >> static u64 construct_eptp(unsigned long root_hpa) > >> { > >> - u64 eptp; > >> + u64 eptp, pwl; > >> + > >> + if (cpu_has_vmx_ept_4levels()) > >> + pwl = VMX_EPT_DEFAULT_GAW << VMX_EPT_GAW_EPTP_SHIFT; > >> + else { > >> + WARN(1, "Unsupported page-walk length of 4.\n"); > > Page-walk length of 4 is the only one that is supported. > > > Since there is a bit 6 in IA32_VMX_EPT_VPID_CAP MSR indicating the > support for the page-walk length, I think sanity check is necessary. > But I just checked the code, it's already done in the hardware_setup() > function which will disable ept feature if the page-wake length is not > 4. Gleb, any comments for the memory type check part? Looks fine, but are there CPUs out there that do not support WB for eptp? Since there was no bug reports about it I assume no. -- Gleb.