[Android-virt] [PATCH v4 00/10] KVM/ARM Implementation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The following series implements KVM support for ARM processors,
specifically on the Cortex A-15 platform.

The patch series applies to the arm-lpae branch of ARM Ltd's kernel
tree. This is Version 4 of the patch series, but the first two versions
were reviewed outside of the KVM mailing list. Changes can also be
pulled from:
  git://git.ncl.cs.columbia.edu/pub/git/linux-kvm-arm kvm-a15-v4

The implementation is broken up into a logical set of patches, the first
one containing a skeleton of files, makefile changes, the basic user
space interface and KVM architecture specific stubs.  Subsequent patches
implement parts of the system as listed:
 1.  Skeleton
 2.  Identity Mapping for Hyp mode
 3.  Hypervisor intitalization
 4.  Hyp mode memory mappings and 2nd stage preparation
 5.  World-switch implementation and Hyp exception vectors
 6.  Emulation framework and CP15 emulation
 7.  Handle guest user memory aborts
 8.  Handle guest MMIO aborts
 9.  Handle userspace IRQ/FIQ injection
 10. Support guest wait-for-interrupt instructions.

Testing:
Limited testing, but have run GCC inside guest, which compiled a small
hellow-world program, which was successfully run. Hardware still
unavailable, so all testing has been done on ARM Fast Models.

For a guide on how to set up a testing environment and try out these
patches, see:
  http://wiki.ncl.cs.columbia.edu/wiki/KVMARM:Guides:Development_Environment

Changes since v3:
 - v4 actually works, fully boots a guest
 - Support compiling as a module
 - Use static inlines instead of macros for vcpu_reg and friends
 - Optimize kvm_vcpu_reg function
 - Use Ftrace for trace capabilities
 - Updated documentation and commenting
 - Use KVM_IRQ_LINE instead of KVM_INTERRUPT
 - Emulates load/store instructions not supported through HSR
   syndrome information.
 - Frees 2nd stage translation tables on VM teardown
 - Handles IRQ/FIQ instructions
 - Handles more CP15 accesses
 - Support guest WFI calls
 - Uses debugfs instead of /proc
 - Support compiling in Thumb mode

Changes since v2:
 - Performs world-switch code
 - Maps guest memory using 2nd stage translation
 - Emulates co-processor 15 instructions
 - Forwards I/O faults to QEMU.



Torsten Schwab
Marketing GmbH
Emanuelstr. 3,
10317 Berlin
Deutschland
Telefon: +49 (33) 5310967
Email: woozydude at gmail.com
Site: http://flug.prexxis.de/


[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux