summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2010-01-10 03:27:47 +0100
committerMarcelo Tosatti <mtosatti@redhat.com>2010-03-01 12:35:50 -0300
commit4b5c9b7f9bdd76a3c860731db08bfc6758e96e29 (patch)
treeb2e5424d7c965e3cf343f685978814bd817b9066 /arch/powerpc/include
parent5f2b105a1d6a137c8cfb2792b79128db965880a8 (diff)
downloadblackbird-op-linux-4b5c9b7f9bdd76a3c860731db08bfc6758e96e29.tar.gz
blackbird-op-linux-4b5c9b7f9bdd76a3c860731db08bfc6758e96e29.zip
KVM: PPC: Make large pages work
An SLB entry contains two pieces of information related to size: 1) PTE size 2) SLB size The L bit defines the PTE be "large" (usually means 16MB), SLB_VSID_B_1T defines that the SLB should span 1 GB instead of the default 256MB. Apparently I messed things up and just put those two in one box, shaked it heavily and came up with the current code which handles large pages incorrectly, because it also treats large page SLB entries as "1TB" segment entries. This patch splits those two features apart, making Linux guests boot even when they have > 256MB. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r--arch/powerpc/include/asm/kvm_book3s.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/include/asm/kvm_book3s.h b/arch/powerpc/include/asm/kvm_book3s.h
index 79ab8faf18e7..c7db69f1e779 100644
--- a/arch/powerpc/include/asm/kvm_book3s.h
+++ b/arch/powerpc/include/asm/kvm_book3s.h
@@ -34,7 +34,8 @@ struct kvmppc_slb {
bool Ks;
bool Kp;
bool nx;
- bool large;
+ bool large; /* PTEs are 16MB */
+ bool tb; /* 1TB segment */
bool class;
};
OpenPOWER on IntegriCloud