xemu/include/hw
Peter Xu 20fd4b7b6d x86: ioapic: add support for explicit EOI
Some old Linux kernels (upstream before v4.0), or any released RHEL
kernels has problem in sending APIC EOI when IR is enabled. Meanwhile,
many of them only support explicit EOI for IOAPIC, which is only
introduced in IOAPIC version 0x20. This patch provide a way to boost
QEMU IOAPIC to version 0x20, in order for QEMU to correctly receive EOI
messages.

Without boosting IOAPIC version to 0x20, kernels before commit d32932d
("x86/irq: Convert IOAPIC to use hierarchical irqdomain interfaces")
will have trouble enabling both IR and level-triggered interrupt devices
(like e1000).

To upgrade IOAPIC to version 0x20, we need to specify:

  -global ioapic.version=0x20

To be compatible with old systems, 0x11 will still be the default IOAPIC
version. Here 0x11 and 0x20 are the only versions to be supported.

One thing to mention: this patch only applies to emulated IOAPIC. It
does not affect kernel IOAPIC behavior.

Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <1470059959-372-1-git-send-email-peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-08-03 18:44:57 +02:00
..
acpi acpi: add DMAR scope definition for root IOAPIC 2016-07-20 19:30:27 +03:00
arm Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
audio Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
block block/qdev: Allow configuring rerror/werror with qdev properties 2016-07-13 13:32:27 +02:00
char Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
cpu qapi: keep names in 'CpuInstanceProperties' in sync with struct CPUCore 2016-06-27 13:15:06 +10:00
cris Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
display Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
dma Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
gpio Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
i2c Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
i386 x86: ioapic: add support for explicit EOI 2016-08-03 18:44:57 +02:00
ide Use #include "..." for our own headers, <...> for others 2016-07-12 16:19:16 +02:00
input Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
intc gic: provide defines for v2/v3 targetlist sizes 2016-07-14 16:51:37 +01:00
ipack ipack: Update e-mail address 2016-05-18 15:04:27 +03:00
ipmi ipmi: rework the fwinfo to be fetched from the interface 2016-06-07 15:36:54 +03:00
isa Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
kvm hw: move headers to include/ 2013-04-08 18:13:10 +02:00
lm32 hmp: Name HMP info handler functions hmp_info_SUBCOMMAND() 2015-02-18 11:58:50 +01:00
m68k m68k: include cpu-qom.h in files that require M68KCPU 2016-05-19 16:42:27 +02:00
mem nvdimm: support nvdimm label 2016-06-24 05:13:57 +03:00
mips hw/mips/cps: create GIC block inside CPS 2016-07-12 09:10:13 +01:00
misc ast2400: externalize revision numbers 2016-07-14 16:51:39 +01:00
net Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
nvram * Updated fw_cfg option ROM to include DMA support 2016-07-14 16:49:18 +01:00
pci pcie: fix link active status bit migration 2016-07-29 00:07:08 +03:00
pci-host acpi: add DMAR scope definition for root IOAPIC 2016-07-20 19:30:27 +03:00
ppc Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
s390x s390x/css: provide a dev_path for css devices 2016-07-20 15:47:25 +02:00
scsi scsi-bus: Use longer sense buffer with scanners 2016-07-12 18:31:26 +02:00
sd Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
sh4 Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
smbios Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
sparc Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
ssi Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
timer Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
tricore Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
unicore32 Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
usb Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
vfio Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
virtio vhost: add vhost_net_set_backend() 2016-07-29 00:33:49 +03:00
watchdog Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
xen Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
boards.h machine: Add machine_register_compat_props() function 2016-07-07 15:24:54 -03:00
bt.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
compat.h hw/virtio-pci: fix virtio behaviour 2016-07-29 00:07:10 +03:00
devices.h arm: fix location of some include files 2013-04-15 15:16:01 +02:00
elf_ops.h loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
empty_slot.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
fw-path-provider.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
hotplug.h qdev: hotplug: Introduce HotplugHandler.pre_plug() callback 2016-06-17 16:33:48 +10:00
hw.h hw: clean up hw/hw.h includes 2016-05-19 16:42:30 +02:00
ide.h Call pci_piix3_xen_ide_unplug from unplug_disks 2014-02-20 17:28:08 +00:00
irq.h irq: Remove qemu_irq_intercept_out 2014-10-23 16:41:25 +02:00
loader.h Sort the fw_cfg file list 2016-04-07 19:57:33 +03:00
nmi.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
pcmcia.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
platform-bus.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
ptimer.h hw/ptimer: Introduce ptimer_get_limit 2016-06-06 16:59:31 +01:00
qdev-core.h qdev: ignore GlobalProperty.errp for hotplugged devices 2016-07-27 11:25:06 -03:00
qdev-dma.h qdev: Remove hex8/32/64 property types 2014-02-14 21:12:04 +01:00
qdev-properties.h block/qdev: Allow configuring rerror/werror with qdev properties 2016-07-13 13:32:27 +02:00
qdev.h hw: move headers to include/ 2013-04-08 18:13:10 +02:00
register.h register: Add block initialise helper 2016-07-04 13:15:22 +01:00
stream.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
sysbus.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
usb.h usb: Add QOM property "attached". 2016-06-22 12:53:26 +02:00