Re: [Qemu-devel] [PATCH v2 08/10] hw/mips: In KVM mode, inject IRQ2 (I/O) interupts via ioctls

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

 



On 16 December 2013 14:12, James Hogan <james.hogan@xxxxxxxxxx> wrote:
> From: Sanjay Lal <sanjayl@xxxxxxxxxxx>
>
> COP0 emulation is in-kernel for KVM, so inject IRQ2 (I/O) interrupts via
> ioctls.
>
> Signed-off-by: Sanjay Lal <sanjayl@xxxxxxxxxxx>
> Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
> Cc: Aurelien Jarno <aurelien@xxxxxxxxxxx>
> ---
> Changes in v2:
>  - Expand commit message
>  - Remove #ifdef CONFIG_KVM since it's guarded by kvm_enabled() already
> ---
>  hw/mips/mips_int.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/hw/mips/mips_int.c b/hw/mips/mips_int.c
> index 7dbd24d..1b9981e 100644
> --- a/hw/mips/mips_int.c
> +++ b/hw/mips/mips_int.c
> @@ -23,6 +23,8 @@
>  #include "hw/hw.h"
>  #include "hw/mips/cpudevs.h"
>  #include "cpu.h"
> +#include "sysemu/kvm.h"
> +#include "kvm_mips.h"
>
>  static void cpu_mips_irq_request(void *opaque, int irq, int level)
>  {
> @@ -35,8 +37,17 @@ static void cpu_mips_irq_request(void *opaque, int irq, int level)
>
>      if (level) {
>          env->CP0_Cause |= 1 << (irq + CP0Ca_IP);
> +
> +        if (kvm_enabled() && irq == 2) {
> +            kvm_mips_set_interrupt(env, irq, level);
> +        }
> +
>      } else {
>          env->CP0_Cause &= ~(1 << (irq + CP0Ca_IP));
> +
> +        if (kvm_enabled() && irq == 2) {
> +            kvm_mips_set_interrupt(env, irq, level);
> +        }
>      }
>
>      if (env->CP0_Cause & CP0Ca_IP_mask) {

For ARM we got rid of the arm_cpu_pic functions (which were more
or less like these) completely, because we can just model CPU
interrupt lines as actual irq lines on the CPU object. See commits
7c1840b686e3 to b643e4b90bb0b. That's not necessary for
KVM support but it might be worth considering as a cleanup for
MIPS at some point: it helps to get the "is this kvm or tcg?" code
out of the device emulation stuff in hw/, and also means there's
less hw/ code grubbing around in CPUState.

thanks
-- PMM
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux