diff options
author | Alexander Graf <agraf@suse.de> | 2010-01-09 21:27:47 -0500 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2010-03-01 10:35:50 -0500 |
commit | 4b5c9b7f9bdd76a3c860731db08bfc6758e96e29 (patch) | |
tree | b2e5424d7c965e3cf343f685978814bd817b9066 /arch/powerpc/include | |
parent | 5f2b105a1d6a137c8cfb2792b79128db965880a8 (diff) |
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.h | 3 |
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 { | |||
34 | bool Ks; | 34 | bool Ks; |
35 | bool Kp; | 35 | bool Kp; |
36 | bool nx; | 36 | bool nx; |
37 | bool large; | 37 | bool large; /* PTEs are 16MB */ |
38 | bool tb; /* 1TB segment */ | ||
38 | bool class; | 39 | bool class; |
39 | }; | 40 | }; |
40 | 41 | ||