diff mbox

[v2] kvm: x86: q35: Add support for -machine kernel_irqchip=split for q35

Message ID 1457378525-16455-1-git-send-email-rita.sinha89@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Rita Sinha March 7, 2016, 7:22 p.m. UTC
The split IRQ chip mode via KVM_CAP_SPLIT_IRQCHIP was introduced with commit
15eafc2e60 but was broken for q35. This patch makes kernel_irqchip=split
functional for q35.

Signed-off-by: Rita Sinha <rita.sinha89@gmail.com>
---
 hw/i386/pc_q35.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Jan Kiszka March 7, 2016, 7:25 p.m. UTC | #1
On 2016-03-07 20:22, Rita Sinha wrote:
> The split IRQ chip mode via KVM_CAP_SPLIT_IRQCHIP was introduced with commit
> 15eafc2e60 but was broken for q35. This patch makes kernel_irqchip=split
> functional for q35.
> 
> Signed-off-by: Rita Sinha <rita.sinha89@gmail.com>
> ---
>  hw/i386/pc_q35.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> index 46522c9..fcc127b 100644
> --- a/hw/i386/pc_q35.c
> +++ b/hw/i386/pc_q35.c
> @@ -39,6 +39,7 @@
>  #include "hw/kvm/clock.h"
>  #include "hw/pci-host/q35.h"
>  #include "exec/address-spaces.h"
> +#include "hw/i386/pc.h"
>  #include "hw/i386/ich9.h"
>  #include "hw/smbios/smbios.h"
>  #include "hw/ide/pci.h"
> @@ -145,7 +146,7 @@ static void pc_q35_init(MachineState *machine)
>  
>      /* irq lines */
>      gsi_state = g_malloc0(sizeof(*gsi_state));
> -    if (kvm_irqchip_in_kernel()) {
> +    if (kvm_ioapic_in_kernel()) {
>          kvm_pc_setup_irq_routing(pcmc->pci_enabled);
>          gsi = qemu_allocate_irqs(kvm_pc_gsi_handler, gsi_state,
>                                   GSI_NUM_PINS);
> @@ -192,7 +193,7 @@ static void pc_q35_init(MachineState *machine)
>      /*end early*/
>      isa_bus_irqs(isa_bus, gsi);
>  
> -    if (kvm_irqchip_in_kernel()) {
> +    if (kvm_pic_in_kernel()) {
>          i8259 = kvm_i8259_init(isa_bus);
>      } else if (xen_enabled()) {
>          i8259 = xen_interrupt_controller_init();
> 

Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
Paolo Bonzini March 8, 2016, 12:32 p.m. UTC | #2
On 07/03/2016 20:25, Jan Kiszka wrote:
> On 2016-03-07 20:22, Rita Sinha wrote:
>> The split IRQ chip mode via KVM_CAP_SPLIT_IRQCHIP was introduced with commit
>> 15eafc2e60 but was broken for q35. This patch makes kernel_irqchip=split
>> functional for q35.
>>
>> Signed-off-by: Rita Sinha <rita.sinha89@gmail.com>
>> ---
>>  hw/i386/pc_q35.c | 5 +++--
>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
>> index 46522c9..fcc127b 100644
>> --- a/hw/i386/pc_q35.c
>> +++ b/hw/i386/pc_q35.c
>> @@ -39,6 +39,7 @@
>>  #include "hw/kvm/clock.h"
>>  #include "hw/pci-host/q35.h"
>>  #include "exec/address-spaces.h"
>> +#include "hw/i386/pc.h"
>>  #include "hw/i386/ich9.h"
>>  #include "hw/smbios/smbios.h"
>>  #include "hw/ide/pci.h"
>> @@ -145,7 +146,7 @@ static void pc_q35_init(MachineState *machine)
>>  
>>      /* irq lines */
>>      gsi_state = g_malloc0(sizeof(*gsi_state));
>> -    if (kvm_irqchip_in_kernel()) {
>> +    if (kvm_ioapic_in_kernel()) {
>>          kvm_pc_setup_irq_routing(pcmc->pci_enabled);
>>          gsi = qemu_allocate_irqs(kvm_pc_gsi_handler, gsi_state,
>>                                   GSI_NUM_PINS);
>> @@ -192,7 +193,7 @@ static void pc_q35_init(MachineState *machine)
>>      /*end early*/
>>      isa_bus_irqs(isa_bus, gsi);
>>  
>> -    if (kvm_irqchip_in_kernel()) {
>> +    if (kvm_pic_in_kernel()) {
>>          i8259 = kvm_i8259_init(isa_bus);
>>      } else if (xen_enabled()) {
>>          i8259 = xen_interrupt_controller_init();
>>
> 
> Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
> 

Applied, thanks to both!

Paolo
diff mbox

Patch

diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 46522c9..fcc127b 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -39,6 +39,7 @@ 
 #include "hw/kvm/clock.h"
 #include "hw/pci-host/q35.h"
 #include "exec/address-spaces.h"
+#include "hw/i386/pc.h"
 #include "hw/i386/ich9.h"
 #include "hw/smbios/smbios.h"
 #include "hw/ide/pci.h"
@@ -145,7 +146,7 @@  static void pc_q35_init(MachineState *machine)
 
     /* irq lines */
     gsi_state = g_malloc0(sizeof(*gsi_state));
-    if (kvm_irqchip_in_kernel()) {
+    if (kvm_ioapic_in_kernel()) {
         kvm_pc_setup_irq_routing(pcmc->pci_enabled);
         gsi = qemu_allocate_irqs(kvm_pc_gsi_handler, gsi_state,
                                  GSI_NUM_PINS);
@@ -192,7 +193,7 @@  static void pc_q35_init(MachineState *machine)
     /*end early*/
     isa_bus_irqs(isa_bus, gsi);
 
-    if (kvm_irqchip_in_kernel()) {
+    if (kvm_pic_in_kernel()) {
         i8259 = kvm_i8259_init(isa_bus);
     } else if (xen_enabled()) {
         i8259 = xen_interrupt_controller_init();