armvisor @ coscup2012

Download ARMvisor @ COSCUP2012

If you can't read please download the document

Upload: peter-chang

Post on 19-May-2015

932 views

Category:

Technology


7 download

TRANSCRIPT

  • 1. ARMvisor:ARMPeter Chang @ SSLab, Dept. of CS, NTHU [email protected] 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?Ofcially support x86/x64, PowerPC, S390 12. What is KVM?Ofcially support x86/x64, PowerPC, S390No ofcial support for ARM architecture 13. What is ARMvisor? 14. What is ARMvisor?ARMKVM 15. What is ARMvisor?ARMKVMPara-virtualization 16. What is ARMvisor?ARMKVMPara-virtualizationTrap & Emulation 17. What is ARMvisor?ARMKVMPara-virtualizationTrap & EmulationDynamic Memory Allocation 18. What is ARMvisor?ARMKVMPara-virtualizationTrap & EmulationDynamic Memory Allocationvirtio & IRQchip-in-kernel 19. Hardware: ARM Cortex-A8 20. Host OS: Linux 2.6.38Hardware: ARM Cortex-A8 21. ARMvisorHost OS: Linux 2.6.38Hardware: ARM Cortex-A8 22. DriverARMvisor Host OS: Linux 2.6.38Hardware: ARM Cortex-A8 23. QEMU 0.14DriverARMvisor Host OS: Linux 2.6.38Hardware: ARM Cortex-A8 24. QEMU 0.14 DeviceDriverARMvisor Host OS: Linux 2.6.38Hardware: ARM Cortex-A8 25. QEMU 0.14 DeviceDriverARMvisor Host OS: Linux 2.6.38Hardware: ARM Cortex-A8 26. Guest OS: Linux 2.6.35 QEMU 0.14 DeviceDriverARMvisor Host OS: Linux 2.6.38Hardware: ARM Cortex-A8 27. Guest OS: Linux 2.6.35 QEMU 0.14 DeviceDriverARMvisor Host OS: Linux 2.6.38Hardware: ARM Cortex-A8 28. Guest OS: Linux 2.6.35 Driver QEMU 0.14 DeviceDriverARMvisor Host OS: Linux 2.6.38Hardware: ARM Cortex-A8 29. Who are developers? @ 30. 2012 20112010 2009 31. 2012 20112010 2009 32. 20122011 2010Starting Point2009 33. 20122011 2010Starting Point2009 34. 20122011 ARMvisor Prototype 2010Starting Point2009 35. 20122011 ARMvisor Prototype 2010Starting Point2009 36. 2012CPU Opt & Mem Opt 2011ARMvisor Prototype2010 Starting Point 2009 37. 2012CPU Opt & Mem Opt 2011ARMvisor Prototype2010 Starting Point 2009 38. I/O Opt2012CPU Opt & Mem Opt 2011ARMvisor Prototype2010 Starting Point 2009 39. Current achievement 40. Supported Hardware 41. Supported HardwareSupported Software 42. Supported HardwareSupported SoftwareDemo 43. Supported HardwareARM Realview-ebARM11ARMv6 ISA 44. Supported Hardware TI BeagleBoard Cortex-A8ARMv7 ISA 45. Supported Hardware QEMU emulatorEmulating Vexpress-a9QEMUCortex-A9 ARMv7 ISA 46. Supported SoftwarePatched Host OS:Linaro Linux 2.6.38Host Root FilesystemUbuntu/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 CPUPatch guest OSTrap and emulation 51. Sensitive instructions Sensitive Instructions Non-SensitiveInstructions 52. Privileged instructions Privilegedinstructions Non-Privilegedinstructions 53. Virtualizable CPU 54. Virtualizable CPUSensitiveInstructions 55. Virtualizable CPUSensitivePrivilegedInstructionsinstructions 56. Virtualizable CPUSensitiveInstructions = Privilegedinstructions 57. Virtualizable CPUSensitiveInstructions=PrivilegedinstructionsNon-Sensitive Instructions 58. Virtualizable CPUSensitiveInstructions= Privileged instructionsNon-Sensitive Non-Privileged Instructionsinstructions 59. Virtualizable CPUSensitiveInstructions= Privileged instructionsNon-Sensitive Instructions = Non-Privileged instructions 60. Non-virtualizable CPUSensitiveInstructions=Privilegedinstructions Non-PrivilegedinstructionsNon-Sensitive Instructions 61. Critical Instructions 62. Critical Instructions SP NP NS 63. Critical InstructionsSS&PP NPNS 64. Critical InstructionsSS&P S&NPP NPNS 65. Critical Instructions SS&PS&NPP NPNS&P NS 66. Critical Instructions SS&PS&NPPNPNS&P NS&NP NS 67. Critical InstructionsSS&P S&NPP NPNS 68. Critical Instructions S Privilege S&NPP NP NS 69. Critical Instructions S Privilege CriticalP NP NS 70. Trap & emulationGuest%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&DriverGuestVir$o&PCI&Controller Vring TransportVir$o&PCI&ControllerQEMU Vir$o&Device 76. irq_chip in kernel Guest Deliver7GIC QEMU IRQ7Control7GIC7Device DeviceDeviceIOCTL7ARMvisor 77. irq_chip in kernelGuestDeliver$IRQ$ QEMUDevice Device Device Control$ GIC$GIC$in$KernelKVM 78. Future Works 79. Future Works 80. Future WorksSupport for ARMs Virtualization extension 81. Future WorksSupport for ARMs Virtualization extensionCortex-A15 and beyond 82. Future WorksSupport for ARMs Virtualization extensionCortex-A15 and beyondSMP for host and guest 83. Future WorksSupport for ARMs Virtualization extensionCortex-A15 and beyondSMP for host and guestAArch64 Support 84. Future WorksSupport for ARMs Virtualization extensionCortex-A15 and beyondSMP for host and guestAArch64 SupportARMv8 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