kvm on powerpc
play

KVM on PowerPC This time its the server, baby Donnerstag, 23. - PowerPoint PPT Presentation

KVM on PowerPC This time its the server, baby Donnerstag, 23. September 2010 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


  1. KVM on PowerPC This time it’s the server, baby Donnerstag, 23. September 2010

  2. 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

  3. BookE Donnerstag, 23. September 2010

  4. Book3S Donnerstag, 23. September 2010

  5. Book3S Donnerstag, 23. September 2010

  6. Book3S Donnerstag, 23. September 2010

  7. PowerPC • BookE alive in embedded market • Book3S alive in server market & game consoles • Desktop is dead Donnerstag, 23. September 2010

  8. 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

  9. What is KVM? Programs Kernel Hardware Donnerstag, 23. September 2010

  10. What is KVM? Guest Programs Host Kernel Programs Kernel kvm Hardware Donnerstag, 23. September 2010

  11. Virtualization on x86 Programs Kernel Donnerstag, 23. September 2010

  12. Virtualization on x86 Programs Kernel Donnerstag, 23. September 2010

  13. Virtualization on x86 Host Guest Programs Programs VMRUN Kernel Kernel Donnerstag, 23. September 2010

  14. Virtualization on x86 • New instructions for world switch • Defined conditions to get back to host Donnerstag, 23. September 2010

  15. KVM on PowerPC Donnerstag, 23. September 2010

  16. The PR=1 Trick Host Guest PR=1 Programs Programs PR=0 Kernel Kernel Donnerstag, 23. September 2010

  17. The PR=1 Trick Host Guest PR=1 Kernel Programs Programs PR=0 Kernel Donnerstag, 23. September 2010

  18. The PR=1 Trick Example Linux Kernel Code c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  19. The PR=1 Trick Example Linux Kernel Code c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  20. The PR=1 Trick Example Linux Kernel Code c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 kvm c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  21. The PR=1 Trick Example Linux Kernel Code c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 kvm c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  22. The PR=1 Trick Example Linux Kernel Code c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 kvm c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  23. The PR=1 Trick Example Linux Kernel Code c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 kvm c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  24. The PR=1 Trick Example Linux Kernel Code c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 kvm c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  25. The PR=1 Trick Example Linux Kernel Code c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 kvm c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  26. The PR=1 Trick Example Linux Kernel Code c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 kvm c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  27. The PR=1Trick • All privileged instructions trap • KVM can emulate them • Runs all kernel code in user mode Donnerstag, 23. September 2010

  28. PV Framework c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  29. PV Framework c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  30. PV Framework c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  31. PV Framework c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 c000000000000388: 7d b3 42 a6 mfsprg r13,3 c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  32. PV Framework c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 std r13, -SPRG1(0) c000000000000388: 7d b3 42 a6 mfsprg r13,3 c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  33. PV Framework c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 std r13, -SPRG1(0) c000000000000388: 7d b3 42 a6 mfsprg r13,3 ld r13, -SPRG3(0) c00000000000038c: f8 6d 01 60 std r3,352(r13) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  34. PV Framework c000000000000380: 7c 42 13 78 mr r2,r2 c000000000000384: 7d b1 43 a6 mtsprg 1,r13 std r13, -SPRG1(0) c000000000000388: 7d b3 42 a6 mfsprg r13,3 ld r13, -SPRG3(0) c00000000000038c: f8 6d 01 60 std r3,352(r13) ld r3, -DAR(0) c000000000000390: 7c 73 02 a6 mfdar r3 c000000000000394: f9 2d 01 20 std r9,288(r13) c000000000000398: 7d 20 00 26 mfcr r9 Donnerstag, 23. September 2010

  35. PV Framework KVM Shared Page Guest Donnerstag, 23. September 2010

  36. Virtual Memory Virtual Memory Physical Memory Donnerstag, 23. September 2010

Recommend


More recommend