DM: increase vioapic pin count

Current only 8 vioapic pins for pci irq (total 24 with 16 reserved),
which easily leads virtual GSI sharing with more and more passthrough
devices. This patch doulbes vioapic pin count and adds reboot hooks to
allocate from same pin after each reboot.

Signed-off-by: Edwin Zhai <edwin.zhai@intel.com>
Reviewed-by: Yin Fengwei <fengwei.yin@intel.com>
Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com>
Reviewed-by: Eddie Dong <eddie.dong@intel.com>
Reviewed-by: Anthony Xu <anthony.xu@intel.com>
This commit is contained in:
Edwin Zhai
2018-05-15 09:32:29 +08:00
committed by lijinxia
parent e1bb372763
commit 30549a59c7
6 changed files with 25 additions and 22 deletions

View File

@@ -501,6 +501,7 @@ vrtc_fail:
ioc_deinit(ctx);
atkbdc_deinit(ctx);
pci_irq_deinit(ctx);
ioapic_deinit();
return -1;
}
@@ -514,6 +515,7 @@ vm_deinit_vdevs(struct vmctx *ctx)
ioc_deinit(ctx);
atkbdc_deinit(ctx);
pci_irq_deinit(ctx);
ioapic_deinit();
}
static void

View File

@@ -618,13 +618,6 @@ vm_isa_pulse_irq(struct vmctx *ctx, int atpic_irq, int ioapic_irq)
return vm_isa_irq(ctx, atpic_irq, ioapic_irq, IC_PULSE_IRQLINE);
}
int
vm_ioapic_pincount(struct vmctx *ctx, int *pincount)
{
*pincount = 24;
return 0;
}
int
vm_assign_ptdev(struct vmctx *ctx, int bus, int slot, int func)
{