qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v3] ARM: KVM: Enable in-kernel timers with user


From: Alexander Graf
Subject: Re: [Qemu-devel] [PATCH v3] ARM: KVM: Enable in-kernel timers with user space gic
Date: Wed, 28 Jun 2017 14:36:17 +0200
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.2.1



On 28.06.17 13:51, Andrew Jones wrote:
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

Did you patch QEMU to automatically choose the gic version? The upstream default is to have gicv2 as the guest gic type. And gicv2 should work just fine.

I have seen issues with gicv3 emulation in user space, yes. I guess we don't have a channel to properly trap the MSRs into user space yet.


Alex



reply via email to

[Prev in Thread] Current Thread [Next in Thread]