-machine vmport=off: Allow disabling of VMWare ioport emulation
PATCH 1/1 -machine vmport=off: Allow disabling of VMWare ioport emulation
From: "Dr. David Alan Gilbert" <[email protected]>
VMWare apparently doesn't like running under QEMU due to our incomplete emulation of it's special IO Port. This adds a -machine suboption to allow it to be turned off.
--- hw/i386/pc_piix.c | 5 +++-- hw/i386/pc_q35.c | 5 ++++- qemu-options.hx | 3 +++ vl.c | 4 ++++ 4 files changed, 14 insertions(+), 3 deletions(-)
hw/i386/pc_piix.c +3 -2
@@ -204,8 +204,9 @@ static void pc_init1(QEMUMachineInitArgs *args,pc_vga_init (isa_bus, pci_enabled ? pci_bus :NULL );/* init basic PC hardware */ -pc_basic_device_init (isa_bus, gsi, &rtc_state, &floppy,xen_enabled (), -0x4 ); +pc_basic_device_init (isa_bus, gsi, &rtc_state, &floppy, + !qemu_opt_get_bool (qemu_get_machine_opts (),"vmport" , + true) ||xen_enabled (),0x4 );pc_nic_init (isa_bus, pci_bus);
hw/i386/pc_q35.c +4 -1
@@ -206,7 +206,10 @@ static void pc_q35_init(QEMUMachineInitArgs *args)pc_register_ferr_irq (gsi[13 ]);/* init basic PC hardware */ -pc_basic_device_init (isa_bus, gsi, &rtc_state, &floppy, false,0xff0104 ); +pc_basic_device_init (isa_bus, gsi, &rtc_state, &floppy, + !qemu_opt_get_bool (qemu_get_machine_opts (),"vmport" , + true), +0xff0104 );/* connect pm stuff to lpc */ ich9_lpc_pm_init (lpc);
qemu-options.hx +3 -0
@@ -33,6 +33,7 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \ " property accel=accel1[:accel2[:...]] selects accelerator\n" " supported accelerators are kvm, xen, tcg (default: tcg)\n" " kernel_irqchip=on|off controls accelerated irqchip support\n" + " vmport=on|off controls emulation of vmport (default: on)\n" " kvm_shadow_mem=size of KVM shadow MMU\n" " dump-guest-core=on|off include guest memory in a core dump (default=on)\n" " mem-merge=on|off controls memory merge support (default: on)\n",
@@ -50,6 +51,8 @@ than one accelerator specified, the next one is used if the previous one fails to initialize. @item kernel_irqchip=on|off Enables in-kernel irqchip support for the chosen accelerator when available. +@item vmport=on|off +Enables emulation of VMWare IO port, for vmmouse etc. (enabled by default) @item kvm_shadow_mem=size Defines the size of the KVM shadow MMU. @item dump-guest-core=on|off
vl.c +4 -0
@@ -331,6 +331,10 @@ static QemuOptsList qemu_machine_opts = { .type = QEMU_OPT_BOOL, .help = "use KVM in-kernel irqchip", }, { + .name = "vmport", + .type = QEMU_OPT_BOOL, + .help = "Enable vmport", + }, { .name = "kvm_shadow_mem", .type = QEMU_OPT_SIZE, .help = "KVM shadow MMU size",
Signature · 1 line
1.9.0
Quoted 7 lines · Dr. David Alan Gilbert (git)
From: "Dr. David Alan Gilbert" <[email protected]>
VMWare apparently doesn't like running under QEMU due to our incomplete emulation of it's special IO Port. This adds a -machine suboption to allow it to be turned off.
Signed-off-by Dr. David Alan Gilbert <[email protected]>
I was able to use this option in order to install VMware ESXi as a guest under KVM. Here are my notes on how to do this:
https://rwmj.wordpress.com/2014/05/19/notes-on-getting-vmware-esxi-to-run-under-kvm/#content
Rich.
Signature · 5 lines
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/
hw/i386/pc_piix.c static void pc_init1(QEMUMachineInitArgs *args, · line 209
Quoted 6 lines
/* init basic PC hardware */hw/i386/pc_piix.c +3
-2-pc_basic_device_init (isa_bus, gsi, &rtc_state, &floppy,xen_enabled (), -0x4 ); +pc_basic_device_init (isa_bus, gsi, &rtc_state, &floppy, + !qemu_opt_get_bool (qemu_get_machine_opts (),"vmport" , + true) ||xen_enabled (),0x4 );
pc_basic_device_init
(isa_bus, gsi, &rtc_state, &floppy,
!qemu_opt_get_bool(qemu_get_machine_opts(),"vmport",!xen_enabled()), 0x4);
?
This makes vmport switchable on xen too, with traditional behavior being the default (off on xen, on otherwise).
cheers,
Gerd
Quoted 12 lines · * Gerd Hoffmann ([email protected]) wrote:
hw/i386/pc_piix.c static void pc_init1(QEMUMachineInitArgs *args, · line 209
Quoted 6 lines
/* init basic PC hardware */hw/i386/pc_piix.c +3
-2-pc_basic_device_init (isa_bus, gsi, &rtc_state, &floppy,xen_enabled (), -0x4 ); +pc_basic_device_init (isa_bus, gsi, &rtc_state, &floppy, + !qemu_opt_get_bool (qemu_get_machine_opts (),"vmport" , + true) ||xen_enabled (),0x4 );
pc_basic_device_init
(isa_bus, gsi,&rtc_state, &floppy,
!qemu_opt_get_bool(qemu_get_machine_opts(),"vmport",!xen_enabled()),0x4);
Quoted 4 lines
?
This makes vmport switchable on xen too, with traditional behavior being the default (off on xen, on otherwise).
Yes I guess that would work (although documenting it would be a little hairy); however, does anyone understand the reasons it's disabled in the Xen world?
Dave
--
Dr. David Alan Gilbert / [email protected] / Manchester, UK
Quoted 13 lines · Dr. David Alan Gilbert
Quoted 12 lines · * Gerd Hoffmann ([email protected]) wrote:
hw/i386/pc_piix.c static void pc_init1(QEMUMachineInitArgs *args, · line 209
Quoted 6 lines
/* init basic PC hardware */hw/i386/pc_piix.c +3
-2-pc_basic_device_init (isa_bus, gsi, &rtc_state, &floppy,xen_enabled (), -0x4 ); +pc_basic_device_init (isa_bus, gsi, &rtc_state, &floppy, + !qemu_opt_get_bool (qemu_get_machine_opts (),"vmport" , + true) ||xen_enabled (),0x4 );
pc_basic_device_init
(isa_bus, gsi,&rtc_state, &floppy,
!qemu_opt_get_bool(qemu_get_machine_opts(),"vmport",!xen_enabled()),0x4);
Quoted 7 lines
Quoted 4 lines
?
This makes vmport switchable on xen too, with traditional behavior being the default (off on xen, on otherwise).
Yes I guess that would work (although documenting it would be a little hairy); however, does anyone understand the reasons it's disabled in the Xen world?
It was disabled in this patch. The commit message is saying that vmport cannot work in Xen, but I'm not exactly clear why.
commit 1611977c3d8fdbdac6090cbd1f5555cee4aed6d9
Author: Anthony PERARD <[email protected]>
Date: Tue May 3 17:06:54 2011 +0100
pc, Disable vmport initialisation with Xen.
This is because there is not synchronisation of the vcpu register between Xen and QEMU, so vmport can't work properly.
This patch introduces no_vmport parameter to pc_basic_device_init.
Rich.
Signature · 5 lines
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW
Gerd Hoffmann
Reviewed-byHi,
Quoted 11 lines
It was disabled in this patch. The commit message is saying that vmport cannot work in Xen, but I'm not exactly clear why.
commit
1611977c3d8fdbdac6090cbd1f5555cee4aed6d9
Author: Anthony PERARD <[email protected]>
Date: Tue May 3 17:06:54 2011 +0100pc, Disable vmport initialisation with Xen.
This is because there is not synchronisation of the vcpu register between Xen and QEMU, so vmport can't work properly.
Ah, ok. The backdoor has side effects (writing the port does modify vcpu registers). That is the bit which is problematic for xen. Scratch the idea then.
Original patch is fine.
cheers,
Gerd
Slutz, Donald Christopher
Reviewed-by Gerd HoffmannWhat is happening with this patch? I would like to use this code.
-Don Slutz
________________________________________
From: [email protected] [[email protected]] on behalf of Gerd Hoffmann [[email protected]]
Sent: Tuesday, May 20, 2014 6:10 AM
To: Richard W.M. Jones
Cc: [email protected]; [email protected]; [email protected]; Dr. David Alan Gilbert; [email protected]; Anthony PERARD
Subject: Re: [Qemu-devel] [PATCH] -machine vmport=off: Allow disabling of VMWare ioport emulation
Hi,
Quoted 11 lines
It was disabled in this patch. The commit message is saying that vmport cannot work in Xen, but I'm not exactly clear why.
commit
1611977c3d8fdbdac6090cbd1f5555cee4aed6d9
Author: Anthony PERARD <[email protected]>
Date: Tue May 3 17:06:54 2011 +0100pc, Disable vmport initialisation with Xen.
This is because there is not synchronisation of the vcpu register between Xen and QEMU, so vmport can't work properly.
Ah, ok. The backdoor has side effects (writing the port does modify vcpu registers). That is the bit which is problematic for xen. Scratch the idea then.
Original patch is fine.
cheers,
Gerd
Quoted 1 line · * Slutz, Donald Christopher ([email protected]) wrote:
What is happening with this patch? I would like to use this code.
I need to rework it for the new machine types code; but it was pretty low down my list of priorities; but I can try and get a minute for it again.
Dave
Quoted 28 lines
-Don Slutz
________________________________________
From: [email protected] [[email protected]] on behalf of Gerd Hoffmann [[email protected]]
Sent: Tuesday, May 20, 2014 6:10 AM
To: Richard W.M. Jones
Cc: [email protected]; [email protected]; [email protected]; Dr. David Alan Gilbert; [email protected]; Anthony PERARD
Subject: Re: [Qemu-devel] [PATCH] -machine vmport=off: Allow disabling of VMWare ioport emulationHi,
Quoted 11 lines
It was disabled in this patch. The commit message is saying that vmport cannot work in Xen, but I'm not exactly clear why.
commit
1611977c3d8fdbdac6090cbd1f5555cee4aed6d9
Author: Anthony PERARD <[email protected]>
Date: Tue May 3 17:06:54 2011 +0100pc, Disable vmport initialisation with Xen.
This is because there is not synchronisation of the vcpu register between Xen and QEMU, so vmport can't work properly.
Ah, ok. The backdoor has side effects (writing the port does modify vcpu registers). That is the bit which is problematic for xen. Scratch the idea then.
Quoted 9 lines
Original patch is fine.
Reviewed-by Gerd Hoffmann <[email protected]>cheers,
Gerd
--
Dr. David Alan Gilbert / [email protected] / Manchester, UK
Quoted 5 lines · Dr. David Alan Gilbert
Quoted 1 line · * Slutz, Donald Christopher ([email protected]) wrote:
What is happening with this patch? I would like to use this code.
I need to rework it for the new machine types code; but it was pretty low down my list of priorities; but I can try and get a minute for it again.
Ok, I did not see any mail about this. If I am reading this right you mean like I did in
commit c87b1520726f7ae1e698a41f07043d1b539ac88c
Do you want me to attempt to "port" this patch this way?
-Don Slutz
Quoted 39 lines
Dave
Quoted 26 lines
-Don Slutz
________________________________________
From: [email protected] [[email protected]] on behalf of Gerd Hoffmann [[email protected]]
Sent: Tuesday, May 20, 2014 6:10 AM
To: Richard W.M. Jones
Cc: [email protected]; [email protected]; [email protected]; Dr. David Alan Gilbert; [email protected]; Anthony PERARD
Subject: Re: [Qemu-devel] [PATCH] -machine vmport=off: Allow disabling of VMWare ioport emulationHi,Quoted 11 lines
It was disabled in this patch. The commit message is saying that vmport cannot work in Xen, but I'm not exactly clear why.
commit
1611977c3d8fdbdac6090cbd1f5555cee4aed6d9
Author: Anthony PERARD <[email protected]>
Date: Tue May 3 17:06:54 2011 +0100pc, Disable vmport initialisation with Xen.
This is because there is not synchronisation of the vcpu register between Xen and QEMU, so vmport can't work properly.
Ah, ok. The backdoor has side effects (writing the port does modify vcpu registers). That is the bit which is problematic for xen. Scratch the idea then.
Quoted 9 lines
Original patch is fine.
Reviewed-by Gerd Hoffmann <[email protected]>cheers,
Gerd--
Dr. David Alan Gilbert / [email protected] / Manchester, UK
Quoted 7 lines · * Slutz, Donald Christopher ([email protected]) wrote:
Quoted 5 lines · Dr. David Alan Gilbert
Quoted 1 line · * Slutz, Donald Christopher ([email protected]) wrote:
What is happening with this patch? I would like to use this code.
I need to rework it for the new machine types code; but it was pretty low down my list of priorities; but I can try and get a minute for it again.
Quoted 6 lines
Ok, I did not see any mail about this. If I am reading this right you mean like I did in
commit
c87b1520726f7ae1e698a41f07043d1b539ac88cDo you want me to attempt to "port" this patch this way?
To be honest I hadn't got that far in figuring the new stuff out, but yes I think so please check with [email protected] (cc'd); he was pointing me in the direction of those changes I think. But if you want to do the update, please feel free.
Dave
--
Dr. David Alan Gilbert / [email protected] / Manchester, UK