ARMvisor:      ARM架構上系統虛擬機的實作            Peter Chang @ SSLab, Dept. of CS, NTHU                 phchang@sslab.cs.nthu.edu....
What is ARMvisor?
ARM
ARM
ARM
What is KVM?
What is KVM?A.k.a. Kernel-based Virtual Machine
What is KVM?A.k.a. Kernel-based Virtual MachineType-II Virtual Machine Monitor
What is KVM?A.k.a. Kernel-based Virtual MachineType-II Virtual Machine MonitorA module of Linux kernel
What is KVM?
What is KVM?Officially support x86/x64, PowerPC, S390
What is KVM?Officially support x86/x64, PowerPC, S390  No official support for ARM architecture
What is ARMvisor?
What is ARMvisor?ARM架構上的KVM
What is ARMvisor?ARM架構上的KVMPara-virtualization
What is ARMvisor?ARM架構上的KVMPara-virtualizationTrap & Emulation
What is ARMvisor?ARM架構上的KVMPara-virtualizationTrap & EmulationDynamic Memory Allocation
What is ARMvisor?ARM架構上的KVMPara-virtualizationTrap & EmulationDynamic Memory Allocationvirtio & IRQchip-in-kernel
Hardware: ARM Cortex-A8
Host OS: Linux 2.6.38Hardware: ARM Cortex-A8
ARMvisor  Host OS: Linux 2.6.38Hardware: ARM Cortex-A8
Driver                      ARMvisor         Host OS: Linux 2.6.38  Hardware: ARM Cortex-A8
QEMU 0.14Driver                      ARMvisor         Host OS: Linux 2.6.38  Hardware: ARM Cortex-A8
QEMU 0.14                   DeviceDriver                      ARMvisor         Host OS: Linux 2.6.38  Hardware: ARM Cortex...
QEMU 0.14                   DeviceDriver                      ARMvisor         Host OS: Linux 2.6.38  Hardware: ARM Cortex...
Guest OS: Linux 2.6.35           QEMU 0.14                   DeviceDriver                      ARMvisor         Host OS: L...
Guest OS: Linux 2.6.35           QEMU 0.14                   DeviceDriver                      ARMvisor         Host OS: L...
Guest OS: Linux 2.6.35                                 Driver           QEMU 0.14                   DeviceDriver          ...
Who are developers?         @
2012       20112010       2009
2012       20112010       2009
2012                  2011           2010Starting Point                  2009
2012                  2011           2010Starting Point                  2009
2012                  2011                   ARMvisor Prototype           2010Starting Point                  2009
2012                  2011                   ARMvisor Prototype           2010Starting Point                  2009
2012CPU Opt & Mem Opt                     2011                      ARMvisor Prototype              2010   Starting Point ...
2012CPU Opt & Mem Opt                     2011                      ARMvisor Prototype              2010   Starting Point ...
I/O Opt              2012CPU Opt & Mem Opt                     2011                      ARMvisor Prototype              2...
Current achievement
Supported Hardware
Supported HardwareSupported Software
Supported HardwareSupported SoftwareDemo
Supported Hardware            ARM Realview-eb                ARM11              ARMv6 ISA
Supported Hardware             TI BeagleBoard               Cortex-A8              ARMv7 ISA
Supported Hardware             QEMU emulator          Emulating Vexpress-a9QEMU            Cortex-A9               ARMv7 ISA
Supported SoftwarePatched Host OS:  Linaro Linux 2.6.38Host Root Filesystem  Ubuntu/Debian RFS (CLI or GUI)QEMU 0.14
Supported SoftwarePatched Guest OS:  Linux 2.6.35 (running on ARMv6 ISA)Guest Root Filesystem:  Ubuntu/Debian RFS (CLI or ...
Video demo
System model of   ARMvisor
CPU virtualizationARM is non-virtualizable CPU  Patch guest OS“Trap and emulation”
Sensitive instructions         Sensitive       Instructions       Non-Sensitive        Instructions
Privileged instructions         Privileged        instructions       Non-Privileged        instructions
Virtualizable CPU
Virtualizable CPU  SensitiveInstructions
Virtualizable CPU  Sensitive          PrivilegedInstructions        instructions
Virtualizable CPU  SensitiveInstructions   =     Privileged                    instructions
Virtualizable CPU  SensitiveInstructions    =    Privileged                    instructionsNon-Sensitive Instructions
Virtualizable CPU  SensitiveInstructions    =     Privileged                     instructionsNon-Sensitive       Non-Privi...
Virtualizable CPU  SensitiveInstructions    =     Privileged                     instructionsNon-Sensitive Instructions   ...
Non-virtualizable CPU  SensitiveInstructions                =    Privileged                    instructions               ...
Critical Instructions
Critical Instructions           SP                   NP           NS
Critical Instructions            S      S&PP                   NP            NS
Critical Instructions            S      S&P   S&NPP                   NP            NS
Critical Instructions             S      S&P    S&NPP                   NP      NS&P             NS
Critical Instructions             S      S&P    S&NPP                    NP      NS&P   NS&NP             NS
Critical Instructions            S      S&P   S&NPP                   NP            NS
Critical Instructions                 S     Privilege   S&NPP                       NP                 NS
Critical Instructions                 S     Privilege   CriticalP                           NP                 NS
“Trap & emulation”                Guest%OS User%space%     trap            %Kernel%space                 VMM
Memory virtualizationStatic Partition
Memory virtualization
Memory virtualizationStatic PartitionShadow Page Table
I/O virtualizationvirtioIRQ chip in kernel
virtio   Vir$o&Driver                        GuestVir$o&PCI&Controller       Vring           TransportVir$o&PCI&Controller...
irq_chip in kernel                             Guest                                       Deliver7          GIC          ...
irq_chip in kernel                            Guest                                  Deliver$                             ...
Future Works
Future Works
Future WorksSupport for ARM’s Virtualization extension
Future WorksSupport for ARM’s Virtualization extension  Cortex-A15 and beyond
Future WorksSupport for ARM’s Virtualization extension  Cortex-A15 and beyondSMP for host and guest
Future WorksSupport for ARM’s Virtualization extension  Cortex-A15 and beyondSMP for host and guestAArch64 Support
Future WorksSupport for ARM’s Virtualization extension  Cortex-A15 and beyondSMP for host and guestAArch64 Support  ARMv8
By the way, ...
OpenSource
OpenSourceWe are going to opensource in late August,2012.
OpenSourceWe are going to opensource in late August,2012.GNU GPLv2
OpenSourceWe are going to opensource in late August,2012.GNU GPLv2Source code of Host and Guest OS
OpenSourceWe are going to opensource in late August,2012.GNU GPLv2Source code of Host and Guest OSUser Guide
OpenSourceWe are going to opensource in late August,2012.GNU GPLv2Source code of Host and Guest OSUser GuideWelcome to try...
OpenSource
Q&A
ARMvisor @ COSCUP2012
ARMvisor @ COSCUP2012
ARMvisor @ COSCUP2012
ARMvisor @ COSCUP2012
Upcoming SlideShare
Loading in...5
×

ARMvisor @ COSCUP2012

949

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
949
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ARMvisor @ COSCUP2012

  1. 1. ARMvisor: ARM架構上系統虛擬機的實作 Peter Chang @ SSLab, Dept. of CS, NTHU phchang@sslab.cs.nthu.edu.tw This side is licensed under CC-BY-NC-SA 姓名標示─非商業性─相同方式分享(http://creativecommons.org/licenses/by-nc-sa/3.0/tw/legalcode)
  2. 2. What is ARMvisor?
  3. 3. ARM
  4. 4. ARM
  5. 5. ARM
  6. 6. What is KVM?
  7. 7. What is KVM?A.k.a. Kernel-based Virtual Machine
  8. 8. What is KVM?A.k.a. Kernel-based Virtual MachineType-II Virtual Machine Monitor
  9. 9. What is KVM?A.k.a. Kernel-based Virtual MachineType-II Virtual Machine MonitorA module of Linux kernel
  10. 10. What is KVM?
  11. 11. What is KVM?Officially support x86/x64, PowerPC, S390
  12. 12. What is KVM?Officially support x86/x64, PowerPC, S390 No official support for ARM architecture
  13. 13. What is ARMvisor?
  14. 14. What is ARMvisor?ARM架構上的KVM
  15. 15. What is ARMvisor?ARM架構上的KVMPara-virtualization
  16. 16. What is ARMvisor?ARM架構上的KVMPara-virtualizationTrap & Emulation
  17. 17. What is ARMvisor?ARM架構上的KVMPara-virtualizationTrap & EmulationDynamic Memory Allocation
  18. 18. What is ARMvisor?ARM架構上的KVMPara-virtualizationTrap & EmulationDynamic Memory Allocationvirtio & IRQchip-in-kernel
  19. 19. Hardware: ARM Cortex-A8
  20. 20. Host OS: Linux 2.6.38Hardware: ARM Cortex-A8
  21. 21. ARMvisor Host OS: Linux 2.6.38Hardware: ARM Cortex-A8
  22. 22. Driver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  23. 23. QEMU 0.14Driver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  24. 24. QEMU 0.14 DeviceDriver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  25. 25. QEMU 0.14 DeviceDriver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  26. 26. Guest OS: Linux 2.6.35 QEMU 0.14 DeviceDriver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  27. 27. Guest OS: Linux 2.6.35 QEMU 0.14 DeviceDriver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  28. 28. Guest OS: Linux 2.6.35 Driver QEMU 0.14 DeviceDriver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  29. 29. Who are developers? @
  30. 30. 2012 20112010 2009
  31. 31. 2012 20112010 2009
  32. 32. 2012 2011 2010Starting Point 2009
  33. 33. 2012 2011 2010Starting Point 2009
  34. 34. 2012 2011 ARMvisor Prototype 2010Starting Point 2009
  35. 35. 2012 2011 ARMvisor Prototype 2010Starting Point 2009
  36. 36. 2012CPU Opt & Mem Opt 2011 ARMvisor Prototype 2010 Starting Point 2009
  37. 37. 2012CPU Opt & Mem Opt 2011 ARMvisor Prototype 2010 Starting Point 2009
  38. 38. I/O Opt 2012CPU Opt & Mem Opt 2011 ARMvisor Prototype 2010 Starting Point 2009
  39. 39. Current achievement
  40. 40. Supported Hardware
  41. 41. Supported HardwareSupported Software
  42. 42. Supported HardwareSupported SoftwareDemo
  43. 43. Supported Hardware ARM Realview-eb ARM11 ARMv6 ISA
  44. 44. Supported Hardware TI BeagleBoard Cortex-A8 ARMv7 ISA
  45. 45. Supported Hardware QEMU emulator Emulating Vexpress-a9QEMU Cortex-A9 ARMv7 ISA
  46. 46. Supported SoftwarePatched Host OS: Linaro Linux 2.6.38Host Root Filesystem Ubuntu/Debian RFS (CLI or GUI)QEMU 0.14
  47. 47. Supported SoftwarePatched Guest OS: Linux 2.6.35 (running on ARMv6 ISA)Guest Root Filesystem: Ubuntu/Debian RFS (CLI or GUI)
  48. 48. Video demo
  49. 49. System model of ARMvisor
  50. 50. CPU virtualizationARM is non-virtualizable CPU Patch guest OS“Trap and emulation”
  51. 51. Sensitive instructions Sensitive Instructions Non-Sensitive Instructions
  52. 52. Privileged instructions Privileged instructions Non-Privileged instructions
  53. 53. Virtualizable CPU
  54. 54. Virtualizable CPU SensitiveInstructions
  55. 55. Virtualizable CPU Sensitive PrivilegedInstructions instructions
  56. 56. Virtualizable CPU SensitiveInstructions = Privileged instructions
  57. 57. Virtualizable CPU SensitiveInstructions = Privileged instructionsNon-Sensitive Instructions
  58. 58. Virtualizable CPU SensitiveInstructions = Privileged instructionsNon-Sensitive Non-Privileged Instructions instructions
  59. 59. Virtualizable CPU SensitiveInstructions = Privileged instructionsNon-Sensitive Instructions = Non-Privileged instructions
  60. 60. Non-virtualizable CPU SensitiveInstructions = Privileged instructions Non-Privileged instructionsNon-Sensitive Instructions
  61. 61. Critical Instructions
  62. 62. Critical Instructions SP NP NS
  63. 63. Critical Instructions S S&PP NP NS
  64. 64. Critical Instructions S S&P S&NPP NP NS
  65. 65. Critical Instructions S S&P S&NPP NP NS&P NS
  66. 66. Critical Instructions S S&P S&NPP NP NS&P NS&NP NS
  67. 67. Critical Instructions S S&P S&NPP NP NS
  68. 68. Critical Instructions S Privilege S&NPP NP NS
  69. 69. Critical Instructions S Privilege CriticalP NP NS
  70. 70. “Trap & emulation” Guest%OS User%space% trap %Kernel%space VMM
  71. 71. Memory virtualizationStatic Partition
  72. 72. Memory virtualization
  73. 73. Memory virtualizationStatic PartitionShadow Page Table
  74. 74. I/O virtualizationvirtioIRQ chip in kernel
  75. 75. virtio Vir$o&Driver GuestVir$o&PCI&Controller Vring TransportVir$o&PCI&Controller QEMU Vir$o&Device
  76. 76. irq_chip in kernel Guest Deliver7 GIC QEMU IRQ7 Control7 GIC7Device Device Device IOCTL7 ARMvisor
  77. 77. irq_chip in kernel Guest Deliver$ IRQ$ QEMUDevice Device Device Control$ GIC$ GIC$in$Kernel KVM
  78. 78. Future Works
  79. 79. Future Works
  80. 80. Future WorksSupport for ARM’s Virtualization extension
  81. 81. Future WorksSupport for ARM’s Virtualization extension Cortex-A15 and beyond
  82. 82. Future WorksSupport for ARM’s Virtualization extension Cortex-A15 and beyondSMP for host and guest
  83. 83. Future WorksSupport for ARM’s Virtualization extension Cortex-A15 and beyondSMP for host and guestAArch64 Support
  84. 84. Future WorksSupport for ARM’s Virtualization extension Cortex-A15 and beyondSMP for host and guestAArch64 Support ARMv8
  85. 85. By the way, ...
  86. 86. OpenSource
  87. 87. OpenSourceWe are going to opensource in late August,2012.
  88. 88. OpenSourceWe are going to opensource in late August,2012.GNU GPLv2
  89. 89. OpenSourceWe are going to opensource in late August,2012.GNU GPLv2Source code of Host and Guest OS
  90. 90. OpenSourceWe are going to opensource in late August,2012.GNU GPLv2Source code of Host and Guest OSUser Guide
  91. 91. OpenSourceWe are going to opensource in late August,2012.GNU GPLv2Source code of Host and Guest OSUser GuideWelcome to try and feedback to us :)
  92. 92. OpenSource
  93. 93. Q&A
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×