This patch adds support for split IRQ chip mode. When
KVM_CAP_SPLIT_IRQCHIP is enabled:
1.) The PIC, PIT, and IOAPIC are implemented in userspace while
the LAPIC is implemented by KVM.
2.) 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
3.) 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.
Signed-off-by: Matt Gingell <gingell@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||
|---|---|---|
| .. | ||
| Makefile.objs | ||
| arch-query-cpu-def.c | ||
| bdrv-commit-all.c | ||
| clock-warp.c | ||
| cpu-get-clock.c | ||
| cpu-get-icount.c | ||
| cpus.c | ||
| dump.c | ||
| fd-register.c | ||
| fdset-add-fd.c | ||
| fdset-find-fd.c | ||
| fdset-get-fd.c | ||
| fdset-remove-fd.c | ||
| gdbstub.c | ||
| get-fd.c | ||
| get-next-serial.c | ||
| get-vm-name.c | ||
| iothread-lock.c | ||
| is-daemonized.c | ||
| kvm.c | ||
| machine-init-done.c | ||
| migr-blocker.c | ||
| mon-is-qmp.c | ||
| mon-printf.c | ||
| monitor-init.c | ||
| notify-event.c | ||
| qmp_pc_dimm_device_list.c | ||
| qtest.c | ||
| replay-user.c | ||
| replay.c | ||
| reset.c | ||
| runstate-check.c | ||
| set-fd-handler.c | ||
| slirp.c | ||
| sysbus.c | ||
| target-get-monitor-def.c | ||
| target-monitor-defs.c | ||
| uuid.c | ||
| vhost.c | ||
| vm-stop.c | ||
| vmstate.c | ||