linux/arch/powerpc/kvm
Alexander Graf 7741909bf1 KVM: PPC: Add generic hpte management functions
Currently the shadow paging code keeps an array of entries it knows about.
Whenever the guest invalidates an entry, we loop through that entry,
trying to invalidate matching parts.

While this is a really simple implementation, it is probably the most
ineffective one possible. So instead, let's keep an array of lists around
that are indexed by a hash. This way each PTE can be added by 4 list_add,
removed by 4 list_del invocations and the search only needs to loop through
entries that share the same hash.

This patch implements said lookup and exports generic functions that both
the 32-bit and 64-bit backend can use.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2010-08-01 10:47:27 +03:00
..
44x.c KVM: Let vcpu structure alignment be determined at runtime 2010-05-19 11:36:29 +03:00
44x_emulate.c KVM: PPC: Use accessor functions for GPR access 2010-03-01 12:35:47 -03:00
44x_tlb.c KVM: PPC: Keep index within boundaries in kvmppc_44x_emul_tlbwe() 2010-05-13 01:33:04 -03:00
44x_tlb.h KVM: ppc: rename 44x MMU functions used in booke.c 2009-03-24 11:02:56 +02:00
Kconfig KVM: PPC: Enable Book3S_32 KVM building 2010-05-17 12:18:54 +03:00
Makefile KVM: PPC: Enable Book3S_32 KVM building 2010-05-17 12:18:54 +03:00
book3s.c KVM: PPC: elide struct thread_struct instances from stack 2010-08-01 10:39:24 +03:00
book3s_32_mmu.c KVM: PPC: Make BAT only guest segments work 2010-08-01 10:47:14 +03:00
book3s_32_mmu_host.c KVM: PPC: Use kernel hash function 2010-08-01 10:47:13 +03:00
book3s_32_sr.S KVM: PPC: Add SR swapping code 2010-05-17 12:18:17 +03:00
book3s_64_mmu.c KVM: PPC: Set VSID_PR also for Book3S_64 2010-05-17 12:19:03 +03:00
book3s_64_mmu_host.c KVM: PPC: Use kernel hash function 2010-08-01 10:47:13 +03:00
book3s_64_slb.S KVM: PPC: Make SLB switching code the new segment framework 2010-05-17 12:18:38 +03:00
book3s_emulate.c KVM: PPC: Enable native paired singles 2010-05-17 12:19:08 +03:00
book3s_exports.c KVM: PPC: Name generic 64-bit code generic 2010-05-17 12:18:14 +03:00
book3s_interrupts.S KVM: PPC: Make Performance Counters work 2010-05-17 12:18:57 +03:00
book3s_mmu_hpte.c KVM: PPC: Add generic hpte management functions 2010-08-01 10:47:27 +03:00
book3s_paired_singles.c KVM: PPC: elide struct thread_struct instances from stack 2010-08-01 10:39:24 +03:00
book3s_rmhandlers.S KVM: PPC: Add Book3S compatibility code 2010-05-17 12:18:46 +03:00
book3s_segment.S KVM: PPC: Make Alignment interrupts work again 2010-05-17 12:19:00 +03:00
booke.c KVM: PPC: fix uninitialized variable warning in kvm_ppc_core_deliver_interrupts 2010-08-01 10:46:53 +03:00
booke.h KVM: ppc: Add extra E500 exceptions 2009-03-24 11:02:59 +02:00
booke_emulate.c KVM: PPC: Use accessor functions for GPR access 2010-03-01 12:35:47 -03:00
booke_interrupts.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
e500.c KVM: powerpc: fix init/exit annotation 2010-06-09 18:39:09 +03:00
e500_emulate.c KVM: PPC E500: fix tlbcfg emulation 2010-03-01 12:36:06 -03:00
e500_tlb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
e500_tlb.h KVM: ppc: e500: Move to Book-3e MMU definitions 2009-09-10 08:32:47 +03:00
emulate.c KVM: PPC: Remove fetch fail code 2010-05-17 12:18:41 +03:00
fpu.S KVM: PPC: elide struct thread_struct instances from stack 2010-08-01 10:39:24 +03:00
powerpc.c KVM: Remove memory alias support 2010-08-01 10:47:00 +03:00
timing.c powerpc/kvm: Fix non-modular build 2009-11-05 17:17:12 +11:00
timing.h KVM: powerpc: Fix BUILD_BUG_ON condition 2009-12-03 09:32:22 +02:00
trace.h Fix trace.h 2009-11-05 16:50:27 +11:00