From: Avi Kivity <avi@redhat.com>
To: Orit Wasserman <owasserm@redhat.com>
Cc: "Nadav Har'El" <nyh@math.technion.ac.il>,
kvm@vger.kernel.org, "Roedel, Joerg" <Joerg.Roedel@amd.com>,
abelg@il.ibm.com
Subject: Re: [PATCH 02/10] nEPT: MMU context for nested EPT
Date: Mon, 14 Nov 2011 10:25:37 +0200 [thread overview]
Message-ID: <4EC0D081.4020106@redhat.com> (raw)
In-Reply-To: <4EC00BC1.7000101@redhat.com>
On 11/13/2011 08:26 PM, Orit Wasserman wrote:
> >
> >> int kvm_mmu_get_spte_hierarchy(struct kvm_vcpu *vcpu, u64 addr, u64 sptes[4]);
> >> void kvm_mmu_set_mmio_spte_mask(u64 mmio_mask);
> >> int handle_mmio_page_fault_common(struct kvm_vcpu *vcpu, u64 addr, bool direct);
> >> diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
> >> index 507e2b8..70d4cfd 100644
> >> --- a/arch/x86/kvm/paging_tmpl.h
> >> +++ b/arch/x86/kvm/paging_tmpl.h
> >> @@ -39,6 +39,21 @@
> >> #define CMPXCHG cmpxchg64
> >> #define PT_MAX_FULL_LEVELS 2
> >> #endif
> >> +#elif PTTYPE == EPT
> >> + #define pt_element_t u64
> >> + #define FNAME(name) EPT_##name
> >> + #define PT_BASE_ADDR_MASK PT64_BASE_ADDR_MASK
> >> + #define PT_LVL_ADDR_MASK(lvl) PT64_LVL_ADDR_MASK(lvl)
> >> + #define PT_LVL_OFFSET_MASK(lvl) PT64_LVL_OFFSET_MASK(lvl)
> >> + #define PT_INDEX(addr, level) PT64_INDEX(addr, level)
> >> + #define PT_LEVEL_BITS PT64_LEVEL_BITS
> >> + #ifdef CONFIG_X86_64
> >> + #define PT_MAX_FULL_LEVELS 4
> >> + #define CMPXCHG cmpxchg
> >> + #else
> >> + #define CMPXCHG cmpxchg64
> >> + #define PT_MAX_FULL_LEVELS 2
> >> + #endif
> >
> > The various masks should be defined here, to avoid lots of #ifdefs later.
> >
>
> That what I did first but than I was afraid that the MASK will be changed for mmu.c too.
> so I decided on ifdefs.
> The more I think about it I think we need rapper function for mask checking (at least for this file).
> What do you think ?
Either should work, as long as the main logic is clean.
> >> for (;;) {
> >> gfn_t real_gfn;
> >> @@ -186,9 +215,14 @@ retry_walk:
> >> pte_gpa = gfn_to_gpa(table_gfn) + offset;
> >> walker->table_gfn[walker->level - 1] = table_gfn;
> >> walker->pte_gpa[walker->level - 1] = pte_gpa;
> >> -
> >> +#if PTTYPE == EPT
> >> + real_gfn = mmu->translate_gpa(vcpu, gfn_to_gpa(table_gfn),
> >> + EPT_WRITABLE_MASK);
> >> +#else
> >> real_gfn = mmu->translate_gpa(vcpu, gfn_to_gpa(table_gfn),
> >> PFERR_USER_MASK|PFERR_WRITE_MASK);
> >> +#endif
> >> +
> >
> > Unneeded, I think.
>
> Is it because translate_nested_gpa always set USER_MASK ?
Yes... maybe that function needs to do something like
access |= mmu->default_access;
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2011-11-14 8:25 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-10 9:57 [PATCH 0/10] nEPT: Nested EPT support for Nested VMX Nadav Har'El
2011-11-10 9:58 ` [PATCH 01/10] nEPT: Module option Nadav Har'El
2011-11-10 12:23 ` Avi Kivity
2011-11-10 14:21 ` Nadav Har'El
2011-11-10 14:38 ` Avi Kivity
2011-11-10 15:14 ` Nadav Har'El
2011-11-10 15:21 ` Avi Kivity
2011-11-10 9:58 ` [PATCH 02/10] nEPT: MMU context for nested EPT Nadav Har'El
2011-11-10 10:31 ` Avi Kivity
2011-11-10 12:49 ` Avi Kivity
2011-11-10 14:40 ` Nadav Har'El
2011-11-10 15:19 ` Avi Kivity
2011-11-10 20:05 ` Nadav Har'El
2011-11-12 10:39 ` Avi Kivity
2011-11-12 21:37 ` Nadav Har'El
2011-11-13 9:10 ` Avi Kivity
2011-11-13 11:30 ` Orit Wasserman
2011-11-13 14:32 ` Avi Kivity
2011-11-13 18:26 ` Orit Wasserman
2011-11-14 8:25 ` Avi Kivity [this message]
2011-12-08 15:21 ` Nadav Har'El
2011-12-06 12:40 ` Nadav Har'El
2011-12-06 13:07 ` Avi Kivity
2011-11-23 15:06 ` Nadav Har'El
2011-11-23 15:44 ` Nadav Har'El
2011-11-24 13:36 ` Avi Kivity
2011-12-07 9:06 ` Nadav Har'El
2011-12-07 10:10 ` Avi Kivity
2011-11-10 9:59 ` [PATCH 03/10] nEPT: Fix cr3 handling in nested exit and entry Nadav Har'El
2011-11-10 9:59 ` [PATCH 04/10] nEPT: Fix page table format in nested EPT Nadav Har'El
2011-11-10 10:37 ` Avi Kivity
2011-11-10 11:03 ` Nadav Har'El
2011-11-10 12:21 ` Avi Kivity
2011-11-10 12:50 ` Avi Kivity
2011-11-10 13:07 ` Orit Wasserman
2011-11-10 10:00 ` [PATCH 05/10] nEPT: Fix wrong test in kvm_set_cr3 Nadav Har'El
2011-11-10 10:00 ` [PATCH 06/10] nEPT: Some additional comments Nadav Har'El
2011-11-10 10:01 ` [PATCH 07/10] nEPT: Advertise EPT to L1 Nadav Har'El
2011-11-10 10:01 ` [PATCH 08/10] nEPT: Nested INVEPT Nadav Har'El
2011-11-10 12:17 ` Avi Kivity
2011-12-11 14:24 ` Nadav Har'El
2011-12-11 14:37 ` Avi Kivity
2011-11-10 10:02 ` [PATCH 09/10] nEPT: Documentation Nadav Har'El
2011-11-10 10:02 ` [PATCH 10/10] nEPT: Miscelleneous cleanups Nadav Har'El
2011-11-10 12:26 ` [PATCH 0/10] nEPT: Nested EPT support for Nested VMX Avi Kivity
2011-11-13 8:52 ` Nadav Har'El
2011-11-13 9:21 ` Avi Kivity
2011-12-12 11:37 ` Nadav Har'El
2011-12-12 13:04 ` Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EC0D081.4020106@redhat.com \
--to=avi@redhat.com \
--cc=Joerg.Roedel@amd.com \
--cc=abelg@il.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=nyh@math.technion.ac.il \
--cc=owasserm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.