qemu-e2k/include
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
..
block block: Cater to iscsi with non-power-of-2 discard 2016-08-03 18:44:57 +02:00
crypto crypto: add support for querying parameters for block encryption 2016-07-26 17:46:37 +02:00
disas disas: Fix ATTRIBUTE_UNUSED define clash with ALSA headers 2016-07-19 16:40:39 +01:00
exec exec: Reduce CONFIG_USER_ONLY ifdeffenery 2016-07-26 15:31:58 -03:00
fpu Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
hw x86: ioapic: add support for explicit EOI 2016-08-03 18:44:57 +02:00
io Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
libdecnumber Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
migration Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
monitor Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
net net: Use correct type for bool flag 2016-07-19 20:18:27 +02:00
qapi blockjob: Update description of the 'id' field 2016-07-13 13:26:02 +02:00
qemu osdep: Document differences in rounding macros 2016-08-03 18:44:56 +02:00
qom exec: Set cpu_index only if it's not been explictly set 2016-07-26 15:32:01 -03:00
standard-headers linux-headers: update 2016-06-14 13:34:50 +02:00
sysemu char: add chr_wait_connected callback 2016-07-29 00:33:48 +03:00
ui gtk: fix build 2016-07-11 10:40:29 +01:00
elf.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
glib-compat.h vhost-user-test: fix g_cond_wait_until compat implementation 2016-06-29 16:49:40 +02:00
qemu-common.h qemu-common.h: Drop WORDS_ALIGNED define 2016-06-07 18:19:24 +03:00
qemu-io.h qemu-io: Use BlockBackend 2015-02-16 15:07:19 +00:00
trace-tcg.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
trace.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00