kvm: x86: Establish IRQ0 override control
KVM is forced to disable the IRQ0 override when we run with in-kernelirqchip but without IRQ routing support of the kernel. Set the fwcfgvalue correspondingly. This aligns us with qemu-kvm.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
kvm: x86: Add user space part for in-kernel APIC
This introduces the alternative APIC device which makes use of KVM'sin-kernel device model. External NMI injection via LINT1 is emulated bychecking the current state of the in-kernel APIC, only injecting a NMI...
kvm: x86: Add user space part for in-kernel i8259
Introduce the alternative 'kvm-i8259' device model that exploits KVMin-kernel acceleration.
The PIIX3 initialization code is furthermore extended by KVM specificIRQ route setup. GSI injection differs in KVM mode from the user space...
kvm: x86: Add user space part for in-kernel IOAPIC
This introduces the KVM-accelerated IOAPIC model 'kvm-ioapic' andextends the IRQ routing setup by the 0->2 redirection when needed.
The kvm-ioapic model has a property that allows to define its GSI base...
ioapic: Drop post-load irr initialization
As all devices undergo a reset prior to vmloa, and the reset value ofirr is 0, we do not need to do this clearing for older vmstatesexplicitly. Dropping this redundant code will also make KVM integrationa bit simpler....
ioapic: Factor out base class for KVM reuse
Split up the IOAPIC analogously to APIC and i8259. KVM will share theIOAPICCommonState, the vmstate, reset logic and certain init parts withthe user space model.
apic: Factor out base class for KVM reuse
The KVM in-kernel APIC model will reuse parts of the user space modelwhile providing the same frontend view to guest and most managementinterfaces.
Factor out an APIC base class to encapsulate those parts that will be...
apic: Open-code timer save/restore
To enable migration between accelerated and non-accelerated APIC models,we will need to handle the timer saving and restoring specially and canno longer rely on the automatics of VMSTATE_TIMER. Specifically,accelerated model will not start any QEMUTimer....
i8259: Completely privatize PicState
Use DeviceState instead of PicState in the public i8259 API. This iscleaner and allows to reorganize the PIC data structures for KVM reuse.
i8259: Factor out base class for KVM reuse
Analogously to the APIC, we will reuse some parts of the user spacei8259 model for KVM. The base class provides a common device state, thevmstate, the property list, a reset core and some shared init bits.
This also introduces a common helper to instantiate a single i8259 chip...
View revisions
Also available in: Atom