KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby...
Transcript of KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby...
![Page 1: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/1.jpg)
KVM on PowerPCThis time it’s the server, baby
Donnerstag, 23. September 2010
![Page 2: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/2.jpg)
About Me• Alexander Graf
• SUSE Studio team
• KVM and Qemu developer
• Server class PowerPC KVM port
• S390x Qemu guest support
• x86 Mac OS X in KVM
• Nested SVM
• ...Donnerstag, 23. September 2010
![Page 3: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/3.jpg)
BookE
Donnerstag, 23. September 2010
![Page 4: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/4.jpg)
Book3S
Donnerstag, 23. September 2010
![Page 5: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/5.jpg)
Book3S
Donnerstag, 23. September 2010
![Page 6: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/6.jpg)
Book3S
Donnerstag, 23. September 2010
![Page 7: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/7.jpg)
PowerPC
• BookE alive in embedded market
• Book3S alive in server market & game consoles
• Desktop is dead
Donnerstag, 23. September 2010
![Page 8: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/8.jpg)
Book3S vs BookE
• Server market / Embedded market
• HTAB MMU / Soft TLB
• Instruction set compatible in user mode
• Different kernel mode instructions
Donnerstag, 23. September 2010
![Page 9: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/9.jpg)
What is KVM?
Kernel
Hardware
Programs
Donnerstag, 23. September 2010
![Page 10: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/10.jpg)
What is KVM?
Kernel
Hardware
kvm
Kernel
Programs
Guest
Programs
Host
Donnerstag, 23. September 2010
![Page 11: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/11.jpg)
Virtualization on x86
Kernel
Programs
Donnerstag, 23. September 2010
![Page 12: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/12.jpg)
Virtualization on x86
Kernel
Programs
Donnerstag, 23. September 2010
![Page 13: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/13.jpg)
Virtualization on x86
Kernel
Programs
Kernel
Programs
Host Guest
VMRUN
Donnerstag, 23. September 2010
![Page 14: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/14.jpg)
Virtualization on x86
• New instructions for world switch
• Defined conditions to get back to host
Donnerstag, 23. September 2010
![Page 15: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/15.jpg)
KVM on PowerPC
Donnerstag, 23. September 2010
![Page 16: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/16.jpg)
The PR=1 Trick
Kernel
Programs
Host
PR=1
PR=0
Programs
Guest
Kernel
Donnerstag, 23. September 2010
![Page 17: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/17.jpg)
The PR=1 Trick
Kernel
Programs
Host
PR=1
PR=0
Programs
Guest
Kernel
Donnerstag, 23. September 2010
![Page 18: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/18.jpg)
The PR=1 Trick
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Example Linux Kernel Code
Donnerstag, 23. September 2010
![Page 19: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/19.jpg)
The PR=1 Trick
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Example Linux Kernel Code
Donnerstag, 23. September 2010
![Page 20: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/20.jpg)
The PR=1 Trick
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Example Linux Kernel Code
kvm
Donnerstag, 23. September 2010
![Page 21: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/21.jpg)
The PR=1 Trick
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Example Linux Kernel Code
kvm
Donnerstag, 23. September 2010
![Page 22: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/22.jpg)
The PR=1 Trick
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Example Linux Kernel Code
kvm
Donnerstag, 23. September 2010
![Page 23: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/23.jpg)
The PR=1 Trick
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Example Linux Kernel Code
kvm
Donnerstag, 23. September 2010
![Page 24: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/24.jpg)
The PR=1 Trick
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Example Linux Kernel Code
kvm
Donnerstag, 23. September 2010
![Page 25: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/25.jpg)
The PR=1 Trick
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Example Linux Kernel Code
kvm
Donnerstag, 23. September 2010
![Page 26: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/26.jpg)
The PR=1 Trick
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Example Linux Kernel Code
kvm
Donnerstag, 23. September 2010
![Page 27: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/27.jpg)
The PR=1Trick
• All privileged instructions trap
• KVM can emulate them
• Runs all kernel code in user mode
Donnerstag, 23. September 2010
![Page 28: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/28.jpg)
PV Framework
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Donnerstag, 23. September 2010
![Page 29: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/29.jpg)
PV Framework
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Donnerstag, 23. September 2010
![Page 30: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/30.jpg)
PV Framework
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Donnerstag, 23. September 2010
![Page 31: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/31.jpg)
PV Framework
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
Donnerstag, 23. September 2010
![Page 32: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/32.jpg)
PV Framework
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
std r13, -SPRG1(0)
Donnerstag, 23. September 2010
![Page 33: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/33.jpg)
PV Framework
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
std r13, -SPRG1(0)ld r13, -SPRG3(0)
Donnerstag, 23. September 2010
![Page 34: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/34.jpg)
PV Framework
c000000000000380: 7c 42 13 78 mr r2,r2c000000000000384: 7d b1 43 a6 mtsprg 1,r13c000000000000388: 7d b3 42 a6 mfsprg r13,3c00000000000038c: f8 6d 01 60 std r3,352(r13)c000000000000390: 7c 73 02 a6 mfdar r3c000000000000394: f9 2d 01 20 std r9,288(r13)c000000000000398: 7d 20 00 26 mfcr r9
std r13, -SPRG1(0)ld r13, -SPRG3(0)
ld r3, -DAR(0)
Donnerstag, 23. September 2010
![Page 35: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/35.jpg)
PV Framework
Shared Page
KVM
Guest
Donnerstag, 23. September 2010
![Page 36: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/36.jpg)
Virtual Memory
Virtual Memory
Physical Memory
Donnerstag, 23. September 2010
![Page 37: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/37.jpg)
Virtual Memory
Virtual Memory
Physical Memory
Donnerstag, 23. September 2010
![Page 38: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/38.jpg)
Virtual Memory
Virtual Memory
Physical Memory
Donnerstag, 23. September 2010
![Page 39: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/39.jpg)
Virtual Memory
Effective Address c000000012000380
Virtual Address
Real Address
Donnerstag, 23. September 2010
![Page 40: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/40.jpg)
Virtual Memory
Effective Address c000000012000380
SLB
Virtual Address
Real Address
Donnerstag, 23. September 2010
![Page 41: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/41.jpg)
Segment Lookaside BufferESID VSID
c00000000 408f92c94d00000000 f09b89af5c00000007 45cb97751
0 ef72a166ef faaa19203
c00000001 414f012af... ...
Donnerstag, 23. September 2010
![Page 42: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/42.jpg)
Segment Lookaside BufferESID VSID
c00000000 408f92c94d00000000 f09b89af5c00000007 45cb97751
0 ef72a166ef faaa19203
c00000001 414f012af... ...
Donnerstag, 23. September 2010
![Page 43: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/43.jpg)
Segment Lookaside Buffer
c00000001 414f012afESID VSID
ESID VSIDc00000000 408f92c94d00000000 f09b89af5c00000007 45cb97751
0 ef72a166ef faaa19203
c00000001 414f012af... ...
Donnerstag, 23. September 2010
![Page 44: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/44.jpg)
Virtual Memory
Effective Address
Virtual Address
c000000012000380
SLB
Real Address
Donnerstag, 23. September 2010
![Page 45: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/45.jpg)
Virtual Memory
Effective Address
Virtual Address
c000000012000380
SLB
414f012af2000380
Real Address
Donnerstag, 23. September 2010
![Page 46: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/46.jpg)
Virtual Memory
Effective Address
Virtual Address
c000000012000380
SLB
414f012af2000380
HTAB
Real Address
Donnerstag, 23. September 2010
![Page 47: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/47.jpg)
HTAB
380
Hash
2000
Index into HTABHTAB
414f012af
Donnerstag, 23. September 2010
![Page 48: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/48.jpg)
HTAB414f012af 2000 380
VSID Real Page
408f92c94 5000
414f012af 12000
... ...
PTEG
Donnerstag, 23. September 2010
![Page 49: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/49.jpg)
HTAB414f012af 2000 380
VSID Real Page
408f92c94 5000
414f012af 12000
... ...
PTEG
Donnerstag, 23. September 2010
![Page 50: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/50.jpg)
HTAB414f012af 2000 380
VSID Real Page
408f92c94 5000
414f012af 12000
... ...
PTEG
414f012af 2000 12000Donnerstag, 23. September 2010
![Page 51: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/51.jpg)
Virtual Memory
Effective Address
Virtual Address
Real Address
c000000012000380
SLB
414f012af2000380
HTAB
Donnerstag, 23. September 2010
![Page 52: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/52.jpg)
Virtual Memory
Effective Address
Virtual Address
Real Address
c000000012000380
SLB
414f012af2000380
0000000012000380
HTAB
Donnerstag, 23. September 2010
![Page 53: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/53.jpg)
Shadow Paging (Segments)
• Each process gets 65535 VSIDs allocated
• Allocate a new process context
12345XXXX__init_new_context()
SID space
Donnerstag, 23. September 2010
![Page 54: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/54.jpg)
Guest VSID Host VSID
Shadow Paging (Segments)
• Then map guest VSIDs to process VSIDs
414f012af 123450001
123450002
123450003
408f92c94
adc7d4c2d
Donnerstag, 23. September 2010
![Page 55: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/55.jpg)
Shadow Paging(Pages)
• Guest accesses an unmapped page
• Read guest SLB & HTAB
• Resolve Host Real Address
• Convert VSID to Shadow VSID
• Call Linux MMU helper to add host PTE
Donnerstag, 23. September 2010
![Page 56: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/56.jpg)
Guest Effective Address
Guest Virtual Address
Guest Real Address
c000000012000380
SLB
414f012af2000380
0000000012000380
HTAB
Donnerstag, 23. September 2010
![Page 57: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/57.jpg)
Guest Effective Address
Guest Virtual Address
Guest Real Address
c000000012000380
SLB
414f012af2000380
0000000012000380
HTAB
Shadow VSID
1234500012000380
Donnerstag, 23. September 2010
![Page 58: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/58.jpg)
Guest Effective Address
Guest Virtual Address
Guest Real Address
c000000012000380
SLB
414f012af2000380
0000000012000380
HTAB
Shadow Virtual Address
Host Real Address
Shadow VSID
KVM Memory Slots
000000a4180e9380
1234500012000380
Donnerstag, 23. September 2010
![Page 59: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/59.jpg)
Guest Effective Address
Guest Virtual Address
Guest Real Address
c000000012000380
SLB
414f012af2000380
0000000012000380
HTAB
Shadow Virtual Address
Host Real Address
Shadow VSID
KVM Memory Slots
000000a4180e9380
1234500012000380
Linux Memory Mapping
Donnerstag, 23. September 2010
![Page 60: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/60.jpg)
Guest EntryCPU
PACA
vCPU struct
Donnerstag, 23. September 2010
![Page 61: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/61.jpg)
Guest EntryCPU
PACA
vCPU struct
Donnerstag, 23. September 2010
![Page 62: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/62.jpg)
Guest ExitCPU
PACA
vCPU struct
Donnerstag, 23. September 2010
![Page 63: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/63.jpg)
Guest ExitCPU
PACA
vCPU struct
Donnerstag, 23. September 2010
![Page 64: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/64.jpg)
Mac-on-Linux
• Used to run Mac OS on PPC back in the day
• PPC32 hosts only
• Now has KVM interface
Donnerstag, 23. September 2010
![Page 65: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/65.jpg)
Why do I do this?
• Build Service
• SUSE Studio
Donnerstag, 23. September 2010
![Page 66: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/66.jpg)
Status
440 ✔
e500v2 ✔
Book3S 32bit ✔
Book3S 64bit ✔
Donnerstag, 23. September 2010
![Page 67: KVM on PowerPC - Linux · PDF fileKVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010](https://reader031.fdocuments.us/reader031/viewer/2022030508/5ab7a6c37f8b9ad5338bd6d1/html5/thumbnails/67.jpg)
Questions
Donnerstag, 23. September 2010