aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-12-19VMware VGA: Only enable dirty log tracking when fifo is disabledAnthony Liguori
This patch enables dirty log tracking whenever it's needed and disables it when it is not. We unconditionally enable dirty log tracking on reset, restart dirty log tracking when PCI IO regions are remapped, and disable/enable it based on commands from the guest. Rebased-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit b5cc6e32baa9d98d50debe23229b303f89fe84f1)
2009-12-19Fix VMware VGA depth computationAnthony Liguori
VMware VGA requires that the depth presented to the guest is the same as the DisplaySurface that it renders to. This is because it performs a very simple memcpy() to blit from one surface to another. We currently hardcode a 24-bit depth. The surface allocator for SDL may, and usually will, allocate a surface with a different depth causing screen corruption. This changes the code to allocate the DisplaySurface before initializing the device which allows the depth of the DisplaySurface to be used instead of hardcoding something. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit a6109ff1b5d7184a9d490c4ff94f175940232ebd)
2009-12-19Make sure to enable dirty log tracking for VMware VGAAnthony Liguori
This is needed for VMware VGA to work properly under KVM. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit ee3e41a9a0194af21d0da75f5afd87bea3738cf3)
2009-12-19Make sure to enable dirty tracking of VBE vram mappingAnthony Liguori
Apparently, VBE maps the VGA vram to a fixed physical location. KVM requires that all mappings of the VGA vram have dirty tracking enabled on them. Any access to the VGA vram through the VBE mapping currently fails to result in dirty page tracking updates causing a black screen. This is the true root cause of VMware VGA not working correctly under KVM and likely also an issue with some of the std-vga black screen issues too. Cirrus does not enable VBE so it would not be a problem when using Cirrus. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Rebased-by: Dave Airlie <airlied@redhat.com> (cherry picked from commit f0138a63a41fe26bcef61d031ae53d872d12a992)
2009-12-19vmware: setup PCI BAR 2 for FIFO as per vmware specDave Airlie
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit f351d050dccfc469fecd353d095526d52e4632c6)
2009-12-19qdev: improve property error reporting.Gerd Hoffmann
Add a error message in case we fail to parse a qdev property. Also make qemu not abort() in case setting a global property can't be set. This used to be a clear programming error. The introduction of the -global switch changed that though, so better exit instead (after printing the new error message). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 9ef5c4bf8132eb72db2dd83fce3fa0005a6dd13f)
2009-12-19fix vga names in default_listGerd Hoffmann
Fix mismerge between 64465297 and 556cd098. Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 69fd02eea61e6d9e7cd7831ef26522a5ac9e146c)
2009-12-19usb-host: check mon before using it.Gerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit eba6fe8732cb5109b6fcf6a973d8959827eb7af4)
2009-12-19usb-net: use qdev for -usbdeviceGerd Hoffmann
Rebased to master, adapted to device renaming by armbru, no other changes. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 42be86ce95db944910005aa981a8e9ae5e01b05a)
2009-12-19Check rom_load_all() return value.Gerd Hoffmann
Check rom_load_all() return value. Also don't make option rom loading failure fatal. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 15ff7705444ab9663189946d6d648431e0649df1)
2009-12-19defaults: update device_list[]Gerd Hoffmann
Add isa-fdc (disables default_floppy). Add ide-drive (disables default_cdrom). Also walk the -global QemuOpts, so we'll catch -global isa-fdc.drive{A,B}=<name> too. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit d8bcbabf260a4ecce73180991cad576de850b66d)
2009-12-19defaults: split default_driveGerd Hoffmann
Split default_drive into default_{floppy,cdrom,sdcard}. Also add QEMUMachine flags to disable them per machine. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit ac33f8fad14e07fa12b74c3494339ae6882dc22f)
2009-12-19monitor: Catch printing to non-existent monitorLuiz Capitulino
The monitor_vprintf() function now touches the 'mon' pointer before calling monitor_puts(), this causes block migration to segfault as its functions call monitor_printf() with a NULL 'mon'. To fix the problem this commit moves the 'mon' NULL check from monitor_puts() to monitor_vprintf(). This can potentially hide bugs, but for some reason this has been the behavior for a long time. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 2daa11912699d9412fb4404d646031a74b166aa5)
2009-12-19monitor: Avoid readline functions in QMPLuiz Capitulino
The monitor_read_command() function is readline specific and should only be used when readline is available. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 183e6e525764d5c4978e37b42dc2cde0b0ffcfec)
2009-12-19monitor: do_balloon(): Check for errorsLuiz Capitulino
do_balloon() should check for ballooning availability as do_info_balloon() does. Noted by Daniel P. Berrange <berrange@redhat.com>. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit cfdf2c40577ed99bb19cdc05d0537e2808d77a78)
2009-12-19monitor: Use 'device' in ejectLuiz Capitulino
Monitor's eject command uses 'filename' for the device name argument, but 'device' is a better name. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 78d714e08f15171adf48e32ba86709f9c64f37cf)
2009-12-19QDict: Fix size updateLuiz Capitulino
Key replacement should not update the dictionary's size. This commit also adds a test for the bug. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 29ec3156ee66b6e2553a0adb2f35cb143edddc5f)
2009-12-19qdev: Improve uni-north device namesMarkus Armbruster
Switch to the names suggested by Blue Swirl. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 18dd19a7d9bb90734b5188fd6f53c76bde711e4b)
2009-12-19Avoid permanently disabled QEMU monitor when UNIX migration failsDaniel P. Berrange
If a UNIX migration command is attempt to a UNIX socket which does not exist, then the monitor is suspended, but never resumed. This prevents any further use of the monitor * migration-unix.c: Only call migrate_fd_monitor_suspend() once connected to the UNIX socket. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 2dd650e58acbafedc7bf34045b7f81bb6c912e72)
2009-12-19Fix loading of ELF multiboot kernelsKevin Wolf
The multiboot implementation assumed that there is only one program header (which contains the entry point) and that the entry point is at the start of the code. This doesn't hold true generally and caused too little data to be loaded. Fix the loading code to pass the whole loaded data to the Multiboot Option ROM. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 092493be3caab1ac77f4223b4c3fb0975d1ed490)
2009-12-19Revert "Rename DriveInfo.onerror to on_write_error" (fix mismerge)Kevin Wolf
Part of the first patch of the -drive rerror series has been merged once more on top of the rest of the series. This effectively disables the rerror option and always goes with the default value. Reverting the commit re-enables the option. This reverts commit fc072ec4df0996682dfbff6c735e2bbc0d93132f. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 75f124753922451ee697defd81a80a91ce3f9888)
2009-12-19qemu-io: Fix memory leakKevin Wolf
Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 40a0d7c395f4d18a8061ba075d8f9aab2fa0ec2a)
2009-12-19Fix thinko in linuxboot.SPaolo Bonzini
The %gs segment that was used was not matching the comments. I just moved the GDT descriptor on the stack instead. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 36ecd7c016f682437941a54193251cbf918bef0d)
2009-12-19target-i386: Fix evaluation of DR7 registerJan Kiszka
hw_breakpoint_type and hw_breakpoint_len used the wrong index multiplier to extract type and len. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit d46272c774a94a8b2f0849703070dbcd93057f50)
2009-12-19kvm: x86: Use separate exception_injected CPUState fieldJan Kiszka
Marcelo correctly remarked that there are usage conflicts between QEMU core code and KVM /wrt exception_index. So spend a separate field and also save/restore it properly. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 31827373f03b0ff1550d45ddef0ca1305a2ae70d)
2009-12-19vnc: hextile: do not generate ForegroundSpecified and SubrectsColoured tilesAnthony Liguori
This violates the RFB specification (section 6.6.4). It happens to work with most clients but it's still wrong. Reported-by: Yaniv Kaul <ykaul@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 02c2b87fff97e77a1f6033fb09f53afa267c0c1e)
2009-12-19Revert "pci: interrupt disable bit support"Anthony Liguori
This reverts commit 0ea5709a32085f7d14901a09d12bd35f9b267607. Per discussion with Michael Tsirkin, this is too risky for 0.12 Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit d587e0787153f0224a6140c5015609963ceaabfb)
2009-12-19target-ppc: fix ppc32 kvm buildAlexander Graf
My segment sync patch broke compilation on PPC32, because it was trying to sync the SLB even though ppc32 CPUs don't have an SLB. So let's only sync it when we're on a PP64 one! Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 82c09f2f0d0f405428ce0c567da2ada493acc30b)
2009-12-18S390: Bail out without KVMAlexander Graf
Currently only the S390 KVM target works. To keep users from accidently not using KVM, let's not even initialize the machine when KVM is not used. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit e249651ca94058547f7ae84694e82bb1ee03bc3c)
2009-12-18S390: Don't tell guest we're updating config spaceAlexander Graf
Currently we always set the "config space changed" bit to 1 when triggering any virtio interrupt. While that worked in 2.6.27, newer kernels interpret that value as "only the config space changed and nothing else happened". Since we usually trigger interrupts to tell the guest that something did happen, we just not tell it the config space changed for now until we implement the correct callback for that. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 86f3dba6518bd5fd106e1cf3f36dafda41ff377b)
2009-12-18add default virtcon initializationAlexander Graf
When going through the default devices, we don't initialize the virtio console, unless we're doing -nographic. I suppose that's just a leftover from the recent code restructuring, so let's put it in. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 38536da1e3cfde355169a81a3abe3235fd13fc6a)
2009-12-18S390: Loop through virtio console devicesAlexander Graf
We used to always create one single virtio console device. This breaks when either zero of multiple virtio console devices are requested, so let's use the same code as on x86. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit a1e4b07f04d8f31e8c0c1bf97385f426d3fcf5e6)
2009-12-18target-s390: Fail on unknown instructionsAlexander Graf
We were being a bit too nice and didn't give the guest an invalid instruction interrupt. While that works, it's not exactly the fastest thing to do, since now the guest doesn't know that we're not really implementing that instruction, so it continues doing it. We run into this with the set_page_unstable hint instruction. So let's bail out in these cases. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit d7963c43b9646e4dfc69a4253c61e4bab7b661cd)
2009-12-18osdep: Fix runtime failure on older Linux kernelsAndre Przywara
If QEMU finds newer kernel header files on compilation time, it will use advertised features like pipe2 or SOCK_CLOEXEC by just doing a compile test. If later the executables are executed on an older kernel (<2.6.27, like Xen Dom0 2.6.18), then QEMU will fail on opening sockets and creating pipes and returns the rather unspecific "qemu_init_main_loop failed". This patch fixes this by checking the return values of these calls for EINVAL and ENOSYS and falling back to the older versions automatically. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2009-12-17Fix a make -j raceJuergen Lock
Make libuser.a depend on $(GENERATED_HEADERS) too so make -j won't start building it before the headers exist. (There may be more bugs like this but at least this makes (g)make -j4 started from scratch on a quadcore now always complete here again.) Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit c1bb0dcef2d3a62c89cef81a0f1a0e5e97ef325b)
2009-12-17target-alpha: Fix generic ctz64.Richard Henderson
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 06445248d23d2422a0fb5736b64f9e5a66539749)
2009-12-16s390: Fix buggy assignmentStefan Weil
nd->model keeps dynamically allocated model names. So casting of a constant string is wrong here. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Acked-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 5a2b3fc5aaae48859e09a8d96f4f92578b060892)
2009-12-13target-mips: fix user-mode emulation startupNathan Froyd
Running programs with the MIPS user-mode emulator fails during dynamic loading, as floating-point instructions are not enabled in in env->hflags. Move the code for doing so from fpu_init to cpu_reset so the MIPS_HFLAG_{FPU,F64} setting doesn't get clobbered by cpu_reset setting env->hflags to MIPS_HFLAG_UM. The same end can be achieved by swapping the ordering of fpu_init and cpu_reset in cpu_mips_init, but it seemed better to consolidate the CONFIG_USER_ONLY code into a single location. Signed-off-by: Nathan Froyd <froydnj@codesourcery.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 91a759352623e4a3da969fa66626cc99241e9da2)
2009-12-13target-i386: Update CPUID feature set for TCGAndre Przywara
The CPUID features QEMU presented to the guest were not up-to-date with QEMU's emulated feature set. Add the missing bits of recent (and not so recent) additions to QEMU's emulation engine. For stability reasons only the user mode usable bits are exposed for now, features like Monitor or CR8LEG are left out. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit f1e00a9cf326acc1f2386a72525af8859852e1df)
2009-12-13s390: typo fixMichael S. Tsirkin
s390 code has an obvious typo, which results in: hw/s390-virtio.c: At top level: hw/s390-virtio.c:249: error: request for member ‘no_vga’ in something not a structure or union Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2009-12-13s390: fix build on 32 bit hostMichael S. Tsirkin
Building on 32 bit host we get: hw/s390-virtio.c: In function ‘s390_init’: hw/s390-virtio.c:184: error: integer constant is too large for ‘unsigned long’ type 64 bit values must be ULL. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2009-12-12Update Changelog and VERSION for 0.12.0-rc2v0.12.0-rc2Anthony Liguori
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-12v2: properly save kvm system time msr registersGlauber Costa
Currently, the msrs involved in setting up pvclock are not saved over migration and/or save/restore. This patch puts their value in special fields in our CPUState, and deal with them using vmstate. kvm also has to account for it, by including them in the msr list for the ioctls. This is a backport from qemu-kvm.git [v2: sucessfully build without kerneldir ] Signed-off-by: Glauber Costa <glommer@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 1a03675db146dfc760b3b48b3448075189f142cc)
2009-12-12VNC: Convert do_info_vnc() to QObjectLuiz Capitulino
Return a QDict with server information. Connected clients are returned as a QList of QDicts. The new functions (vnc_qdict_remote_addr(), vnc_qdict_local_addr() and put_addr_qdict()) are used to insert 'host' and 'service' information in the returned QDict. This patch is big, but I don't see how to split it. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit d96fd29cca420d1ff3d34cde233cf41a3818c550)
2009-12-12PCI: Convert pci_device_hot_add() to QObjectLuiz Capitulino
Return a QDict with information about the just added device. This commit should not change user output. Please, note that this patch does not do error handling conversion. In error conditions the handler still calls monitor_printf(). Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 7a344f7ac7bb651d0556a933ed8060d3a9e5d949)
2009-12-12char: Convert qemu_chr_info() to QObjectLuiz Capitulino
Each device is represented by a QDict. The returned QObject is a QList of all devices. This commit should not change user output. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 588b38320134edee4a569f60ed88c9848961d6ee)
2009-12-12block: Convert bdrv_info_stats() to QObjectLuiz Capitulino
Each device statistic information is stored in a QDict and the returned QObject is a QList of all devices. This commit should not change user output. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 218a536a7a7c6d3679d5eca0103f32fd11fbfaf0)
2009-12-12block: Convert bdrv_info() to QObjectLuiz Capitulino
Each block device information is stored in a QDict and the returned QObject is a QList of all devices. This commit should not change user output. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit d15e546567d75fca36d852c39e30adaab02121a7)
2009-12-12migration: Convert do_info_migrate() to QObjectLuiz Capitulino
Return a QDict, which may contain up to more two QDicts, depending on the type of migration we're performing. IMPORTANT: as a QInt stores a int64_t integer, RAM values are going to be stored as int64_t and not as uint64_t as they are today. If this is a problem QInt will have to be changed. This commit should not change user output. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit c86a668390d16d6b3249acd50bfa61ad825c7a80)
2009-12-12monitor: Convert do_info_mice() to QObjectLuiz Capitulino
Each mouse is represented by a QDict, the returned QObject is a QList of all mice. This commit should not change user output. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit e78c48ec4e192ef1b1a210bdf5a8d253d7826c25)