Your SlideShare is downloading. ×
ARMvisor @ COSCUP2012
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

ARMvisor @ COSCUP2012

893
views

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
893
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. What is ARMvisor?
  • 3. ARM
  • 4. ARM
  • 5. ARM
  • 6. What is KVM?
  • 7. What is KVM?A.k.a. Kernel-based Virtual Machine
  • 8. What is KVM?A.k.a. Kernel-based Virtual MachineType-II Virtual Machine Monitor
  • 9. What is KVM?A.k.a. Kernel-based Virtual MachineType-II Virtual Machine MonitorA module of Linux kernel
  • 10. What is KVM?
  • 11. What is KVM?Officially support x86/x64, PowerPC, S390
  • 12. What is KVM?Officially support x86/x64, PowerPC, S390 No official support for ARM architecture
  • 13. What is ARMvisor?
  • 14. What is ARMvisor?ARM架構上的KVM
  • 15. What is ARMvisor?ARM架構上的KVMPara-virtualization
  • 16. What is ARMvisor?ARM架構上的KVMPara-virtualizationTrap & Emulation
  • 17. What is ARMvisor?ARM架構上的KVMPara-virtualizationTrap & EmulationDynamic Memory Allocation
  • 18. What is ARMvisor?ARM架構上的KVMPara-virtualizationTrap & EmulationDynamic Memory Allocationvirtio & IRQchip-in-kernel
  • 19. Hardware: ARM Cortex-A8
  • 20. Host OS: Linux 2.6.38Hardware: ARM Cortex-A8
  • 21. ARMvisor Host OS: Linux 2.6.38Hardware: ARM Cortex-A8
  • 22. Driver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  • 23. QEMU 0.14Driver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  • 24. QEMU 0.14 DeviceDriver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  • 25. QEMU 0.14 DeviceDriver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  • 26. Guest OS: Linux 2.6.35 QEMU 0.14 DeviceDriver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  • 27. Guest OS: Linux 2.6.35 QEMU 0.14 DeviceDriver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  • 28. Guest OS: Linux 2.6.35 Driver QEMU 0.14 DeviceDriver ARMvisor Host OS: Linux 2.6.38 Hardware: ARM Cortex-A8
  • 29. Who are developers? @
  • 30. 2012 20112010 2009
  • 31. 2012 20112010 2009
  • 32. 2012 2011 2010Starting Point 2009
  • 33. 2012 2011 2010Starting Point 2009
  • 34. 2012 2011 ARMvisor Prototype 2010Starting Point 2009
  • 35. 2012 2011 ARMvisor Prototype 2010Starting Point 2009
  • 36. 2012CPU Opt & Mem Opt 2011 ARMvisor Prototype 2010 Starting Point 2009
  • 37. 2012CPU Opt & Mem Opt 2011 ARMvisor Prototype 2010 Starting Point 2009
  • 38. I/O Opt 2012CPU Opt & Mem Opt 2011 ARMvisor Prototype 2010 Starting Point 2009
  • 39. Current achievement
  • 40. Supported Hardware
  • 41. Supported HardwareSupported Software
  • 42. Supported HardwareSupported SoftwareDemo
  • 43. Supported Hardware ARM Realview-eb ARM11 ARMv6 ISA
  • 44. Supported Hardware TI BeagleBoard Cortex-A8 ARMv7 ISA
  • 45. Supported Hardware QEMU emulator Emulating Vexpress-a9QEMU Cortex-A9 ARMv7 ISA
  • 46. Supported SoftwarePatched Host OS: Linaro Linux 2.6.38Host Root Filesystem Ubuntu/Debian RFS (CLI or GUI)QEMU 0.14
  • 47. Supported SoftwarePatched Guest OS: Linux 2.6.35 (running on ARMv6 ISA)Guest Root Filesystem: Ubuntu/Debian RFS (CLI or GUI)
  • 48. Video demo
  • 49. System model of ARMvisor
  • 50. CPU virtualizationARM is non-virtualizable CPU Patch guest OS“Trap and emulation”
  • 51. Sensitive instructions Sensitive Instructions Non-Sensitive Instructions
  • 52. Privileged instructions Privileged instructions Non-Privileged instructions
  • 53. Virtualizable CPU
  • 54. Virtualizable CPU SensitiveInstructions
  • 55. Virtualizable CPU Sensitive PrivilegedInstructions instructions
  • 56. Virtualizable CPU SensitiveInstructions = Privileged instructions
  • 57. Virtualizable CPU SensitiveInstructions = Privileged instructionsNon-Sensitive Instructions
  • 58. Virtualizable CPU SensitiveInstructions = Privileged instructionsNon-Sensitive Non-Privileged Instructions instructions
  • 59. Virtualizable CPU SensitiveInstructions = Privileged instructionsNon-Sensitive Instructions = Non-Privileged instructions
  • 60. Non-virtualizable CPU SensitiveInstructions = Privileged instructions Non-Privileged instructionsNon-Sensitive Instructions
  • 61. Critical Instructions
  • 62. Critical Instructions SP NP NS
  • 63. Critical Instructions S S&PP NP NS
  • 64. Critical Instructions S S&P S&NPP NP NS
  • 65. Critical Instructions S S&P S&NPP NP NS&P NS
  • 66. Critical Instructions S S&P S&NPP NP NS&P NS&NP NS
  • 67. Critical Instructions S S&P S&NPP NP NS
  • 68. Critical Instructions S Privilege S&NPP NP NS
  • 69. Critical Instructions S Privilege CriticalP NP NS
  • 70. “Trap & emulation” Guest%OS User%space% trap %Kernel%space VMM
  • 71. Memory virtualizationStatic Partition
  • 72. Memory virtualization
  • 73. Memory virtualizationStatic PartitionShadow Page Table
  • 74. I/O virtualizationvirtioIRQ chip in kernel
  • 75. virtio Vir$o&Driver GuestVir$o&PCI&Controller Vring TransportVir$o&PCI&Controller QEMU Vir$o&Device
  • 76. irq_chip in kernel Guest Deliver7 GIC QEMU IRQ7 Control7 GIC7Device Device Device IOCTL7 ARMvisor
  • 77. irq_chip in kernel Guest Deliver$ IRQ$ QEMUDevice Device Device Control$ GIC$ GIC$in$Kernel KVM
  • 78. Future Works
  • 79. Future Works
  • 80. Future WorksSupport for ARM’s Virtualization extension
  • 81. Future WorksSupport for ARM’s Virtualization extension Cortex-A15 and beyond
  • 82. Future WorksSupport for ARM’s Virtualization extension Cortex-A15 and beyondSMP for host and guest
  • 83. Future WorksSupport for ARM’s Virtualization extension Cortex-A15 and beyondSMP for host and guestAArch64 Support
  • 84. Future WorksSupport for ARM’s Virtualization extension Cortex-A15 and beyondSMP for host and guestAArch64 Support ARMv8
  • 85. By the way, ...
  • 86. OpenSource
  • 87. OpenSourceWe are going to opensource in late August,2012.
  • 88. OpenSourceWe are going to opensource in late August,2012.GNU GPLv2
  • 89. OpenSourceWe are going to opensource in late August,2012.GNU GPLv2Source code of Host and Guest OS
  • 90. OpenSourceWe are going to opensource in late August,2012.GNU GPLv2Source code of Host and Guest OSUser Guide
  • 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. OpenSource
  • 93. Q&A