On Tue, Jun 27, 2017 at 05:35:37PM +0200, Alexander Graf wrote:
When running with KVM enabled, you can choose between emulating the
gic in kernel or user space. If the kernel supports in-kernel virtualization
of the interrupt controller, it will default to that. If not, if will
default to user space emulation.
Unfortunately when running in user mode gic emulation, we miss out on
interrupt events which are only available from kernel space, such as the timer.
This patch leverages the new kernel/user space pending line synchronization for
timer events. It does not handle PMU events yet.
Signed-off-by: Alexander Graf <address@hidden>
Reviewed-by: Andrew Jones <address@hidden>
---
v1 -> v2:
- whitespace fixes
- use !! to determine whether bit is set
- call in-kernel device IRQs out by their name everywhere
v2 -> v3:
- fix last occurence of calling out timer IRQs explicitly
---
accel/kvm/kvm-all.c | 5 +++++
accel/stubs/kvm-stub.c | 5 +++++
hw/intc/arm_gic.c | 7 +++++++
include/sysemu/kvm.h | 11 +++++++++++
target/arm/cpu.h | 3 +++
target/arm/kvm.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 82 insertions(+)
Tried testing this on a gicv3 machine, a ThunderX2. The guest kernel