From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Guangrong Subject: Re: [PATCH v3 04/13] nEPT: Define EPT-specific link_shadow_page() Date: Tue, 21 May 2013 16:15:05 +0800 Message-ID: <519B2D09.80201@linux.vnet.ibm.com> References: <1368939152-11406-1-git-send-email-jun.nakajima@intel.com> <1368939152-11406-4-git-send-email-jun.nakajima@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, Gleb Natapov , Paolo Bonzini To: Jun Nakajima Return-path: Received: from e23smtp07.au.ibm.com ([202.81.31.140]:44450 "EHLO e23smtp07.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751897Ab3EUIPR (ORCPT ); Tue, 21 May 2013 04:15:17 -0400 Received: from /spool/local by e23smtp07.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 21 May 2013 18:04:54 +1000 Received: from d23relay05.au.ibm.com (d23relay05.au.ibm.com [9.190.235.152]) by d23dlp03.au.ibm.com (Postfix) with ESMTP id 15E963578051 for ; Tue, 21 May 2013 18:15:10 +1000 (EST) Received: from d23av02.au.ibm.com (d23av02.au.ibm.com [9.190.235.138]) by d23relay05.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r4L80rf210485914 for ; Tue, 21 May 2013 18:00:54 +1000 Received: from d23av02.au.ibm.com (loopback [127.0.0.1]) by d23av02.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r4L8F8t9014506 for ; Tue, 21 May 2013 18:15:09 +1000 In-Reply-To: <1368939152-11406-4-git-send-email-jun.nakajima@intel.com> Sender: kvm-owner@vger.kernel.org List-ID: On 05/19/2013 12:52 PM, Jun Nakajima wrote: > From: Nadav Har'El > > Since link_shadow_page() is used by a routine in mmu.c, add an > EPT-specific link_shadow_page() in paging_tmp.h, rather than moving > it. > > Signed-off-by: Nadav Har'El > Signed-off-by: Jun Nakajima > Signed-off-by: Xinhao Xu > --- > arch/x86/kvm/paging_tmpl.h | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h > index 4c45654..dc495f9 100644 > --- a/arch/x86/kvm/paging_tmpl.h > +++ b/arch/x86/kvm/paging_tmpl.h > @@ -461,6 +461,18 @@ static void FNAME(pte_prefetch)(struct kvm_vcpu *vcpu, struct guest_walker *gw, > } > } > > +#if PTTYPE == PTTYPE_EPT > +static void FNAME(link_shadow_page)(u64 *sptep, struct kvm_mmu_page *sp) > +{ > + u64 spte; > + > + spte = __pa(sp->spt) | VMX_EPT_READABLE_MASK | VMX_EPT_WRITABLE_MASK | > + VMX_EPT_EXECUTABLE_MASK; > + > + mmu_spte_set(sptep, spte); > +} > +#endif The only difference between this function and the current link_shadow_page() is shadow_accessed_mask. Can we add a parameter to eliminate this difference, some like: static void link_shadow_page(u64 *sptep, struct kvm_mmu_page *sp, bool accessed) { u64 spte; spte = __pa(sp->spt) | PT_PRESENT_MASK | PT_WRITABLE_MASK | shadow_user_mask | shadow_x_mask; if (accessed) spte |= shadow_accessed_mask; mmu_spte_set(sptep, spte); } ?