kvm: qemu: add qemu command line option -no-kvm-irqchip
    
    This option disables in-kernel irqchip (PIC/IOAPIC/LAPIC) and uses
    qemu interrupt controllers in userspace instead.
    
    Signed-off-by: Qing He <[EMAIL PROTECTED]>
---
 qemu/qemu-kvm.c |    4 ++++
 qemu/vl.c       |    5 +++++
 qemu/vl.h       |    1 +
 3 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/qemu/qemu-kvm.c b/qemu/qemu-kvm.c
index a0e01e7..83cdcd4 100644
--- a/qemu/qemu-kvm.c
+++ b/qemu/qemu-kvm.c
@@ -9,6 +9,7 @@
 #endif
 
 int kvm_allowed = KVM_ALLOWED_DEFAULT;
+int kvm_irqchip = 1;
 
 #ifdef USE_KVM
 
@@ -923,6 +924,9 @@ int kvm_qemu_create_context(void)
 {
     int i;
 
+    if (!kvm_irqchip) {
+        kvm_disable_irqchip_creation(kvm_context);
+    }
     if (kvm_create(kvm_context, phys_ram_size, (void**)&phys_ram_base)
< 0) {
        kvm_qemu_destroy();
        return -1;
diff --git a/qemu/vl.c b/qemu/vl.c
index 7150d48..cae52cf 100644
--- a/qemu/vl.c
+++ b/qemu/vl.c
@@ -6569,6 +6569,7 @@ enum {
     QEMU_OPTION_vnc,
     QEMU_OPTION_no_acpi,
     QEMU_OPTION_no_kvm,
+    QEMU_OPTION_no_kvm_irqchip,
     QEMU_OPTION_no_reboot,
     QEMU_OPTION_daemonize,
     QEMU_OPTION_option_rom,
@@ -6638,6 +6639,7 @@ const QEMUOption qemu_options[] = {
 #endif
 #ifdef USE_KVM
     { "no-kvm", 0, QEMU_OPTION_no_kvm },
+    { "no-kvm-irqchip", 0, QEMU_OPTION_no_kvm_irqchip },
 #endif
 #if defined(TARGET_PPC) || defined(TARGET_SPARC)
     { "g", 1, QEMU_OPTION_g },
@@ -7347,6 +7349,9 @@ int main(int argc, char **argv)
            case QEMU_OPTION_no_kvm:
                kvm_allowed = 0;
                break;
+           case QEMU_OPTION_no_kvm_irqchip:
+               kvm_irqchip = 0;
+               break;
 #endif
             case QEMU_OPTION_usb:
                 usb_enabled = 1;
diff --git a/qemu/vl.h b/qemu/vl.h
index 43f56bd..75289f8 100644
--- a/qemu/vl.h
+++ b/qemu/vl.h
@@ -163,6 +163,7 @@ extern int graphic_depth;
 extern const char *keyboard_layout;
 extern int kqemu_allowed;
 extern int kvm_allowed;
+extern int kvm_irqchip;
 extern int win2k_install_hack;
 extern int usb_enabled;
 extern int smp_cpus;

Attachment: kvm-qemu-option-no-irqchip-creation.patch
Description: kvm-qemu-option-no-irqchip-creation.patch

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to