KVM: PPC: Implement correct SID mapping on Book3s_32
authorAlexander Graf <agraf@suse.de>
Sun, 15 Aug 2010 06:04:24 +0000 (08:04 +0200)
committerAvi Kivity <avi@redhat.com>
Sun, 24 Oct 2010 08:52:15 +0000 (10:52 +0200)
commit8b6db3bc965c204db6868d4005808b4fdc9c46d7
tree973d040d221d5fd3448c97b1c102d014fe6e6687
parentad0873763a83e7b31ba87a85ec2027dd6a9d7b55
KVM: PPC: Implement correct SID mapping on Book3s_32

Up until now we were doing segment mappings wrong on Book3s_32. For Book3s_64
we were using a trick where we know that a single mmu_context gives us 16 bits
of context ids.

The mm system on Book3s_32 instead uses a clever algorithm to distribute VSIDs
across the available range, so a context id really only gives us 16 available
VSIDs.

To keep at least a few guest processes in the SID shadow, let's map a number of
contexts that we can use as VSID pool. This makes the code be actually correct
and shouldn't hurt performance too much.

Signed-off-by: Alexander Graf <agraf@suse.de>
arch/powerpc/include/asm/kvm_book3s.h
arch/powerpc/kvm/book3s_32_mmu_host.c
arch/powerpc/kvm/book3s_64_mmu_host.c