diff options
author | Liu Yu <yu.liu@freescale.com> | 2011-06-14 19:34:59 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-07-12 06:16:38 -0400 |
commit | 08b7fa92b9250eab0f493f7721977e781a887b3d (patch) | |
tree | c798369236627a144d541809b9c298332509455e /arch/powerpc/include/asm/kvm_e500.h | |
parent | a4cd8b23ac5786943202c0174c717956947db43c (diff) |
KVM: PPC: e500: Stop keeping shadow TLB
Instead of a fully separate set of TLB entries, keep just the
pfn and dirty status.
Signed-off-by: Liu Yu <yu.liu@freescale.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/include/asm/kvm_e500.h')
-rw-r--r-- | arch/powerpc/include/asm/kvm_e500.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/arch/powerpc/include/asm/kvm_e500.h b/arch/powerpc/include/asm/kvm_e500.h index f181ad1d6045..4a6d77a8b8a0 100644 --- a/arch/powerpc/include/asm/kvm_e500.h +++ b/arch/powerpc/include/asm/kvm_e500.h | |||
@@ -29,15 +29,23 @@ struct tlbe{ | |||
29 | u32 mas7; | 29 | u32 mas7; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | #define E500_TLB_VALID 1 | ||
33 | #define E500_TLB_DIRTY 2 | ||
34 | |||
35 | struct tlbe_priv { | ||
36 | pfn_t pfn; | ||
37 | unsigned int flags; /* E500_TLB_* */ | ||
38 | }; | ||
39 | |||
32 | struct kvmppc_vcpu_e500 { | 40 | struct kvmppc_vcpu_e500 { |
33 | /* Unmodified copy of the guest's TLB. */ | 41 | /* Unmodified copy of the guest's TLB. */ |
34 | struct tlbe *guest_tlb[E500_TLB_NUM]; | 42 | struct tlbe *gtlb_arch[E500_TLB_NUM]; |
35 | /* TLB that's actually used when the guest is running. */ | 43 | |
36 | struct tlbe *shadow_tlb[E500_TLB_NUM]; | 44 | /* KVM internal information associated with each guest TLB entry */ |
45 | struct tlbe_priv *gtlb_priv[E500_TLB_NUM]; | ||
37 | 46 | ||
38 | unsigned int guest_tlb_size[E500_TLB_NUM]; | 47 | unsigned int gtlb_size[E500_TLB_NUM]; |
39 | unsigned int shadow_tlb_size[E500_TLB_NUM]; | 48 | unsigned int gtlb_nv[E500_TLB_NUM]; |
40 | unsigned int guest_tlb_nv[E500_TLB_NUM]; | ||
41 | 49 | ||
42 | u32 host_pid[E500_PID_NUM]; | 50 | u32 host_pid[E500_PID_NUM]; |
43 | u32 pid[E500_PID_NUM]; | 51 | u32 pid[E500_PID_NUM]; |