Port-arm archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [PATCH] Support for Versatile Express A15
On Sunday 08 February 2015 13:24:36 Justin Cormack wrote:
> On 3 February 2015 at 20:33, Sergio L. Pascual <slp%sinrega.org@localhost> wrote:
> > This board is interesting for two reasons: is a well supported ARMv7
> > platform within QEMU, and it's a first step towards running NetBSD/evbarm
> > as a guest on KVM/ARM.
>
> Out of interest what are the kvm additional requirements above these
> patches?
>
I've just uploaded the patches for KVM support to
http://www.netbsd.org/~slp/kvm
- 01_vexpress_kvm_guest.patch: Add an independent configuration file for
Versatile Express A15 with KVM support. Add an specialized driver for KVM's
vGIC(*).
- 02_gtmr_add_kvm_support.patch: If targeting KVM, rearm timer at each
interrupt.
- 03_gtmr_enable_timer_after_tval.patch: Enable timer after writing TVAL.
This avoids an unpredictable behavior when running as KVM Guest.
- 04_cortex_pmu_use_virtual_counter.patch: If targeting KVM, use the Virtual
Timer Value Register, as the Cycle Count Register is not available when
running as KVM Guest.
(*) This probably deserves some explaining. Our current controller for Cortex
GIC has two problems with KVM's vGIC:
1) It relies on interrupt levels and the PMR, which KVM doesn't implement yet
(the PMR just acts like an all-or-nothing switch). The alternative driver
implements a strategy similar to Nick's RPi interrupt handler, using pic.c
instrumentation to avoid relying on IRQ levels.
2) Under KVM, the GIC's CPU interface is hardware assisted, and can be
cheaply used, but the distributor is emulated and accessing it traps to the
Host, which makes the Guest unbearable slow. The alternative driver avoids
using the distributor to mask interrupts by delaying EOI until
pic_unblock_irqs is called.
There's still some work to be done to be able to run under KVM with a decent
performance:
- Add support for VirtIO-MMIO devices.
- Add MULTIPROCESSOR support.
Sergio.
Home |
Main Index |
Thread Index |
Old Index