This patch set improves the shadow TLB handling of our e500 target. The really important bit here is that with these patches applied, we can map guest TLB1 entries into the host's TLB0. This gives a significant performance improvement as you can see below. Alex v1 -> v2: - new patch: Move write_stlbe higher - new patch: Explicitly mark shadow maps invalid - new patch: Propagate errors when shadow mapping - remove force init logic, it's handled by the explicit invalidate now - leave stlbe uninitialized - allow mixing of TLB0 and TLB1_BITMAP backing of TLB1 pages --- without patch, using 4k backed memory: $ time for i in {1..1000}; do /bin/echo > /dev/null; done real 0m12.947s user 0m1.076s sys 0m9.720s with hugetlbfs: $ time for i in {1..1000}; do /bin/echo > /dev/null; done real 0m3.262s user 0m0.464s sys 0m0.236s with patches applied, using 4k backed memory: $ time for i in {1..1000}; do /bin/echo > /dev/null; done real 0m4.446s user 0m0.380s sys 0m0.644s Alexander Graf (6): KVM: PPC: E500: Move write_stlbe higher KVM: PPC: E500: Explicitly mark shadow maps invalid KVM: PPC: E500: Propagate errors when shadow mapping KVM: PPC: e500: Call kvmppc_mmu_map for initial mapping KVM: PPC: E500: Split host and guest MMU parts KVM: PPC: e500: Implement TLB1-in-TLB0 mapping arch/powerpc/kvm/Makefile | 9 +- arch/powerpc/kvm/e500.h | 1 + arch/powerpc/kvm/e500_mmu.c | 811 +++++++++++++++++++++ arch/powerpc/kvm/e500_mmu_host.c | 699 +++++++++++++++++++ arch/powerpc/kvm/e500_mmu_host.h | 20 + arch/powerpc/kvm/e500_tlb.c | 1430 -------------------------------------- 6 files changed, 1537 insertions(+), 1433 deletions(-) create mode 100644 arch/powerpc/kvm/e500_mmu.c create mode 100644 arch/powerpc/kvm/e500_mmu_host.c create mode 100644 arch/powerpc/kvm/e500_mmu_host.h delete mode 100644 arch/powerpc/kvm/e500_tlb.c -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html