History | View | Annotate | Download (146.9 kB)
kvm: sync vcpu state during initialization (Hollis Blanchard)
Currently on x86, qemu initializes CPUState but KVM ignores it and does itsown vcpu initialization. However, PowerPC KVM needs to be able to set theinitial register state to support the -kernel and -append options....
Introduce and use cache-utils.[ch]
Thanks to Segher Boessenkool and Holis Blanchard.
AIX and Darwin cache inquiry:http://gcc.gnu.org/ml/gcc-patches/2007-08/msg00388.html
Auxiliary vectors:http://manugarg.googlepages.com/aboutelfauxiliaryvectors
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5973 c046a42c-6fe2-441c-8c8c-71466251a162
Fix some new warnings introduced after r5022
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5933 c046a42c-6fe2-441c-8c8c-71466251a162
Use writeback caching by default with qcow2
qcow2 writes a cluster reference count on every cluster update. This causesperformance to crater when using anything but cache=writeback. This is mostnoticeable when using savevm. Right now, qcow2 isn't a reliable format...
Add ballooning infrastructure.
Balloon devices allow you to ask the guest to allocate memory. This allows youto release that memory. It's mostly useful for freeing up large chunks ofmemory from cooperative guests.
Ballooning is supported by both Xen and VirtIO....
Add virtio-blk support
Virtio-blk is a paravirtual block device based on VirtIO. It can be used byspecifying the if=virtio parameter to the -drive parameter.
When using -enable-kvm, it can achieve very good performance compared to IDE orSCSI.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>...
Revert r5636 to fix icount on hosts w/o high-res clocks
Changeset r5636 changed the timers to run in the alarm callback. Thealarm callback can only be called as frequently as the host alarm timerfires. For older Linux hosts and possibly non-Linux hosts, this can be...
gdbstub: manage CPUs as threads (Jan Kiszka)
This patch enhances QEMU's built-in debugger for SMP guest debugging.Using the thread support of the gdb remote protocol, each VCPU is mappedon a pseudo thread and exposed to the gdb frontend. This way you can...
Fix warnings caused by timer_t, it is 32 bits on Sparc64
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5725 c046a42c-6fe2-441c-8c8c-71466251a162
Fix no_frame unused warning when SDL is disabled
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5724 c046a42c-6fe2-441c-8c8c-71466251a162
Split savevm code into savevm.c
This is pure code motion. The savevm code is all common code so we can buildit once and share the object with all executables.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5700 c046a42c-6fe2-441c-8c8c-71466251a162
Reintroduce migrate-to-exec: support (Charles Duffy)
KVM's live migration support included support for exec: URLs, allowing systemstate to be written or received via an arbitrary popen()ed subprocess. Thisprovides a convenient way to pipe state through a compression algorithm or an...
Revert commits 5685 to 5688 committed by mistake
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5691 c046a42c-6fe2-441c-8c8c-71466251a162
qemu: generate signals on tap I/O
Currently tap does not generate signals on I/O; this causesnetwork latency to be dependent on the timer tick (1ms withoutdyntick, guest dependent with dyntick). By generating a signalon I/O, we can inform the guest immediately that a packet has...
Add the -bt switch for setting up bluetooth stuff.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5652 c046a42c-6fe2-441c-8c8c-71466251a162
Fix some build issues for BSD.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5646 c046a42c-6fe2-441c-8c8c-71466251a162
Fix windows build after init_host_timer changes.
host_alarm_timer fires in a separate thread. The windows build currentuses SetEvent() and WaitEvent() to then notify the main thread. This isfunctionally equivalent to what we're doing in Unix with pipe(). So let's...
Run timers from host alarm timer callback
This further cleans up the main loop getting it a lot closer to what a mainloop should be.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5636 c046a42c-6fe2-441c-8c8c-71466251a162
Use qemu_set_fd_handler2() to determine when alarm timer fires.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5635 c046a42c-6fe2-441c-8c8c-71466251a162
Improve error reporting in init_timer_alarm
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5634 c046a42c-6fe2-441c-8c8c-71466251a162
Fix alarm_timer race with select - v3 (Jan Kiszka)
Changing the default IO timeout to 5 s (#5578) made a race visiblebetween the alarm_timer and select() in main_loop_wait(): If the timerfired before select was able to block, the full select() timeout could...
Add KVM support to QEMU
This patch adds very basic KVM support. KVM is a kernel module for Linux thatallows userspace programs to make use of hardware virtualization support. Itcurrent supports x86 hardware virtualization using Intel VT-x or AMD-V. It...
Remove dumb_refresh
It is safe not to set dpy_refresh and that's used to indicate that the displaydoesn't need updates. This saves us two wakeups per second.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5583 c046a42c-6fe2-441c-8c8c-71466251a162
Move network redirection code out of vl.c and into net.c
Mostly code motion.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5581 c046a42c-6fe2-441c-8c8c-71466251a162
Move CharDriverState code out of vl.c
The motivating goal behind this is to allow other tools to use the CharDrivercode. This patch is pure code motion except for the Makefile changes and thecopyright/header in qemu-char.c.
Move some declarations around in the QEMU CharDriver code
The goal of this series is to move the CharDriverState code out of vl.c andinto its own file, qemu-char.c. This patch moves around some declarations sothe next patch can be pure code motion.
Increase default IO timeout from 10ms to 5s
With the recent changes to the main loop, we no longer have unconditionalpolling. This means we can now sleep in select() for much longer than wepreviously did. This patch increases our select() sleep time from 10ms to 5s...
Main loop fixes/cleanup
Tidy up win32 main loop bits, allow timeout >= 1s, and force timeout to 0 ifthere is a pending bottom half.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5577 c046a42c-6fe2-441c-8c8c-71466251a162
Implement "info chardev" command. (Gerd Hoffmann)
This patch makes qemu keep track of the character devices in use andimplements a "info chardev" monitor command to print a list.
qemu_chr_open() sticks the devices into a linked list now. It got a newargument (label), so there is a name for each device. It also assigns a...
Make DMA bottom-half driven (v2)
The current DMA routines are driven by a call in main_loop_wait() after everyselect.
This patch converts the DMA code to be driven by a constantly rescheduledbottom half. The advantage of using a scheduled bottom half is that we can...
Make bottom halves more robust
Bottom halves are supposed to not complete until the next iteration of the mainloop. This is very important to ensure that guests can not cause stackoverflows in the block driver code. Right now, if you attempt to schedule a...
Set default max_cpus to one.
Clean-up machine definitions.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5566 c046a42c-6fe2-441c-8c8c-71466251a162
Suppress a GCC warning about unused function
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5534 c046a42c-6fe2-441c-8c8c-71466251a162
Replace uses of strncpy (a GNU extension) with Qemu pstrcpy
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5531 c046a42c-6fe2-441c-8c8c-71466251a162
Live migration for Win32 (Hervé Poussineau)
This patch fixes migration so that it works on Win32. This requires usingsocket specific calls since sockets cannot be treated like file descriptorson win32.
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>...
Fix windows build after migration changes
The live migration code broke the windows build. As part of thischange, I've switched the BIOS path to C:\Program Files\Qemu instead of/c/Program Files/Qemu. The later is only valid when launching from MSYSbut the former is always valid....
Expand cache= option and use write-through caching by default
This patch changes the cache= option to accept none, writeback, or writethoughto control the host page cache behavior. By default, writethrough caching isnow used which internally is implemented by using O_DSYNC to open the disk...
FreeBSD also has clock_gettime
Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5481 c046a42c-6fe2-441c-8c8c-71466251a162
Introduce ethernet announcement function.
This patch adds an ethernet announce function that will minimize downtimewhen doing a live migration. This code originates from KVM.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5477 c046a42c-6fe2-441c-8c8c-71466251a162
Introduce UI for live migration
This patch introduces a command line parameter and monitor command for startinga live migration. The next patch will provide an example of how to use theseparameters.
Fix some issues with QEMUFile
This patch allows QEMUFile's read and write operations to returnnegative error codes. This is necessary to detect things like closedstreams during live migration.
It also removes unused code for QEMUFileFD write path. Finally, it...
Get rid of sys/poll.h
(C.W. Betts)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5463 c046a42c-6fe2-441c-8c8c-71466251a162
Fix IO performance regression in sparc
Replace signalfd with signal handler/pipe. There is no way to interruptthe CPU execution loop when a file descriptor becomes readable. Thisresults in a large performance regression in sparc emulation duringbootup....
machine struct - specify max_cpus at the per machine level (Jes Sorensen)
Introduce a max_cpus per-machine variable, allowing individual boardsto limit it's number of CPUs. Check requested number of CPUs in setupcode and exit if it exceeds the supported number for the machine....
Switch the memory savevm handler to be "live"
This patch replaces the static memory savevm/loadvm handler with a "live" one.This handler is used even if performing a non-live migration.
The key difference between this handler and the previous is that each page is...
Introduce v3 of savevm protocol
The current savevm/loadvm protocol has some draw backs. It does not supportthe ability to do progressive saving which means it cannot be used for livecheckpointing or migration. The sections sizes are 32-bit integers which...
Variable autostart is not used outside main()
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5419 c046a42c-6fe2-441c-8c8c-71466251a162
Make network packet debug functions more accessible
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5416 c046a42c-6fe2-441c-8c8c-71466251a162
Add some missing static qualifiers
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5415 c046a42c-6fe2-441c-8c8c-71466251a162
Make CPULogItem tables const
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5397 c046a42c-6fe2-441c-8c8c-71466251a162
Make some variables static
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5377 c046a42c-6fe2-441c-8c8c-71466251a162
Fix warning about incompatible types
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5373 c046a42c-6fe2-441c-8c8c-71466251a162
Remove unused variable
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5371 c046a42c-6fe2-441c-8c8c-71466251a162
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5363 c046a42c-6fe2-441c-8c8c-71466251a162
Silence some warnings about uninitialized variables
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5362 c046a42c-6fe2-441c-8c8c-71466251a162
Few compile time warnings removed (Stefano Stabellini)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5361 c046a42c-6fe2-441c-8c8c-71466251a162
Refactor QEMUFile for live migration
To support live migration, we override QEMUFile so that instead of writing todisk, the save/restore state happens over a network connection.
This patch makes QEMUFile read/write operations function pointers so that we...
Add a "null" bluetooth HCI and a header file for bluetooth.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5342 c046a42c-6fe2-441c-8c8c-71466251a162
Add to machine structure a flag to use SCSI drives instead of IDE: fixes SS-20
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5339 c046a42c-6fe2-441c-8c8c-71466251a162
Optional "precise" VGA retrace support
Selected via: -vga <name>,retrace=precise
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5336 c046a42c-6fe2-441c-8c8c-71466251a162
Change the way video graphics adapter is selected
Instead of having (current)three command line switches -std-vga,-cirrusvga and -vmwarevga, provide one -vga switch which takesan argument, so that:qemu -std-vga becomes qemu -vga stdqemu -cirrusvga becomes qemu -vga cirrus...
Revert r5274 which breaks savevm/loadvm
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5321 c046a42c-6fe2-441c-8c8c-71466251a162
Remove unnecessary call to qemu_aio_init (called from bdrv_init)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5294 c046a42c-6fe2-441c-8c8c-71466251a162
Add signed versions of save/load functions
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5274 c046a42c-6fe2-441c-8c8c-71466251a162
Add -uuid command line option (Gleb Natapov)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5257 c046a42c-6fe2-441c-8c8c-71466251a162
Use common objects for qemu-img and qemu-nbd
Right now, we sprinkle #if defined(QEMU_IMG) && defined(QEMU_NBD) all over thecode. It's ugly and causes us to have to build multiple object files forlinking against qemu and the tools.
This patch introduces a new file, qemu-tool.c which contains enough for...
qemu_next_deadline_dyntick is only used on Linux and Windows
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5210 c046a42c-6fe2-441c-8c8c-71466251a162
Fix warnings that would be caused by gcc flag -Wwrite-strings
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5206 c046a42c-6fe2-441c-8c8c-71466251a162
usb: Support for removing device by host addr, improved auto filter syntax (Max Krasnyansky)
This patch adds support for removing USB devices by host address.Which is usefull for things like libvirtd because there is no easy way tofind guest USB address of the host device....
Use signalfd() to work around signal/select race
This patch introduces signalfd() to work around the signal/select race inchecking for AIO completions. For platforms that don't support signalfd(), weemulate it with threads.
There was a long discussion about this approach. I don't believe there are any...
Add missing "static"
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5184 c046a42c-6fe2-441c-8c8c-71466251a162
Delete unused variable.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5144 c046a42c-6fe2-441c-8c8c-71466251a162
Do not try to use -net user as a default when slirp disabled (Jeremy Fitzhardinge)
When CONFIG_SLIRP is not defined, we should not try to use-net user as a default.
Patch from Jeremy Fitzhardinge <jeremy@goop.org> (who is a Citrixstaff member).
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>...
Enable pty/tty functions for BSDs too (initial patch from Xen)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5079 c046a42c-6fe2-441c-8c8c-71466251a162
Parallel Port Direction Fix
The direction bit in the control register should not be directly
set using PPWCONTROL. The kernel gives the following debug message.
parport0 (ppdev0): use data_reverse for this!
More over setting the data pins to forward mode does not work,...
move GUI_REFRESH_INTERVAL define from vl.c to console.h (Gerd Hoffmann)
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5058 c046a42c-6fe2-441c-8c8c-71466251a162
add DisplayState->idle (Samuel Thibault)
Add idle field to DisplayState struct, so drivers can figurethe display is idle and take advantage of that.
The xen framebuffer driver will use this to communicate theidle state to the guest, so it knows it can stop doing updates...
Handle terminating signals (Gerd Hoffmann)
This patch makes qemu handle signals better. It sets the request_shutdownflag, making the main_loop exit and qemu taking the usual exit route, withatexit handlers being called and so on, instead of qemu just being killed...
husb: support for USB host device auto connect (Max Krasnyansky)
QEMU can now automatically grab host USB devices that match the filter.For now I just extended 'host:X.Y' and 'host:VID:PID' syntax to handlewildcards. So for example if you do something like...
husb: support for USB host device auto disconnect (Max Krasnyansky)
I got really annoyed by the fact that you have to manually dousb_del in the monitor when host device is unplugged and decidedto fix it :)
Basically we now automatically remove guest USB device...
Fix OpenBSD linker warnings
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5044 c046a42c-6fe2-441c-8c8c-71466251a162
Revert r4979 since it breaks the monitor
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5028 c046a42c-6fe2-441c-8c8c-71466251a162
Fix some warnings that would be generated by gcc -Wmissing-prototypes
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5022 c046a42c-6fe2-441c-8c8c-71466251a162
Preliminary OpenBSD host support (based on OpenBSD patches by Todd T. Fries)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5012 c046a42c-6fe2-441c-8c8c-71466251a162
Allow boot without a drive on Sparc machines (partly extracted from Xen)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4997 c046a42c-6fe2-441c-8c8c-71466251a162
Upgrade emulated UART to 16550A (Stefano Stabellini)
This patch upgrades the emulated UART to 16550A, the code comes fromxen-unstable. The main improvement was introduced with the following patch andsubsequent email thread:
http://lists.xensource.com/archives/html/xen-devel/2007-12/msg00129.html...
Set focus to monitor to ask password if line is multiplexed (Laurent Vivier)
This patch allows to display the "Password:" prompt if we use encrypteddisk with "-nographic" option.
It also modifies management of "-nographic" to not override user'schoices for "-serial", "-parallel" and "-monitor"....
Ask password when encrypted disk image is used (Laurent Vivier)
This patch repairs the management of encrypted disk images and allows toenter the password.
Changelog:v2:- move read_password() before do_loadvm()- really start monitor if output is stdio....
Simplify -usbdevice net: syntax, allow VLANs with no NICs.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4965 c046a42c-6fe2-441c-8c8c-71466251a162
Attempt to detect unconnected ptys (Gerd Hoffman)
This patch moves the pty char device imlementation away from the genericfilehandle code. It tries to detect as good as possible whenever thereis someone connected to the slave pty device and only send data down the...
Save 3MB ioport table memory (Samuel Thibault)
Save 1.5MB (32bit) or 3MB (64bit) memory by keeping ioport tablessparse and use a test against NULL instead.
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>...
Fix -daemonize option
When using -daemonize, we want to avoid chdir() until after we've opened theblock devices. It's also perfectly fine to use -dameonize along with SDL.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4924 c046a42c-6fe2-441c-8c8c-71466251a162
Add Virtual Distributed Ethernet native support, by Luca Bigliardi.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4896 c046a42c-6fe2-441c-8c8c-71466251a162
Various NICs: Fix suspend/resume of multiple instances, by Jan Kiszka.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4892 c046a42c-6fe2-441c-8c8c-71466251a162
Do not call fcntl(, O_NONBLOCK) pointlessly, by Ian Jackson.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4889 c046a42c-6fe2-441c-8c8c-71466251a162
Do not disturb old fd flags (eg O_APPEND) when setting nonblock, byIan Jackson.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4888 c046a42c-6fe2-441c-8c8c-71466251a162
Remove the NIC from vlan on usb destroy.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4885 c046a42c-6fe2-441c-8c8c-71466251a162
Add CDC-Ethernet usb NIC (original patch from Thomas Sailer).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4884 c046a42c-6fe2-441c-8c8c-71466251a162
Bail out if -append or -initrd is specified without -kernel, bySebastian Herbszt.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4833 c046a42c-6fe2-441c-8c8c-71466251a162
Remove duplicate device index calculations.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4818 c046a42c-6fe2-441c-8c8c-71466251a162