History | View | Annotate | Download (27.1 kB)
Eliminate cpus-x86_64.conf file
This file is not needed anymore, as QEMU won't ship any config-basedcpudefs out of the box, relying only on the builtin CPU models.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>Reviewed-by: Igor Mammedov <imammedo@redhat.com>...
arch_init.c: Improve '-soundhw help' for non-HAS_AUDIO_CHOICE archs
For architectures which don't set HAS_AUDIO_CHOICE, improve the'-soundhw help' message so that it doesn't simply print an emptylist, implying no sound support at all.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>...
arch_init.c: add missing '%' symbols before PRIu64 in debug printfs
'%' symbols were missing in front of PRIu64 macros in DPRINTF messages inarch_init.c, this caused compilation warnings when compiled with DEBUG_ARCH_INIT defined.
Signed-off-by: Igor Mitsyanko <i.mitsyanko@samsung.com>...
qapi: add 'query-target' command to return target arch
Add a 'query-target' QAPI command to allow management applicationsto determine what target architecture a QEMU binary is emulatingwithout having to parse the binary name or -help output
$ qmp-shell -p /tmp/qemu...
Merge remote-tracking branch 'quintela/migration-next-20120808' into staging
unicore32-softmmu: Add unicore32-softmmu build support
This patch adds unicore32-softmmu build support, include configure,makefile, arch_init, and all missing functions needed by softmmu.Although all missing functions are empty, unicore32-softmmu could...
Add XBZRLE to ram_save_block and ram_save_live
In the outgoing migration check to see if the page is cached andchanged, then send compressed page by using save_xbrle_page function.In the incoming migration check to see if RAM_SAVE_FLAG_XBZRLE is setand decompress the page (by using load_xbrle function)....
Add migrate_set_cache_size command
Change XBZRLE cache size in bytes (the size should be a power of 2, it will berounded down to the nearest power of 2).If XBZRLE cache size is too small there will be many cache miss.
New query-migrate-cache-size QMP command and 'info migrate_cache_size' HMP...
Add migration accounting for normal and duplicate pages
Signed-off-by: Benoit Hudzia <benoit.hudzia@sap.com>Signed-off-by: Petter Svard <petters@cs.umu.se>Signed-off-by: Aidan Shribman <aidan.shribman@sap.com>Signed-off-by: Orit Wasserman <owasserm@redhat.com>...
Add XBZRLE statistics
Signed-off-by: Benoit Hudzia <benoit.hudzia@sap.com>Signed-off-by: Petter Svard <petters@cs.umu.se>Signed-off-by: Aidan Shribman <aidan.shribman@sap.com>Signed-off-by: Orit Wasserman <owasserm@redhat.com>Signed-off-by: Juan Quintela <quintela@redhat.com>...
Restart optimization on stage3 update version
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com>Reviewed-by: Eric Blake <eblake@redhat.com>
Support 'help' as a synonym for '?' in command line options
For command line options which permit '?' meaning 'please list thepermitted values', add support for 'help' as a synonym, by abstractingthe check out into a helper function.
This change means that in some cases where we were being lazy in...
Merge commit 'quintela/migration-next-v5' into staging
target-or32: Add target stubs and QOM cpu
Add OpenRISC target stubs, QOM cpu and basic machine.
Signed-off-by: Jia Liu <proljc@gmail.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Change ram_save_block to return -1 if there are no more changes
It will return 0 if the page is unmodifed.
Signed-off-by: Orit Wasserman <owasserm@redhat.com>
savevm: Live migration handlers register the struct directly
Notice that the live migration users never unregister, so no problemabout freeing the ops structure.
savevm: Refactor cancel operation in its own operation
Intead of abusing stage with value -1.
savevm: split save_live_setup from save_live_state
This patch splits stage 1 to its own function for both save_liveusers, ram and block. It is just a copy of the function, removing theparts of the other stages. Optimizations would came later.
savevm: split save_live into stage2 and stage3
We split it into 2 functions, foo_live_iterate, and foo_live_complete.At this point, we only remove the bits that are for the other stage,functionally this is equivalent to previous code.
ram: save_live_setup() don't need to sent pages
We should send pages on interate phase, not in setup one. This was a"bug". Just removing the loop does what we want. Tested that itworks with current ram_load().
ram: save_live_complete() only do one loop
We were doing the same loop that stage2, and a new one for stage3. Weonly need the one for stage3.
ram: iterate phase
We only need to synchronize the bitmap when the number of dirty pages is low.Not every time that we call the function.
ram: save_live_setup() we don't need to synchronize the dirty bitmap.
1st: we were synchonizing the dirty bitmap before calling memory_global_dirty_log_start().
2nd: We are marking all pages as dirty anywhere, no reason to go through all the bitmap to "mark" dirty same pages twice....
Maintain the number of dirty pages
Calculate the number of dirty pages takes a lot on hosts with lotsof memory. Just maintain how many pages are dirty.
Exit loop if we have been there too long
Checking each 64 pages is a random magic number as good as any other.We don't want to test too many times, but on the other hand,qemu_get_clock_ns() is not so expensive either. We want to be surethat we spent less than 50ms (half of buffered_file timer), if we...
Only calculate expected_time for stage 2
ram_save_remaining() is an expensive operation when there is a lot of memory.So we only call the function when we need it.
Add migration_end function
Add debugging infrastructure
Add save_block_hdr function
Signed-off-by: Benoit Hudzia <benoit.hudzia@sap.com>Signed-off-by: Petter Svard <petters@cs.umu.se>Signed-off-by: Aidan Shribman <aidan.shribman@sap.com>Signed-off-by: Orit Wasserman <owasserm@redhat.com>
Add missing check for host_from_stream_offset return value for RAM_SAVE_FLAG_PAGE
arch_init: Fix AltiVec build on Darwin/ppc
Commit f29a56147b66845914d0a645bf9b4c5bb9a6af57 (implement-no-user-config command-line option (v3)) introduced uses of boolin arch_init.c. Shortly before that usage is support code forAltiVec (conditional to ALTIVEC)....
implement -no-user-config command-line option (v3)
Changes v2 -> v3: - Rebase against latest qemu.git
Changes v1 -> v2: - Change 'userconfig' field/variables to bool instead of int - Coding style change
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>...
move CPU definitions to /usr/share/qemu/cpus-x86_64.conf (v2)
Changes v1 -> v2: - userconfig variable is now bool, not int
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
move list of default config files to an array
More files will be added to the list, with additional attributes, later.
move code to read default config files to a separate function (v2)
Function added to arch_init.c because it depends on arch-specificsettings.
Changes v1 -> v2: - Move qemu_read_default_config_file() prototype to qemu-config.h
eliminate arch_config_name variable
Not needed anymore, as the code that uses the variable is already insidearch_init.c.
pcspk: initialize PC speaker if compiled in
PC speaker has been moved to target-independant code in 71093711589dafcb920dc3bc9bb811eaf8b14101,so do not depend of target to include it or not.
Cc: malc <av1474@comtv.ru>Cc: Blue Swirl <blauwirbel@gmail.com>...
Purge migration of (almost) everything to do with monitors
The Monitor object is passed back and forth within the migration/savevmcode so that it can print errors and progress to the user.
However, that approach assumes a HMP monitor, being completely invalid...
pcspk: Convert to qdev
Convert the PC speaker device to a qdev ISA model. Move the publicinterface to a dedicated header file at this chance.
CC: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
memory: change dirty getting API to take a size
Instead of each device knowing or guessing the guest page size,just pass the desired size of dirtied memory area.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
memory: change dirty setting APIs to take a size
Instead of each target knowing or guessing the guest page size,just pass the desired size of dirtied memory area.
vectorize is_dup_page
is_dup_page is already proceeding in 32-bit chunks. Changing itto 16 bytes using Altivec or SSE is easy.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
memory: obsolete cpu_physical_memory_[gs]et_dirty_tracking()
The getter is no longer used, so it is completely removed.
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>Signed-off-by: Avi Kivity <avi@redhat.com>
Switch ram_save to the memory API
Avoid using ram_addr_t, instead use (MemoryRegion *, offset) pairs.
Sort RAMBlocks by ID for migration, not by ram_addr
ram_addr is (a) unstable (b) going away. Sort by idstr instead.
Commit b2e0a138e initially introduced the sorting for the purposeof improving debuggability. After this patch, the order is stillstable, but perhaps less usable by a human....
Remove support for version 3 ram_load
Version 3 ram_load depends on ram_addrs, which are not stable. Version 4was introduced in 0.13 (and RHEL 6), so this means live migration from 0.12and earlier to 1.1 or later will not work.
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>...
Convert ram_load() to the memory API
Merge remote-tracking branch 'qemu-kvm/memory/page_desc' into staging
audio: remove unused parameter isa_pic
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
isa: give ISABus/ISADevice to isa_create(), isa_bus_irqs() and isa_get_irq() functions
NULL is a valid bus/device, so there is no change in behaviour.
memory: replace cpu_physical_sync_dirty_bitmap() with a memory API
The function is still used as the implementation.
Signed-off-by: Avi Kivity <avi@redhat.com>
migration: change has_error to contain errno values
We normally already have an errno value. When not, abuse EIO.
migration: rename qemu_file_has_error to qemu_file_get_error
Now the function returned errno, so it is better the new name.
Signed-off-by: Juan Quintela <quintela@redhat.com>Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
migration: use qemu_file_get_error() return value when possible
migration: make *save_live return errors
Make *save_live() return negative values when there is one error, andupdates all callers to check for the error.
core: remove qemu_service_io
qemu_service_io was mainly an alias to qemu_notify_event,currently used only by PPC for timer hack, so callqemu_notify_event directly.
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
target-xtensa: add target stubs
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Use glib memory allocation and free functions
qemu_malloc/qemu_free no longer exist after this commit.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Introduce -machine command option.
This option gives the ability to switch one "accelerator" like kvm, xenor the default one tcg. We can specify more than one accelerator byseparate them by a colon. QEMU will try each one and use the first whoseworks....
LatticeMico32 target support
This patch adds support for the LatticeMico32 softcore processor by LatticeSemiconductor.
Signed-off-by: Michael Walle <michael@walle.cc>Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
audio: consolidate audio_init()
consolidate audio_init() and remove references to shoundhw.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>Acked-by: Blue Swirl <blauwirbel@gmail.com>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
migration: stable ram block ordering
This makes ram block ordering under migration stable, ordered by offset.This is especially useful for migration to exec, for debugging.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>Tested-by: Jason Wang <jasowang@redhat.com>
Merge remote branch 'mst/for_anthony' into staging
Add Intel HD Audio support to qemu.
This patch adds three devices to qemu:
intel-hda Intel HD Audio Controller, the PCI device. Provides a HDA bus. Emulates ICH6 at the moment. Adding a ICH9 PCIE variant shouldn't be hard.
hda-duplex HDA Codec. Attaches to the HDA bus. Supports 16bit stereo,...
migration: don't segfault on invalid input
host_from_stream_offset returns NULL on error,return error instead of trying to use that address,to avoid segfault on invalid stream.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Introduce qemu_madvise()
vl.c has a Sun-specific hack to supply a prototype for madvise(),but the call site has apparently moved to arch_init.c.
Haiku doesn't implement madvise() in favor of posix_madvise().OpenBSD and Solaris 10 don't implement posix_madvise() but madvise()....
arch_init: replace tabs by spaces.
Signed-off-by: Yoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
savevm: Reset last block info at beginning of each save
If we save more than once we need to reset the last block info or elseonly the first save has the actual block info and each subsequent savewill only use continue flags, making them unloadable independently....
ramblocks: No more being lazy about duplicate names
Now that we have a working qemu_ram_free() and the primary runtimeuser of it has been updated, don't be lenient about duplicate id strings.We also shouldn't need to create them ondemand at the target....
savevm: Migrate RAM based on name/offset
Synchronize RAM blocks with the target and migrate using name/offsetpairs. This ensures both source and target have the same view ofRAM and that we get the right bits into the right slot.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>...
savevm: Use RAM blocks for basis of migration
We don't want to assume a contiguous address space, so migrate basedon RAM blocks instead of a fixed linear address map. This will allowus to have holes in the ram_addr_t namespace, so we can implementqemu_ram_free()....
savevm: Create a new continue flag to avoid resending block name
Allows us to compress the protocol a bit by setting a flag on theoffset which indicates we're still working within the same blockas last time. That way we can avoid sending the block name for...
Remove uses of ram.last_offset (aka last_ram_offset)
We currently need this either to allocate the next ram_addr_t for anew block, or for total memory to be migrated. Both of which we cancalculate without need of this to keep us in a contiguous address space....
ram_blocks: Convert to a QLIST
This makes the RAM block list easier to manipulate. Also incorporaterelevant variables into the RAMList struct.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>Acked-by: Chris Wright <chrisw@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
migration: Fix calculation of bytes_transferred
When a page with all identical bytes is transferred, it is countedas a full page (TARGET_PAGE_SIZE) although only one byte is actuallysent. Fix this by changing ram_save_block() to return the number ofbytes sent instead of a boolean value. This makes bandwidth...
Add missing #include needed for madvise() on OpenBSD
Refactor target specific handling, compile vl.c only once
Move target specific functions and RAM handling to arch_init.c.
Add a flag to QEMUOptions structure to indicate for whicharchitectures the option is allowed, check the flagin run time and remove conditional code in option handling....