- 17 Jan, 2013 1 commit
-
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Reviewed-by: Eric Blake <eblake@redhat.com>
-
- 20 Dec, 2012 13 commits
-
-
Juan Quintela authored
It could only return 0 if we only found dirty xbzrle pages that hadn't changed (i.e. they were written with the same content). We don't care about that case, it is the same than nothing dirty. So now the return of the function is how much have it written, nothing else. Adjust callers. And we also made ram_save_iterate() return the number of transferred bytes, not the number of transferred pages. Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
Juan Quintela authored
Instead of testing each page individually, we search what is the next dirty page with a bitmap operation. We have to reorganize the code to move from a "for" loop, to a while(dirty) loop. Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
Juan Quintela authored
This avoids having to do two walks over the dirty bitmap, once reading the dirty bits, and anthoer cleaning them. Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
Juan Quintela authored
This is the last block from where we have sent data. Signed-off-by:
Orit Wasserman <owasserm@redhat.com> Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
Juan Quintela authored
Code just now does (simplified for clarity) if (qemu_savevm_state_iterate(s->file) == 1) { vm_stop_force_state(RUN_STATE_FINISH_MIGRATE); qemu_savevm_state_complete(s->file); } Problem here is that qemu_savevm_state_iterate() returns 1 when it knows that remaining memory to sent takes less than max downtime. But this means that we could end spending 2x max_downtime, one downtime in qemu_savevm_iterate, and the other in qemu_savevm_state_complete. Changed code to: pending_size = qemu_savevm_state_pending(s->file, max_size); DPRINTF("pending size %lu max %lu\n", pending_size, max_size); if (pending_size >= max_size) { ret = qemu_savevm_state_iterate(s->file); } else { vm_stop_force_state(RUN_STATE_FINISH_MIGRATE); qemu_savevm_state_complete(s->file); } So what we do is: at current network speed, we calculate the maximum number of bytes we can sent: max_size. Then we ask every save_live section how much they have pending. If they are less than max_size, we move to complete phase, otherwise we do an iterate one. This makes things much simpler, because now individual sections don't have to caluclate the bandwidth (it was implossible to do right from there). Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Umesh Deshpande authored
Add the new mutex that protects shared state between ram_save_live and the iothread. If the iothread mutex has to be taken together with the ramlist mutex, the iothread shall always be _outside_. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Umesh Deshpande <udeshpan@redhat.com> Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Orit Wasserman <owasserm@redhat.com>
-
Umesh Deshpande authored
This will be used to detect if last_block might have become invalid across different calls to ram_save_live. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Umesh Deshpande <udeshpan@redhat.com> Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Orit Wasserman <owasserm@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
Paolo Bonzini authored
Most of the time, only 2 items will be active (from/to for a string operation, or code/data). But TCG guests likely won't have gigabytes of memory, so this actually goes down to 1 item. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
Paolo Bonzini authored
Cc: qemu-stable@nongnu.org Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
- 19 Dec, 2012 7 commits
-
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Various header files rely on qemu-char.h including qemu-config.h or main-loop.h, but they really do not need qemu-char.h at all (particularly interesting is the case of the block layer!). Clean this up, and also add missing inclusions of qemu-char.h itself. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- 17 Dec, 2012 1 commit
-
-
Michael S. Tsirkin authored
update all users so we can remove the makefile hack. Signed-off-by:
Michael S. Tsirkin <mst@redhat.com>
-
- 12 Dec, 2012 2 commits
-
-
David Gibson authored
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>
-
David Gibson authored
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>
-
- 17 Oct, 2012 10 commits
-
-
Juan Quintela authored
It indicates how many pages were dirtied during the last second. Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
Juan Quintela authored
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>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Juan Quintela authored
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>
-
Juan Quintela authored
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>
-
Juan Quintela authored
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>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Paolo Bonzini <pbonzini@redhat.com> Reviewed-by:
Orit Wasserman <owasserm@redhat.com>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Paolo Bonzini <pbonzini@redhat.com> Reviewed-by:
Orit Wasserman <owasserm@redhat.com>
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- 21 Sep, 2012 1 commit
-
-
Eduardo Habkost authored
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>
-
- 19 Sep, 2012 1 commit
-
-
Peter Maydell authored
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>
-
- 14 Sep, 2012 1 commit
-
-
Igor Mitsyanko authored
'%' 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>
-
- 22 Aug, 2012 1 commit
-
-
Daniel P. Berrange authored
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>
-
- 11 Aug, 2012 1 commit
-
-
Guan Xuetao authored
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>
-
- 08 Aug, 2012 1 commit
-
-
Juan Quintela authored
Signed-off-by:
Juan Quintela <quintela@redhat.com> Reviewed-by:
Luiz Capitulino <lcapitulino@redhat.com> Reviewed-by:
Eric Blake <eblake@redhat.com>
-