mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-15 14:13:31 -06:00
kvm: add support for -machine kernel_irqchip=split
This patch adds the initial plumbing for split IRQ chip mode via KVM_CAP_SPLIT_IRQCHIP. In addition to option processing, a number of kvm_*_in_kernel macros are defined to help clarify which component is where. Signed-off-by: Matt Gingell <gingell@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
ff99aa64b1
commit
32c18a2dba
6 changed files with 73 additions and 9 deletions
|
@ -35,6 +35,7 @@ extern MachineState *current_machine;
|
|||
bool machine_usb(MachineState *machine);
|
||||
bool machine_kernel_irqchip_allowed(MachineState *machine);
|
||||
bool machine_kernel_irqchip_required(MachineState *machine);
|
||||
bool machine_kernel_irqchip_split(MachineState *machine);
|
||||
int machine_kvm_shadow_mem(MachineState *machine);
|
||||
int machine_phandle_start(MachineState *machine);
|
||||
bool machine_dump_guest_core(MachineState *machine);
|
||||
|
@ -111,6 +112,7 @@ struct MachineState {
|
|||
char *accel;
|
||||
bool kernel_irqchip_allowed;
|
||||
bool kernel_irqchip_required;
|
||||
bool kernel_irqchip_split;
|
||||
int kvm_shadow_mem;
|
||||
char *dtb;
|
||||
char *dumpdtb;
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
|
||||
extern bool kvm_allowed;
|
||||
extern bool kvm_kernel_irqchip;
|
||||
extern bool kvm_split_irqchip;
|
||||
extern bool kvm_async_interrupts_allowed;
|
||||
extern bool kvm_halt_in_kernel_allowed;
|
||||
extern bool kvm_eventfds_allowed;
|
||||
|
@ -70,6 +71,16 @@ extern bool kvm_ioeventfd_any_length_allowed;
|
|||
*/
|
||||
#define kvm_irqchip_in_kernel() (kvm_kernel_irqchip)
|
||||
|
||||
/**
|
||||
* kvm_irqchip_is_split:
|
||||
*
|
||||
* Returns: true if the user asked us to split the irqchip
|
||||
* implementation between user and kernel space. The details are
|
||||
* architecture and machine specific. On PC, it means that the PIC,
|
||||
* IOAPIC, and PIT are in user space while the LAPIC is in the kernel.
|
||||
*/
|
||||
#define kvm_irqchip_is_split() (kvm_split_irqchip)
|
||||
|
||||
/**
|
||||
* kvm_async_interrupts_enabled:
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue