qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 8ebad0: migration: fix multifd_recv event typ


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 8ebad0: migration: fix multifd_recv event typo
Date: Mon, 15 Jul 2019 08:11:07 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 8ebad0f7a75a3d2fe0a826c19bfb47914b84b88a
      
https://github.com/qemu/qemu/commit/8ebad0f7a75a3d2fe0a826c19bfb47914b84b88a
  Author: Juan Quintela <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M migration/trace-events

  Log Message:
  -----------
  migration: fix multifd_recv event typo

It uses num in multifd_send().  Make it coherent.

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Wei Yang <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 8f7798f191117691853f4c65efca24a60bb2ff80
      
https://github.com/qemu/qemu/commit/8f7798f191117691853f4c65efca24a60bb2ff80
  Author: Juan Quintela <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M tests/migration-test.c

  Log Message:
  -----------
  migration-test: rename parameter to parameter_int

We would need _str ones on the next patch.

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Wei Yang <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: b6526c4b2122138833dacf7da74caabb84177344
      
https://github.com/qemu/qemu/commit/b6526c4b2122138833dacf7da74caabb84177344
  Author: Wei Yang <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration/multifd: call multifd_send_sync_main when sending RAM_SAVE_FLAG_EOS

On receiving RAM_SAVE_FLAG_EOS, multifd_recv_sync_main() is called to
synchronize receive threads. Current synchronization mechanism is to wait
for each channel's sem_sync semaphore. This semaphore is triggered by a
packet with MULTIFD_FLAG_SYNC flag. While in current implementation, we
don't do multifd_send_sync_main() to send such packet when
blk_mig_bulk_active() is true.

This will leads to the receive threads won't notify
multifd_recv_sync_main() by sem_sync. And multifd_recv_sync_main() will
always wait there.

[Note]: normal migration test works, while didn't test the
blk_mig_bulk_active() case. Since not sure how to produce this
situation.

Signed-off-by: Wei Yang <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: ca3538039012258973ab75775109dbe9577097f6
      
https://github.com/qemu/qemu/commit/ca3538039012258973ab75775109dbe9577097f6
  Author: Wei Yang <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration/xbzrle: update cache and current_data in one place

When we are not in the last_stage, we need to update the cache if page
is not the same.

Currently this procedure is scattered in two places and mixed with
encoding status check.

This patch extract this general step out to make the code a little bit
easy to read.

Signed-off-by: Wei Yang <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 7c960d617ad4fee940c5bb4df96e91ae31f55d18
      
https://github.com/qemu/qemu/commit/7c960d617ad4fee940c5bb4df96e91ae31f55d18
  Author: Wei Yang <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M util/cutils.c

  Log Message:
  -----------
  cutils: remove one unnecessary pointer operation

Since we will not operate on the next address pointed by out, it is not
necessary to do addition on it.

After removing the operation, the function size reduced 16/18 bytes.

Signed-off-by: Wei Yang <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 77568ea7f845cefc5623f7d7fb75137b5e30b956
      
https://github.com/qemu/qemu/commit/77568ea7f845cefc5623f7d7fb75137b5e30b956
  Author: Wei Yang <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration/multifd: sync packet_num after all thread are done

Notification from recv thread is not ordered, which means we may be
notified by one MultiFDRecvParams but adjust packet_num for another.

Move the adjustment after we are sure each recv thread are sync-ed.

Signed-off-by: Wei Yang <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 422314e751ba071ca92152a544c0656882e5acde
      
https://github.com/qemu/qemu/commit/422314e751ba071ca92152a544c0656882e5acde
  Author: Wei Yang <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration/ram.c: reset complete_round when we gets a queued page

In case we gets a queued page, the order of block is interrupted. We may
not rely on the complete_round flag to say we have already searched the
whole blocks on the list.

Signed-off-by: Wei Yang <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 267691b65cf7167881609dde1e50a4aafd86af08
      
https://github.com/qemu/qemu/commit/267691b65cf7167881609dde1e50a4aafd86af08
  Author: Peter Xu <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M include/exec/ram_addr.h
    M migration/ram.c

  Log Message:
  -----------
  migration: No need to take rcu during sync_dirty_bitmap

cpu_physical_memory_sync_dirty_bitmap() has one RAMBlock* as
parameter, which means that it must be with RCU read lock held
already.  Taking it again inside seems redundant.  Removing it.
Instead comment on the functions about the RCU read lock.

Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: ae7a2bca8a51f4a61704dc87137bd22ea555cc66
      
https://github.com/qemu/qemu/commit/ae7a2bca8a51f4a61704dc87137bd22ea555cc66
  Author: Peter Xu <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M include/exec/memory.h
    M include/exec/ram_addr.h
    M memory.c

  Log Message:
  -----------
  memory: Don't set migration bitmap when without migration

Similar to 9460dee4b2 ("memory: do not touch code dirty bitmap unless
TCG is enabled", 2015-06-05) but for the migration bitmap - we can
skip the MIGRATION bitmap update if migration not enabled.

Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: ad37f24d57a81020ceba4c966563b1ad7c7199e3
      
https://github.com/qemu/qemu/commit/ad37f24d57a81020ceba4c966563b1ad7c7199e3
  Author: Peter Xu <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M include/qemu/bitmap.h
    M tests/Makefile.include
    A tests/test-bitmap.c
    M util/bitmap.c

  Log Message:
  -----------
  bitmap: Add bitmap_copy_with_{src|dst}_offset()

These helpers copy the source bitmap to destination bitmap with a
shift either on the src or dst bitmap.

Meanwhile, we never have bitmap tests but we should.

This patch also introduces the initial test cases for utils/bitmap.c
but it only tests the newly introduced functions.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>

---

Bitmap test used sizeof(unsigned long) instead of BITS_PER_LONG.


  Commit: 5dea4079ad6f17527674785b39e840718bb18c62
      
https://github.com/qemu/qemu/commit/5dea4079ad6f17527674785b39e840718bb18c62
  Author: Peter Xu <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M exec.c
    M include/exec/ram_addr.h
    M memory.c

  Log Message:
  -----------
  memory: Pass mr into snapshot_and_clear_dirty

Also we change the 2nd parameter of it to be the relative offset
within the memory region. This is to be used in follow up patches.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 077874e01fd575528d6f6ecf4612beaa5618fe96
      
https://github.com/qemu/qemu/commit/077874e01fd575528d6f6ecf4612beaa5618fe96
  Author: Peter Xu <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M exec.c
    M include/exec/memory.h
    M include/exec/ram_addr.h
    M memory.c

  Log Message:
  -----------
  memory: Introduce memory listener hook log_clear()

Introduce a new memory region listener hook log_clear() to allow the
listeners to hook onto the points where the dirty bitmap is cleared by
the bitmap users.

Previously log_sync() contains two operations:

  - dirty bitmap collection, and,
  - dirty bitmap clear on remote site.

Let's take KVM as example - log_sync() for KVM will first copy the
kernel dirty bitmap to userspace, and at the same time we'll clear the
dirty bitmap there along with re-protecting all the guest pages again.

We add this new log_clear() interface only to split the old log_sync()
into two separated procedures:

  - use log_sync() to collect the collection only, and,
  - use log_clear() to clear the remote dirty bitmap.

With the new interface, the memory listener users will still be able
to decide how to implement the log synchronization procedure, e.g.,
they can still only provide log_sync() method only and put all the two
procedures within log_sync() (that's how the old KVM works before
KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 is introduced).  However with this
new interface the memory listener users will start to have a chance to
postpone the log clear operation explicitly if the module supports.
That can really benefit users like KVM at least for host kernels that
support KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2.

There are three places that can clear dirty bits in any one of the
dirty bitmap in the ram_list.dirty_memory[3] array:

        cpu_physical_memory_snapshot_and_clear_dirty
        cpu_physical_memory_test_and_clear_dirty
        cpu_physical_memory_sync_dirty_bitmap

Currently we hook directly into each of the functions to notify about
the log_clear().

Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 4a12a11a39a6d8399dd222ae2cebe08a8529224a
      
https://github.com/qemu/qemu/commit/4a12a11a39a6d8399dd222ae2cebe08a8529224a
  Author: Peter Xu <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M accel/kvm/kvm-all.c

  Log Message:
  -----------
  kvm: Update comments for sync_dirty_bitmap

It's obviously obsolete.  Do some update.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 9f4bf4baa8b820c7930e23c9566c9493db7e1d25
      
https://github.com/qemu/qemu/commit/9f4bf4baa8b820c7930e23c9566c9493db7e1d25
  Author: Peter Xu <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M accel/kvm/kvm-all.c
    M include/sysemu/kvm_int.h

  Log Message:
  -----------
  kvm: Persistent per kvmslot dirty bitmap

When synchronizing dirty bitmap from kernel KVM we do it in a
per-kvmslot fashion and we allocate the userspace bitmap for each of
the ioctl.  This patch instead make the bitmap cache be persistent
then we don't need to g_malloc0() every time.

More importantly, the cached per-kvmslot dirty bitmap will be further
used when we want to add support for the KVM_CLEAR_DIRTY_LOG and this
cached bitmap will be used to guarantee we won't clear any unknown
dirty bits otherwise that can be a severe data loss issue for
migration code.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 36adac493410a68b7fad2f28a6cf0bdc3d4afabf
      
https://github.com/qemu/qemu/commit/36adac493410a68b7fad2f28a6cf0bdc3d4afabf
  Author: Peter Xu <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M accel/kvm/kvm-all.c
    M include/sysemu/kvm_int.h

  Log Message:
  -----------
  kvm: Introduce slots lock for memory listener

Introduce KVMMemoryListener.slots_lock to protect the slots inside the
kvm memory listener.  Currently it is close to useless because all the
KVM code path now is always protected by the BQL.  But it'll start to
make sense in follow up patches where we might do remote dirty bitmap
clear and also we'll update the per-slot cached dirty bitmap even
without the BQL.  So let's prepare for it.

We can also use per-slot lock for above reason but it seems to be an
overkill.  Let's just use this bigger one (which covers all the slots
of a single address space) but anyway this lock is still much smaller
than the BQL.

Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: ff4aa11419242c835b03d274f08f797c129ed7ba
      
https://github.com/qemu/qemu/commit/ff4aa11419242c835b03d274f08f797c129ed7ba
  Author: Peter Xu <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/kvm/trace-events

  Log Message:
  -----------
  kvm: Support KVM_CLEAR_DIRTY_LOG

Firstly detect the interface using KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
and mark it.  When failed to enable the new feature we'll fall back to
the old sync.

Provide the log_clear() hook for the memory listeners for both address
spaces of KVM (normal system memory, and SMM) and deliever the clear
message to kernel.

Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 002cad6b16ca01d8dc8160038e139b47e5ca557e
      
https://github.com/qemu/qemu/commit/002cad6b16ca01d8dc8160038e139b47e5ca557e
  Author: Peter Xu <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M include/exec/ram_addr.h
    M migration/migration.c
    M migration/migration.h
    M migration/ram.c
    M migration/trace-events

  Log Message:
  -----------
  migration: Split log_clear() into smaller chunks

Currently we are doing log_clear() right after log_sync() which mostly
keeps the old behavior when log_clear() was still part of log_sync().

This patch tries to further optimize the migration log_clear() code
path to split huge log_clear()s into smaller chunks.

We do this by spliting the whole guest memory region into memory
chunks, whose size is decided by MigrationState.clear_bitmap_shift (an
example will be given below).  With that, we don't do the dirty bitmap
clear operation on the remote node (e.g., KVM) when we fetch the dirty
bitmap, instead we explicitly clear the dirty bitmap for the memory
chunk for each of the first time we send a page in that chunk.

Here comes an example.

Assuming the guest has 64G memory, then before this patch the KVM
ioctl KVM_CLEAR_DIRTY_LOG will be a single one covering 64G memory.
If after the patch, let's assume when the clear bitmap shift is 18,
then the memory chunk size on x86_64 will be 1UL<<18 * 4K = 1GB.  Then
instead of sending a big 64G ioctl, we'll send 64 small ioctls, each
of the ioctl will cover 1G of the guest memory.  For each of the 64
small ioctls, we'll only send if any of the page in that small chunk
was going to be sent right away.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: b17fbbe55cba95ad323b27c2f9f3e22eb6364d4b
      
https://github.com/qemu/qemu/commit/b17fbbe55cba95ad323b27c2f9f3e22eb6364d4b
  Author: Peng Tao <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: allow private destination ram with x-ignore-shared

By removing the share ram check, qemu is able to migrate
to private destination ram when x-ignore-shared capability
is on. Then we can create multiple destination VMs based
on the same source VM.

This changes the x-ignore-shared migration capability to
work similar to Lai's original bypass-shared-memory
work(https://lists.gnu.org/archive/html/qemu-devel/2018-04/msg00003.html)
which enables kata containers (https://katacontainers.io)
to implement the VM templating feature.

An example usage in kata containers(https://katacontainers.io):
1. Start the source VM:
   qemu-system-x86 -m 2G \
     -object 
memory-backend-file,id=mem0,size=2G,share=on,mem-path=/tmpfs/template-memory \
     -numa node,memdev=mem0
2. Stop the template VM, set migration x-ignore-shared capability,
   migrate "exec:cat>/tmpfs/state", quit it
3. Start target VM:
   qemu-system-x86 -m 2G \
     -object 
memory-backend-file,id=mem0,size=2G,share=off,mem-path=/tmpfs/template-memory \
     -numa node,memdev=mem0 \
     -incoming defer
4. connect to target VM qmp, set migration x-ignore-shared capability,
migrate_incoming "exec:cat /tmpfs/state"
5. create more target VMs repeating 3 and 4

Cc: Dr. David Alan Gilbert <address@hidden>
Cc: Yury Kotov <address@hidden>
Cc: Jiangshan Lai <address@hidden>
Cc: Xu Wang <address@hidden>
Signed-off-by: Peng Tao <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 89dab31b277936d8808ffa0bd55a070027728e0f
      
https://github.com/qemu/qemu/commit/89dab31b277936d8808ffa0bd55a070027728e0f
  Author: Wei Yang <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration/postcopy: fix document of postcopy_send_discard_bm_ram()

Commit 6b6712efccd3 ('ram: Split dirty bitmap by RAMBlock') changes the
parameter of postcopy_send_discard_bm_ram(), while left the document
part untouched.

This patch correct the document and fix two typo by hand.

Signed-off-by: Wei Yang <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 40277ca807d72b9403c18b0921809a69b491afae
      
https://github.com/qemu/qemu/commit/40277ca807d72b9403c18b0921809a69b491afae
  Author: Wei Yang <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M migration/savevm.c

  Log Message:
  -----------
  migration/postcopy: remove redundant cpu_synchronize_all_post_init

cpu_synchronize_all_post_init() is called twice in
loadvm_postcopy_handle_run_bh(), so remove one redundant call.

Signed-off-by: Wei Yang <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 40c4d4a835453452a262f32450a0449886aa19ce
      
https://github.com/qemu/qemu/commit/40c4d4a835453452a262f32450a0449886aa19ce
  Author: Ivan Ren <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: always initial RAMBlock.bmap to 1 for new migration

Reproduce the problem:
migrate
migrate_cancel
migrate

Error happen for memory migration

The reason as follows:
1. qemu start, ram_list.dirty_memory[DIRTY_MEMORY_MIGRATION] all set to
   1 by a series of cpu_physical_memory_set_dirty_range
2. migration start:ram_init_bitmaps
   - memory_global_dirty_log_start: begin log diry
   - memory_global_dirty_log_sync: sync dirty bitmap to
     ram_list.dirty_memory[DIRTY_MEMORY_MIGRATION]
   - migration_bitmap_sync_range: sync ram_list.
     dirty_memory[DIRTY_MEMORY_MIGRATION] to RAMBlock.bmap
     and ram_list.dirty_memory[DIRTY_MEMORY_MIGRATION] is set to zero
3. migration data...
4. migrate_cancel, will stop log dirty
5. migration start:ram_init_bitmaps
   - memory_global_dirty_log_start: begin log diry
   - memory_global_dirty_log_sync: sync dirty bitmap to
     ram_list.dirty_memory[DIRTY_MEMORY_MIGRATION]
   - migration_bitmap_sync_range: sync ram_list.
     dirty_memory[DIRTY_MEMORY_MIGRATION] to RAMBlock.bmap
     and ram_list.dirty_memory[DIRTY_MEMORY_MIGRATION] is set to zero

   Here RAMBlock.bmap only have new logged dirty pages, don't contain
   the whole guest pages.

Signed-off-by: Ivan Ren <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: a68725f930a0d186fe3f8941941e2047e03589d4
      
https://github.com/qemu/qemu/commit/a68725f930a0d186fe3f8941941e2047e03589d4
  Author: Peter Maydell <address@hidden>
  Date:   2019-07-15 (Mon, 15 Jul 2019)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/kvm/trace-events
    M exec.c
    M include/exec/memory.h
    M include/exec/ram_addr.h
    M include/qemu/bitmap.h
    M include/sysemu/kvm_int.h
    M memory.c
    M migration/migration.c
    M migration/migration.h
    M migration/ram.c
    M migration/savevm.c
    M migration/trace-events
    M tests/Makefile.include
    M tests/migration-test.c
    A tests/test-bitmap.c
    M util/bitmap.c
    M util/cutils.c

  Log Message:
  -----------
  Merge remote-tracking branch 
'remotes/juanquintela/tags/migration-pull-request' into staging

Pull request

# gpg: Signature made Mon 15 Jul 2019 14:49:41 BST
# gpg:                using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723
# gpg: Good signature from "Juan Quintela <address@hidden>" [full]
# gpg:                 aka "Juan Quintela <address@hidden>" [full]
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03  4B82 F487 EF18 5872 D723

* remotes/juanquintela/tags/migration-pull-request: (21 commits)
  migration: always initial RAMBlock.bmap to 1 for new migration
  migration/postcopy: remove redundant cpu_synchronize_all_post_init
  migration/postcopy: fix document of postcopy_send_discard_bm_ram()
  migration: allow private destination ram with x-ignore-shared
  migration: Split log_clear() into smaller chunks
  kvm: Support KVM_CLEAR_DIRTY_LOG
  kvm: Introduce slots lock for memory listener
  kvm: Persistent per kvmslot dirty bitmap
  kvm: Update comments for sync_dirty_bitmap
  memory: Introduce memory listener hook log_clear()
  memory: Pass mr into snapshot_and_clear_dirty
  bitmap: Add bitmap_copy_with_{src|dst}_offset()
  memory: Don't set migration bitmap when without migration
  migration: No need to take rcu during sync_dirty_bitmap
  migration/ram.c: reset complete_round when we gets a queued page
  migration/multifd: sync packet_num after all thread are done
  cutils: remove one unnecessary pointer operation
  migration/xbzrle: update cache and current_data in one place
  migration/multifd: call multifd_send_sync_main when sending RAM_SAVE_FLAG_EOS
  migration-test: rename parameter to parameter_int
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/0dc6284710af...a68725f930a0



reply via email to

[Prev in Thread] Current Thread [Next in Thread]