From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Yang, Sheng" Subject: [PATCH 2/8] KVM: MMU: Move some defination Date: Fri, 25 Apr 2008 16:24:07 +0800 Message-ID: <200804251624.07787.sheng.yang@intel.com> Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_nUZEIlu+K8vdXrs" Cc: kvm-devel To: Avi Kivity Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces@lists.sourceforge.net Errors-To: kvm-devel-bounces@lists.sourceforge.net List-Id: kvm.vger.kernel.org --Boundary-00=_nUZEIlu+K8vdXrs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline =46rom 75e9d921390a29ecf9c85dd1370103c921beacd7 Mon Sep 17 00:00:00 2001 =46rom: Sheng Yang Date: Fri, 25 Apr 2008 10:17:08 +0800 Subject: [PATCH 2/8] KVM: MMU: Move some defination Move some defination to mmu.h in order to building common table entries. Signed-off-by: Sheng Yang =2D-- arch/x86/kvm/mmu.c | 34 ---------------------------------- arch/x86/kvm/mmu.h | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 2ad6f54..bcfaf7e 100644 =2D-- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c @@ -79,36 +79,6 @@ static int dbg =3D 1; } #endif =2D#define PT64_PT_BITS 9 =2D#define PT64_ENT_PER_PAGE (1 << PT64_PT_BITS) =2D#define PT32_PT_BITS 10 =2D#define PT32_ENT_PER_PAGE (1 << PT32_PT_BITS) =2D =2D#define PT_WRITABLE_SHIFT 1 =2D =2D#define PT_PRESENT_MASK (1ULL << 0) =2D#define PT_WRITABLE_MASK (1ULL << PT_WRITABLE_SHIFT) =2D#define PT_USER_MASK (1ULL << 2) =2D#define PT_PWT_MASK (1ULL << 3) =2D#define PT_PCD_MASK (1ULL << 4) =2D#define PT_ACCESSED_MASK (1ULL << 5) =2D#define PT_DIRTY_MASK (1ULL << 6) =2D#define PT_PAGE_SIZE_MASK (1ULL << 7) =2D#define PT_PAT_MASK (1ULL << 7) =2D#define PT_GLOBAL_MASK (1ULL << 8) =2D#define PT64_NX_SHIFT 63 =2D#define PT64_NX_MASK (1ULL << PT64_NX_SHIFT) =2D =2D#define PT_PAT_SHIFT 7 =2D#define PT_DIR_PAT_SHIFT 12 =2D#define PT_DIR_PAT_MASK (1ULL << PT_DIR_PAT_SHIFT) =2D =2D#define PT32_DIR_PSE36_SIZE 4 =2D#define PT32_DIR_PSE36_SHIFT 13 =2D#define PT32_DIR_PSE36_MASK \ =2D (((1ULL << PT32_DIR_PSE36_SIZE) - 1) << PT32_DIR_PSE36_SHIFT) =2D =2D #define PT_FIRST_AVAIL_BITS_SHIFT 9 #define PT64_SECOND_AVAIL_BITS_SHIFT 52 @@ -154,10 +124,6 @@ static int dbg =3D 1; #define PFERR_USER_MASK (1U << 2) #define PFERR_FETCH_MASK (1U << 4) =2D#define PT64_ROOT_LEVEL 4 =2D#define PT32_ROOT_LEVEL 2 =2D#define PT32E_ROOT_LEVEL 3 =2D #define PT_DIRECTORY_LEVEL 2 #define PT_PAGE_TABLE_LEVEL 1 diff --git a/arch/x86/kvm/mmu.h b/arch/x86/kvm/mmu.h index e64e9f5..a4fcb78 100644 =2D-- a/arch/x86/kvm/mmu.h +++ b/arch/x86/kvm/mmu.h @@ -9,6 +9,39 @@ #define TDP_ROOT_LEVEL PT32E_ROOT_LEVEL #endif +#define PT64_PT_BITS 9 +#define PT64_ENT_PER_PAGE (1 << PT64_PT_BITS) +#define PT32_PT_BITS 10 +#define PT32_ENT_PER_PAGE (1 << PT32_PT_BITS) + +#define PT_WRITABLE_SHIFT 1 + +#define PT_PRESENT_MASK (1ULL << 0) +#define PT_WRITABLE_MASK (1ULL << PT_WRITABLE_SHIFT) +#define PT_USER_MASK (1ULL << 2) +#define PT_PWT_MASK (1ULL << 3) +#define PT_PCD_MASK (1ULL << 4) +#define PT_ACCESSED_MASK (1ULL << 5) +#define PT_DIRTY_MASK (1ULL << 6) +#define PT_PAGE_SIZE_MASK (1ULL << 7) +#define PT_PAT_MASK (1ULL << 7) +#define PT_GLOBAL_MASK (1ULL << 8) +#define PT64_NX_SHIFT 63 +#define PT64_NX_MASK (1ULL << PT64_NX_SHIFT) + +#define PT_PAT_SHIFT 7 +#define PT_DIR_PAT_SHIFT 12 +#define PT_DIR_PAT_MASK (1ULL << PT_DIR_PAT_SHIFT) + +#define PT32_DIR_PSE36_SIZE 4 +#define PT32_DIR_PSE36_SHIFT 13 +#define PT32_DIR_PSE36_MASK \ + (((1ULL << PT32_DIR_PSE36_SIZE) - 1) << PT32_DIR_PSE36_SHIFT) + +#define PT64_ROOT_LEVEL 4 +#define PT32_ROOT_LEVEL 2 +#define PT32E_ROOT_LEVEL 3 + static inline void kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu) { if (unlikely(vcpu->kvm->arch.n_free_mmu_pages < KVM_MIN_FREE_MMU_PAGES)) =2D- 1.5.4.5 --Boundary-00=_nUZEIlu+K8vdXrs Content-Type: text/x-diff; charset="utf-8"; name="0002-KVM-MMU-Move-some-defination.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0002-KVM-MMU-Move-some-defination.patch" =46rom 75e9d921390a29ecf9c85dd1370103c921beacd7 Mon Sep 17 00:00:00 2001 =46rom: Sheng Yang Date: Fri, 25 Apr 2008 10:17:08 +0800 Subject: [PATCH 2/8] KVM: MMU: Move some defination Move some defination to mmu.h in order to building common table entries. Signed-off-by: Sheng Yang =2D-- arch/x86/kvm/mmu.c | 34 ---------------------------------- arch/x86/kvm/mmu.h | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 2ad6f54..bcfaf7e 100644 =2D-- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c @@ -79,36 +79,6 @@ static int dbg =3D 1; } #endif =20 =2D#define PT64_PT_BITS 9 =2D#define PT64_ENT_PER_PAGE (1 << PT64_PT_BITS) =2D#define PT32_PT_BITS 10 =2D#define PT32_ENT_PER_PAGE (1 << PT32_PT_BITS) =2D =2D#define PT_WRITABLE_SHIFT 1 =2D =2D#define PT_PRESENT_MASK (1ULL << 0) =2D#define PT_WRITABLE_MASK (1ULL << PT_WRITABLE_SHIFT) =2D#define PT_USER_MASK (1ULL << 2) =2D#define PT_PWT_MASK (1ULL << 3) =2D#define PT_PCD_MASK (1ULL << 4) =2D#define PT_ACCESSED_MASK (1ULL << 5) =2D#define PT_DIRTY_MASK (1ULL << 6) =2D#define PT_PAGE_SIZE_MASK (1ULL << 7) =2D#define PT_PAT_MASK (1ULL << 7) =2D#define PT_GLOBAL_MASK (1ULL << 8) =2D#define PT64_NX_SHIFT 63 =2D#define PT64_NX_MASK (1ULL << PT64_NX_SHIFT) =2D =2D#define PT_PAT_SHIFT 7 =2D#define PT_DIR_PAT_SHIFT 12 =2D#define PT_DIR_PAT_MASK (1ULL << PT_DIR_PAT_SHIFT) =2D =2D#define PT32_DIR_PSE36_SIZE 4 =2D#define PT32_DIR_PSE36_SHIFT 13 =2D#define PT32_DIR_PSE36_MASK \ =2D (((1ULL << PT32_DIR_PSE36_SIZE) - 1) << PT32_DIR_PSE36_SHIFT) =2D =2D #define PT_FIRST_AVAIL_BITS_SHIFT 9 #define PT64_SECOND_AVAIL_BITS_SHIFT 52 =20 @@ -154,10 +124,6 @@ static int dbg =3D 1; #define PFERR_USER_MASK (1U << 2) #define PFERR_FETCH_MASK (1U << 4) =20 =2D#define PT64_ROOT_LEVEL 4 =2D#define PT32_ROOT_LEVEL 2 =2D#define PT32E_ROOT_LEVEL 3 =2D #define PT_DIRECTORY_LEVEL 2 #define PT_PAGE_TABLE_LEVEL 1 =20 diff --git a/arch/x86/kvm/mmu.h b/arch/x86/kvm/mmu.h index e64e9f5..a4fcb78 100644 =2D-- a/arch/x86/kvm/mmu.h +++ b/arch/x86/kvm/mmu.h @@ -9,6 +9,39 @@ #define TDP_ROOT_LEVEL PT32E_ROOT_LEVEL #endif =20 +#define PT64_PT_BITS 9 +#define PT64_ENT_PER_PAGE (1 << PT64_PT_BITS) +#define PT32_PT_BITS 10 +#define PT32_ENT_PER_PAGE (1 << PT32_PT_BITS) + +#define PT_WRITABLE_SHIFT 1 + +#define PT_PRESENT_MASK (1ULL << 0) +#define PT_WRITABLE_MASK (1ULL << PT_WRITABLE_SHIFT) +#define PT_USER_MASK (1ULL << 2) +#define PT_PWT_MASK (1ULL << 3) +#define PT_PCD_MASK (1ULL << 4) +#define PT_ACCESSED_MASK (1ULL << 5) +#define PT_DIRTY_MASK (1ULL << 6) +#define PT_PAGE_SIZE_MASK (1ULL << 7) +#define PT_PAT_MASK (1ULL << 7) +#define PT_GLOBAL_MASK (1ULL << 8) +#define PT64_NX_SHIFT 63 +#define PT64_NX_MASK (1ULL << PT64_NX_SHIFT) + +#define PT_PAT_SHIFT 7 +#define PT_DIR_PAT_SHIFT 12 +#define PT_DIR_PAT_MASK (1ULL << PT_DIR_PAT_SHIFT) + +#define PT32_DIR_PSE36_SIZE 4 +#define PT32_DIR_PSE36_SHIFT 13 +#define PT32_DIR_PSE36_MASK \ + (((1ULL << PT32_DIR_PSE36_SIZE) - 1) << PT32_DIR_PSE36_SHIFT) + +#define PT64_ROOT_LEVEL 4 +#define PT32_ROOT_LEVEL 2 +#define PT32E_ROOT_LEVEL 3 + static inline void kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu) { if (unlikely(vcpu->kvm->arch.n_free_mmu_pages < KVM_MIN_FREE_MMU_PAGES)) =2D-=20 1.5.4.5 --Boundary-00=_nUZEIlu+K8vdXrs Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone --Boundary-00=_nUZEIlu+K8vdXrs Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel --Boundary-00=_nUZEIlu+K8vdXrs--