qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC v2] Add support for KVM_CAP_SPLIT_IRQCHIP


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [RFC v2] Add support for KVM_CAP_SPLIT_IRQCHIP
Date: Wed, 4 Nov 2015 22:23:14 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0


On 02/11/2015 22:19, Matt Gingell wrote:
> Hi Jan, 
> 
> Would you be able to look this over? I’d like to get this into shape to 
> commit, 
> either now or once the corresponding kernel patch goes in.
> 
> Thanks,
> Matt
> 
> Add support for KVM_CAP_SPLIT_IRQCHIP
> 
> Adds a new alternative 'split' to the -machine kernel-irqchip option.
> When split mode is specified:
> 
>      1.) KVM_CAP_SPLIT_IRQCHIP is enabled.
> 
>      2.) The PIC, PIT, and IOAPIC are implemented in userspace while the
>      LAPIC is implemented by KVM.
> 
>      3.) The software IOAPIC delivers interrupts to the KVM LAPIC via
>      kvm_set_irq. Interrupt delivery is configured via the MSI routing
>      table, for which routes are reserved in target-i386/kvm.c then
>      configured in hw/intc/ioapic.c
> 
>      4.) KVM delivers IOAPIC EOIs via a new exit KVM_EXIT_IOAPIC_EOI,
>      which is handled in target-i386/kvm.c and relayed to the software
>      IOAPIC via ioapic_eoi_broadcast.

I had looked at v1, and there was nothing surprising.  I was travelling
and couldn't comment immediately.

I only have a couple of notes:

1) the kvm_*_in_kernel() rename should be a separate patch;

2) this:

+    if (machine_kernel_irqchip_split(machine)) {
+        ret = kvm_vm_enable_cap(s, KVM_CAP_SPLIT_IRQCHIP, 0, 24);
+        if (ret) {
+            error_report("Could not enable split irqchip mode: %s\n",
+                         strerror(-ret));

and "bool kvm_split_irqchip" should go in target-i386/kvm.c, using the
existing kvm_arch_irqchip_create hook;

3) other arches than i386 should reject kernel_irqchip=split.

More importantly, I would like to understand what is the kernel issue
that you are getting.  It should be resolved before 4.4 goes out in two
months, of course.

Paolo



reply via email to

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