History | View | Annotate | Download (155.4 kB)
switch balloon initialization to -device.
With that patch applied "-balloon virtio,args" becomes a shortcut for"-device virtio-balloon-pci,args".
Side effects: - ballon device gains support for id=<tag>. - ballon device is off by default now. - initialization order changes, which may in different pci slot...
add qemu_error() + friends
This patch adds some functions for error reporting to address theproblem that error messages should be routed to different destinationsdepending on the context of the caller, i.e. monitor command errorsshould go to the monitor, command line errors to stderr....
qdev: convert watchdogs
-watchdog NAME is now equivalent to -device NAME, except it treatsoption argument '?' specially, and supports only one watchdog.
A side effect is that a device created with -watchdog may now receivea different PCI address.
i6300esb is now available on any machine with a PCI bus, not just PCs....
Move watchdog, watchdog_action, give them internal linkage
Signed-off-by: Markus Armbruster <armbru@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
raw-posix: add Linux native AIO support
Now that do have a nicer interface to work against we can add Linux nativeAIO support. It's an extremly thing layer just setting up an iocb forthe io_submit system call in the submission path, and registering an...
split do_loadvm() into do_loadvm() and load_vmstate()
do_loadvm() is now called from the monitor.load_vmstate() is called by do_loadvm() and when -loadvm command line is used.Command line don't have to play games with vmstop()/vmstart()
Signed-off-by: Juan Quintela <quintela@redhat.com>...
make load_vmstate() return errors
Signed-off-by: Juan Quintela <quintela@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
extend -smp parsing to include cores= and threads= options
For injecting multi-core and multi-threading CPU topology into guestsextend the -smp syntax to accommodate cores and threads specification.Syntax: -smp smp_value[,cores=nr_cores][,threads=nr_threads]\...
Unbreak large mem support by removing kqemu
kqemu introduces a number of restrictions on the i386 target. The worst is thatit prevents large memory from working in the default build.
Furthermore, kqemu is fundamentally flawed in a number of ways. It relies on...
QEMU set irq0override in fw_cfg
Hi,
After discussing the issue with Avi, Gleb and a couple others on irq,we came to the conclusion that it is preferred to have QEMU requestfeatures from the BIOS, rather than notifying the BIOS that it isrunning on QEMU or KVM. This way memory ranges can change etc. and...
Clean up VGA type selection; far too many variables being used to track one state leads to confusion if new variables are added.
Signed-off-by: Zachary Amsden <zamsden@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Do not disable autostart for live migration
If the user does not want autostart, they can specify -S.
Signed-off-by: Avi Kivity <avi@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
check for PR_SET_NAME being defined
Depending on what glibc/kernel headers you are compiling against,PR_SET_NAME may or may not be defined. Do the right thing ifPR_SET_NAME isn't defined and skip setting the process name.
Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>...
variable timer intervals
This patch introduces dynamic timer intervals: we slow down the refreshrate when there in no much activity but we get back to a fast refreshrate when the activity resume.
Please note that qemu_timer_expired is not an inline function any more...
qdev-ify virtio-blk.
First user of the new drive property. With this patch applied hostand guest config can be specified separately, like this:
-drive if=none,id=disk1,file=/path/to/disk.img -device virtio-blk-pci,drive=disk1
You can set any property for virtio-blk-pci now. You can set the pci...
QemuOpts: switch over -device.
Make -device switch use the QemuOpts framework.Everything should continue to work like it did before.
New: "-set device.$id.$property=$value" works.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>...
constify drive_get_by_id arg
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>Message-Id:
add -drive if=none
This adds a host drive, but doesn't implicitly add a guest drive for it.First step in splitting host and guest configuration, check thefollowing patches to see how this can be used ...
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>...
QemuOpts: make the drive id actually show up in "info block".
QemuOpts: create qemu-config.h
Move drive option description there.Rename it, give it a qemu_ prefix.
QemuOpts: add -set option
One use case will be file for drives (no filename quoting issues), i.e.
-drive id=test,if=virtio -set drive.test.file=/vmdisk/test-virtio.img
It will work for any other option (assuming handled by QemuOpts) though.Except for id= for obvious reasons ;)....
Use qemu_irq for system_powerdown
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
fix migration to obey -S
Since migration returns right away, starting the VM rightafter calling qemu_start_incoming_migration is wrong evenif -S is not passed. We have to do this after migrationhas completed.
Cc: Glauber Costa <glommer@redhat.com>Cc: Anthony Liguori <aliguori@us.ibm.com>...
rename WORDS_BIGENDIAN to HOST_WORDS_BIGENDIAN
rename HOST_BSD to CONFIG_BSD
fix broken migration
While fixing migration with -S, commit89befdd1a6b18215153b8976682d57b7d03d5782 broke the rest of us. Poorglommer, with a poor family, spare him his life from this monstruosity.
Since the unconditional vm_start, not autostart was the villain, I'm putting...
Remove setvbuf(<handle>, NULL, _IOLBF, 0) calls for Win32
On Win32 the setvbuf function requires the last parameter to be size between 2 and INT_MAX bytes, so the calls always failed. Since the whole point of the calls is to set line-buffered mode for the file handle and that's not supported on Win32 anyway, conditionally remove them....
Remove special Win32 code in vl.c that's no longer needed.
Signed-off-by: Filip Navara <filip.navara@gmail.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Introduce -smp , maxcpus= flag to specify maximum number of CPUS.
Follow on patch will use it to determine the size of the MADT andother BIOS tables.
Signed-off-by: Jes Sorensen <jes@sgi.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
kill drives_table
First step cleaning up the drives handling. This one does nothing butremoving drives_table[], still it became seriously big.
drive_get_index() is gone and is replaced by drives_get() which handsout DriveInfo pointers instead of a table index. This needs adaption in...
add support for drive ids.
-drive accepts the new id= now, allowing to explicitely name yourdrives. They will show up with that name in "info block" if specified,otherwise the existing namimg scheme is used to autogenerate one.
There is also a new function to lookup drives by name. Not used yet....
kill drives_opt
cleanup pretty simliar to the drives_table removal patch: - drop the table and make a linked list out of it. - pass around struct pointers instead of table indices.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
move parser functions from vl.c to qemu-option.c
switch -drive to QemuOpts.
Demo QemuOpts in action ;)
Implementing a alternative way to specify the filename should bejust a few lines of code now once we decided how the cmd line syntaxshould look like.
qdev: add -device command line option.
The -device switch is the users frontend to the qdev_device_add functionadded by the previous patch.
Also adds a linked list where command line options can be saved.Use it for the new -device and for the -usbdevice and -bt switches....
Add machine type aliases
Add an 'alias' field to QEMUMachine and display it in the output of'qemu -M ?' with an '(aliased to foo)' suffix.
Aliases can change targets in newer versions of qemu, so management toolsmay choose canonicalize machine types to ensure that if a user chooses an...
Fix OpenBSD build
The header sys-queue.h must be #included early, otherwise at some point OSqueue macros will be used. On OpenBSD, those don't define TAILQ_FOREACH_SAFE.
qdev/compat: compat property infrastructure.
This add support for switching devices into a compatibility modeusing device properties. Machine types can have a list of propertiesfor specific devices attached to allow the easy creation of machinetypes compatible to older qemu versions....
honor -S on incoming migration
-S is not honored by qemu on incoming migration. If a domain is migratedwhile paused, thus, it will start running on the remote machine; thisis wrong.
Given the trivial patch to fix this, it looks more like a thinkothan anything else, probably dating back to the qemu-kvm merge....
Move boot_set callback backend
Move registration function for the boot_set callback handler and provideqemu_boot_set so that it can also be used outside the monitor code.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Rework reset handler management
Convert the reset handler maintenance code to TAILQ services.
Add qemu_unregister_reset
Will be used by '-boot once=...', and should also help in other usecases.
Add boot-once support
This allows to specify an exceptional boot order only for the firststartup of the guest. After reboot, qemu will switch back to the defaultorder (or what was specified via 'order='). Makes installing from CDimages and then booting the freshly set up harddisk more handy....
Add boot menu control via command line switch
Disable the lengthy BIOS prompt for selecting a boot device by default,but let the user reenable it via '-boot menu=on'.
Rework -boot option
This patch changes the boot command line option to the canonical format
-boot [order=drives][,...]
where 'drives' is using the same format as the old -boot. The formatswitch allows to add the 'menu' and 'once' options in later patches. The...
Disable kqemu by default at run time
-no-kqemu -> -enable-kqemu
kqemu is still present at compile time by default
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Allow setting qemu process name v2
Set the Linux process name to the name argument specified with name. I findthis useful to see which guests are taking CPU time in top.
This doesn't affect ps, which checks argv0, but rewriting theenvironment uses much more code, so I only used this simple way....
split out ioport related stuffs from vl.c into ioport.c.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qcow2: Make cache=writethrough default
The performance of qcow2 has improved meanwhile, so we don't need tospecial-case it any more. Switch the default to write-through cachinglike all other block drivers.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Revert "Introduce reset notifier order"
This reverts commit 8217606e6edb49591b4a6fd5a0d1229cebe470a9 (andupdates later added users of qemu_register_reset), we solved theproblem it originally addressed less invasively.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>...
Replace -no-virtio-balloon by -balloon
We want to do (at least) two things to the virtio-balloon device:suppress it, and control its PCI address. Option -no-virtio-balloonlets us do only the former. To get the latter, replace-no-virtio-balloon with...
kvm: Rework VCPU synchronization
During startup and after reset we have to synchronize user space to thein-kernel KVM state. Namely, we need to transfer the VCPU registers whenthey change due to VCPU as well as APIC reset.
This patch refactors the required hooks so that kvm_init_vcpu registers...
slirp: Kill slirp_is_inited
Avoid the need for slirp_is_inited by refactoring the protectedslirp_select_* functions. This also avoids the clearing of all fd setson select errors.
slirp: Rework monitor commands for host forwarding
Improve the monitor interface for adding and removing host forwardingrules by splitting it up in two commands and rename them to hostfwd_addand hostfwd_remove. Also split up the paths taken for legacy -redir...
Introduce get_next_param_value
In order to parse multiple instances of the same param=value pair,introduce get_next_param_value which can pass back to string parsingposition after reading a parameter value.
slirp: Move smb, redir, tftp and bootp parameters and -net channel
So far a couple of slirp-related parameters were expressed viastand-alone command line options. This it inconsistent and unintuitive.Moreover, it prevents both dynamically reconfigured (host_net_add/...
Make sure to zero out memory before calling madvise to increase robustness
Avi pointed out that it's not entirely safe to rely on madvise zeroing outmemory. So let's do it explicitly before calling madvise.
Win32: Fix compilation with SDL.
`sdl-config --cflags` defines main = SDL_mainon some platforms. One of these platforms isWindows with mingw32.
For those platforms, the solution already developedfor APPLE is now applied.
A compiler warning (missing return value) is fixed, too....
Support addr=... in option argument of -drive if=virtio
Make drive_init() accept addr=, put the value into struct DriveInfo.Use it in all the places that create virtio-blk-pci devices:pc_init1(), bamboo_init(), mpc8544ds_init().
Don't support addr= in third argument of monitor command pci_add and...
Instead of writing a zero page, madvise it away
Otherwise, after migration, we end up with a much larger RSS size then weought to have.
Make nic option rom loading less painful.
The code how it is today, is totally painful to read and keep.To begin with, the code is duplicated with the option rom loadingcode that linux_boot and vga are already using.
This patch introduces a "bootable" state in NICInfo structure,...
add non-arbitrary migration stop condition
Currently, we're entering migration's stage 3 whena treshold of 10 pages remain to be transferred in the system.
This has hurt some users. However, any proposed threshold isarbitrary by nature, and would only shift the annoyance....
Remove dead code
vl.c contains some dead code that initialises a 'label' string with the nameof the char device being initialised. This is unused.
Signed-off-by: Amit Shah <amit.shah@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Add -no-virtio-balloon command-line option
This new option may be used to disable the virtio-balloon device.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Fix SDL include path.
SDL header files can be included in two different ways:
The 1st alternative is simple and works in many cases.
The 2nd alternative needs sdl-config to get thecorrect compiler flags. It is the recommended way...
Merge branch 'net-queue'
Fix "defined but not used" warning
The function qemu_calculate_timeout() is only used when CONFIG_IOTHREADis not defined. When CONFIG_IOTHREAD is defined, we have the followingwarning:
vl.c:4389: warning: ‘qemu_calculate_timeout’ defined but not used...
Use snprintf to avoid OpenBSD warning
Fix warning
slirp: Avoid zombie processes after fork_exec
Slirp uses fork_exec for spawning service processes, and QEMU uses thisfor running smbd. As SIGCHLD is not handled, these processes becomezombies on termination. Fix this by installing a proper signal handler,...
Revert "Fix output of uninitialized strings"
This reverts commit 8cf07dcbe7691dbe4f47563058659dba6ef66b05.
This is a sorry saga.
This commit:
8e4416af45 net: Add parameter checks for VLAN clients
broken '-net socket' and this commit:
ffad4116b9 net: Fix -net socket parameter checks...
net: Real fix for check_params users
OK, last try: 8e4416af45 broke -net socket, ffad4116b9 tried to fix itbut broke error reporting of invalid parameters. So this patch widelyreverts ffad4116b9 again and intead fixes those callers of check_paramsthat originally suffered from overwritten buffers by using separate...
net: Improve parameter error reporting
As host network devices can also be instantiated via the monitor, errorsshould then be reported to the related monitor instead of stderr. Thisrequires larger refactoring, so this patch starts small with introducing...
Use relative path for bios
Look for bios and other support files relative to qemu binary, rather thana hardcoded prefix.
Signed-off-by: Paul Brook <paul@codesourcery.com>
kvm: Mark full address range dirty on live migration start
As Avi correctly noted, last_ram_offset does not mark the last physicalRAM address the guest may see (due to non-continuous memory regions).Ensure that we catch them all by marking the full possible address range...
User Networking: Enable removal of redirections
Using the new host_net_redir command you can easily create redirectionson the fly while your VM is running.
While that's great, it's missing the removal of redirections, in case youwant to have a port closed again at a later point in time....
fully split aio_pool from BlockDriver
Now that we have a separate aio pool structure we can remove thoseaio pool details from BlockDriver.
Every driver supporting AIO now needs to declare a static AIOPoolwith the aiocb size and the cancellation method. This cleans up the...
Fix output of uninitialized strings
Commit ffad4116b96e29e0fbe892806f97c0a6c903d30d removed the "scratch buffer" from check_params, but didn't care for the error messages which actuallyincluded this string to tell the user which option was wrong. Now this string...
Introduce reset notifier order
Add the parameter 'order' to qemu_register_reset and sort callbacks onregistration. On system reset, callbacks with lower order will beinvoked before those with higher order. Update all existing users to thestandard order 0....
kvm: Rework VCPU reset
Use standard callback with highest order to synchronize VCPU on resetafter all device callbacks were execute. This allows to remove thespecial kvm hook in qemu_system_reset.
kvm: Add missing bits to support live migration
This patch adds the missing hooks to allow live migration in KVM mode.It adds proper synchronization before/after saving/restoring the VCPUstates (note: PPC is untested), hooks intocpu_physical_memory_set_dirty_tracking() to enable dirty memory logging...
Create qemu-option.h
This patch creates a new header file and the corresponding implementation filefor parsing of parameter strings for options (like used in -drive). Part ofthis is code moved from vl.c (so qemu-img can use it later).
The idea is to have a data structure describing all accepted parameters. When...
augment info migrate with page status
This should be enough for management tools to realizewhether or not there is progress in migration. We can...
Refactor how display drivers are selected
My previous commit, f92f8afebe, broke -vnc (spotted by Glauber Costa). Thisis because it's necessary to tell when the no special display parameters havebeen passed and default to SDL or VNC appropriately.
This refactors the display selection logic to be less complicated which has...
Introduce is_default field for QEMUMachine
f80f9ec changed the order that machines are registered which had the effect ofchanging the default machine. This changeset introduces a new is_default fieldso that machine types can declare that they are the default for an architecture....
Convert machine registration to use module init functions
This cleans up quite a lot of #ifdefs, extern variables, and other ugliness.
Eliminate --disable-gfx-check and make VNC default when SDL not available
--disable-gfx-check predates VNC server support. It made sense back thenbecause the only thing you could do without SDL was use -nographic mode orsimilar tricks. Since this is a very advanced mode of operation, gfx-check...
Fix NULL alarm_timer pointer at exit
This fixes a SIGSEGV error on qemu exit.
Here is the valgrind output related to this error
initialize struct sigevent before timer_create
When qemu is run under valgrind, valgrind shows the following outputon exit:
Basic qdev infrastructure.
Fix kqemu build failure.
Remove vga_ram_size
The vga_ram_size argument to machine init functions always has the samevalue, and is ignored by many machines (including SPARC32 which has anobsolete ifdef for VGA_RAM_SIZE).
Remove it and push VGA_RAM_SIZE into vga_int.h.
Follow coding conventions
Remove explicit struct qualifiers and rename structure types.
Drop CONFIG_GDBSTUB
This is no user-flippable switch, and no arch makes use of disablinggdbstub support. So it's pointless to keep the related #ifdefs andconfigure hunks around - and risking breakages like 711c410fdd again.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Fix serial option with -drive
This is from the KVM tree.
net: Fix -net socket parameter checks
My commit ea053add700d8abe203cd79a9ffb082aee4eabc0 broke -net socket byoverwriting an intermediate buffer in the added check_param. Fix thisby switching check_param to automatic buffer allocation and release, ie.callers no longer have to worry about providing a scratch buffer....
Hardware watchdog
Here is an updated hardware watchdog patch, which should fixeverything that was raised about the previous version ...
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Build fix for !CONFIG_GDBSTUB case
Once CONFIG_GDBSTUB not configured, compile will generate error.
Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>Signed-off-by: Avi Kivity <avi@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Fix qemu_event_init
Falling through to "fail" made qemu_event_init() close the pipe fdsimmediately again, breaking timer event notification.
Fix Win32 warning