#
45e6cee4 |
| 04-Dec-2012 |
David Gibson <david@gibson.dropbear.id.au> |
migration: Fix madvise breakage if host and guest have different page sizes
madvise(DONTNEED) will throw away the contents of the whole page at the given address, even if the given length is less th
migration: Fix madvise breakage if host and guest have different page sizes
madvise(DONTNEED) will throw away the contents of the whole page at the given address, even if the given length is less than the page size. One can argue about whether that's the correct behaviour, but that's what it's done for a long time in Linux at least.
That means that the madvise() in ram_load(), on a setup where TARGET_PAGE_SIZE is smaller than the host page size, can throw away data in guest pages adjacent to the one it's actually processing right now, leading to guest memory corruption on an incoming migration.
This patch therefore, disables the madvise() if the host page size is larger than TARGET_PAGE_SIZE. This means we don't get the benefits of that madvise() in this case, but a more complete fix is more difficult to accomplish. This at least fixes the guest memory corruption.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Reported-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
7ec81e56 |
| 04-Dec-2012 |
David Gibson <david@gibson.dropbear.id.au> |
Fix off-by-1 error in RAM migration code
The code for migrating (or savevm-ing) memory pages starts off by creating a dirty bitmap and filling it with 1s. Except, actually, because bit addresses ar
Fix off-by-1 error in RAM migration code
The code for migrating (or savevm-ing) memory pages starts off by creating a dirty bitmap and filling it with 1s. Except, actually, because bit addresses are 0-based it fills every bit except bit 0 with 1s and puts an extra 1 beyond the end of the bitmap, potentially corrupting unrelated memory. Oops. This patch fixes it.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
8d017193 |
| 13-Aug-2012 |
Juan Quintela <quintela@redhat.com> |
migration: Add dirty_pages_rate to query migrate output
It indicates how many pages were dirtied during the last second.
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
#
c6bf8e0e |
| 20-Jul-2012 |
Juan Quintela <quintela@redhat.com> |
Separate migration bitmap
This patch creates a migration bitmap, which is periodically kept in sync with the qemu bitmap. A separate copy of the dirty bitmap for the migration limits the amount of c
Separate migration bitmap
This patch creates a migration bitmap, which is periodically kept in sync with the qemu bitmap. A separate copy of the dirty bitmap for the migration limits the amount of concurrent access to the qemu bitmap from iothread and migration thread (which requires taking the big lock).
We use the qemu bitmap type. We have to "undo" the dirty_pages counting optimization on the general dirty bitmap and do the counting optimization with the migration local bitmap.
Signed-off-by: Umesh Deshpande <udeshpan@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
show more ...
|
#
3c12193d |
| 04-Sep-2012 |
Juan Quintela <quintela@redhat.com> |
ram: create trace event for migration sync bitmap
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
|
#
dd2df737 |
| 20-Jul-2012 |
Juan Quintela <quintela@redhat.com> |
ram: introduce migration_bitmap_sync()
Helper that we use each time that we need to syncronize the migration bitmap with the other dirty bitmaps.
Signed-off-by: Juan Quintela <quintela@redhat.com>
ram: introduce migration_bitmap_sync()
Helper that we use each time that we need to syncronize the migration bitmap with the other dirty bitmaps.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
69268cde |
| 20-Jul-2012 |
Juan Quintela <quintela@redhat.com> |
ram: Introduce migration_bitmap_test_and_reset_dirty()
It just test if the dirty bit is set, and clears it.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@
ram: Introduce migration_bitmap_test_and_reset_dirty()
It just test if the dirty bit is set, and clears it.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Orit Wasserman <owasserm@redhat.com>
show more ...
|
#
e44d26c8 |
| 20-Jul-2012 |
Juan Quintela <quintela@redhat.com> |
ram: introduce migration_bitmap_set_dirty()
It just marks a region of memory as dirty.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-
ram: introduce migration_bitmap_set_dirty()
It just marks a region of memory as dirty.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Orit Wasserman <owasserm@redhat.com>
show more ...
|
#
5a170775 |
| 17-Jul-2012 |
Juan Quintela <quintela@redhat.com> |
savevm: Factorize ram globals reset in its own function
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Orit Wasserman <owasserm@red
savevm: Factorize ram globals reset in its own function
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Orit Wasserman <owasserm@redhat.com>
show more ...
|
#
2c52ddf1 |
| 13-Aug-2012 |
Juan Quintela <quintela@redhat.com> |
migration: print expected downtime in info migrate
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
#
c00012f6 |
| 13-Aug-2012 |
Juan Quintela <quintela@redhat.com> |
migration: rename expected_time to expected_downtime
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Orit Wasserman <owasserm@redhat
migration: rename expected_time to expected_downtime
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Orit Wasserman <owasserm@redhat.com>
show more ...
|
#
79536f4f |
| 03-Aug-2012 |
Juan Quintela <quintela@redhat.com> |
fix migration sync
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
|
#
ba6212d8 |
| 05-Sep-2012 |
Eduardo Habkost <ehabkost@redhat.com> |
Eliminate cpus-x86_64.conf file
This file is not needed anymore, as QEMU won't ship any config-based cpudefs out of the box, relying only on the builtin CPU models.
Signed-off-by: Eduardo Habkost <
Eliminate cpus-x86_64.conf file
This file is not needed anymore, as QEMU won't ship any config-based cpudefs 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> Signed-off-by: Andreas Färber <afaerber@suse.de>
show more ...
|
#
55d4fd3c |
| 19-Sep-2012 |
Peter Maydell <peter.maydell@linaro.org> |
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 empty l
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 empty list, implying no sound support at all.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: malc <av1474@comtv.ru>
show more ...
|
#
ef37a699 |
| 05-Sep-2012 |
Igor Mitsyanko <i.mitsyanko@samsung.com> |
arch_init.c: add missing '%' symbols before PRIu64 in debug printfs
'%' symbols were missing in front of PRIu64 macros in DPRINTF() messages in arch_init.c, this caused compilation warnings when com
arch_init.c: add missing '%' symbols before PRIu64 in debug printfs
'%' symbols were missing in front of PRIu64 macros in DPRINTF() messages in arch_init.c, this caused compilation warnings when compiled with DEBUG_ARCH_INIT defined.
Signed-off-by: Igor Mitsyanko <i.mitsyanko@samsung.com> Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
show more ...
|
#
99afc91d |
| 20-Aug-2012 |
Daniel P. Berrange <berrange@redhat.com> |
qapi: add 'query-target' command to return target arch
Add a 'query-target' QAPI command to allow management applications to determine what target architecture a QEMU binary is emulating without hav
qapi: add 'query-target' command to return target arch
Add a 'query-target' QAPI command to allow management applications to determine what target architecture a QEMU binary is emulating without having to parse the binary name or -help output
$ qmp-shell -p /tmp/qemu (QEMU) query-target { u'return': { u'arch': u'x86_64' }}
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
ac839ccd |
| 13-Aug-2012 |
Anthony Liguori <aliguori@us.ibm.com> |
Merge remote-tracking branch 'quintela/migration-next-20120808' into staging
* quintela/migration-next-20120808: Restart optimization on stage3 update version Add XBZRLE statistics Add migrati
Merge remote-tracking branch 'quintela/migration-next-20120808' into staging
* quintela/migration-next-20120808: Restart optimization on stage3 update version Add XBZRLE statistics Add migration accounting for normal and duplicate pages Change total_time to total-time in MigrationStats Add migrate_set_cache_size command Add XBZRLE to ram_save_block and ram_save_live Add xbzrle_encode_buffer and xbzrle_decode_buffer functions Add uleb encoding/decoding functions Add cache handling functions Add XBZRLE documentation Add migrate-set-capabilities Add migration capabilities
show more ...
|
#
4f23a1e6 |
| 10-Aug-2012 |
Guan Xuetao <gxt@mprc.pku.edu.cn> |
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
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 be build successfully. By 20120804: change QEMU_ARCH_UNICORE32 to 0x4000
Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
show more ...
|
#
dd051c72 |
| 06-Aug-2012 |
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>
|
#
f36d55af |
| 06-Aug-2012 |
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
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>
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
show more ...
|
#
004d4c10 |
| 06-Aug-2012 |
Orit Wasserman <owasserm@redhat.com> |
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.shri
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> Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
show more ...
|
#
9e1ba4cc |
| 06-Aug-2012 |
Orit Wasserman <owasserm@redhat.com> |
Add migrate_set_cache_size command
Change XBZRLE cache size in bytes (the size should be a power of 2, it will be rounded down to the nearest power of 2). If XBZRLE cache size is too small there wil
Add migrate_set_cache_size command
Change XBZRLE cache size in bytes (the size should be a power of 2, it will be rounded 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 command to query cache value.
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>
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
show more ...
|
#
17ad9b35 |
| 06-Aug-2012 |
Orit Wasserman <owasserm@redhat.com> |
Add XBZRLE to ram_save_block and ram_save_live
In the outgoing migration check to see if the page is cached and changed, then send compressed page by using save_xbrle_page function. In the incoming
Add XBZRLE to ram_save_block and ram_save_live
In the outgoing migration check to see if the page is cached and changed, then send compressed page by using save_xbrle_page function. In the incoming migration check to see if RAM_SAVE_FLAG_XBZRLE is set and decompress the page (by using load_xbrle 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>
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
show more ...
|
#
c8057f95 |
| 02-Aug-2012 |
Peter Maydell <peter.maydell@linaro.org> |
Support 'help' as a synonym for '?' in command line options
For command line options which permit '?' meaning 'please list the permitted values', add support for 'help' as a synonym, by abstracting
Support 'help' as a synonym for '?' in command line options
For command line options which permit '?' meaning 'please list the permitted values', add support for 'help' as a synonym, by abstracting the check out into a helper function.
This change means that in some cases where we were being lazy in our string parsing, "?junk" will now be rejected as an invalid option rather than being (undocumentedly) treated the same way as "?".
Update the documentation to use 'help' rather than '?', since '?' is a shell metacharacter and thus prone to fail confusingly if there is a single character filename in the current working directory and the '?' has not been escaped. It's therefore better to steer users towards 'help', though '?' is retained for backwards compatibility.
We do not, however, update the output of the system emulator's -help (or any documentation autogenerated from the qemu-options.hx which is the source of the -help text) because libvirt parses our -help output and will break. At a later date when QEMU provides a better interface so libvirt can avoid having to do this, we can update the -help text too.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
e6a76719 |
| 30-Jul-2012 |
Anthony Liguori <aliguori@us.ibm.com> |
Merge commit 'quintela/migration-next-v5' into staging
* commit '6c779f22a93cc6e4565b940ef616e3efc5b50ba5': Change ram_save_block to return -1 if there are no more changes ram: save_live_setup()
Merge commit 'quintela/migration-next-v5' into staging
* commit '6c779f22a93cc6e4565b940ef616e3efc5b50ba5': Change ram_save_block to return -1 if there are no more changes ram: save_live_setup() we don't need to synchronize the dirty bitmap. ram: iterate phase ram: save_live_complete() only do one loop ram: save_live_setup() don't need to sent pages savevm: split save_live into stage2 and stage3 savevm: split save_live_setup from save_live_state savevm: introduce is_active method savevm: Refactor cancel operation in its own operation savevm: remove SaveLiveStateHandler savevm: remove SaveSetParamsHandler savevm: Live migration handlers register the struct directly savevm: Use a struct to pass all handlers
show more ...
|