qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 701b18: migration: fix saving normal page eve


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 701b18: migration: fix saving normal page even if it's bee...
Date: Thu, 17 May 2018 03:59:30 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 701b1876c0fc0c583e4aff300ace5d33a1b97ed6
      
https://github.com/qemu/qemu/commit/701b1876c0fc0c583e4aff300ace5d33a1b97ed6
  Author: Xiao Guangrong <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: fix saving normal page even if it's been compressed

Fix the bug introduced by da3f56cb2e767016 (migration: remove
ram_save_compressed_page()), It should be 'return' rather than
'res'

Sorry for this stupid mistake :(

Signed-off-by: Xiao Guangrong <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 2884100cc68d0b2ee1ed14da84790659df347505
      
https://github.com/qemu/qemu/commit/2884100cc68d0b2ee1ed14da84790659df347505
  Author: Juan Quintela <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M tests/migration-test.c

  Log Message:
  -----------
  tests: Add migration precopy test

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


  Commit: cdf338152f64616d4c1f880861fec7cf0df306ae
      
https://github.com/qemu/qemu/commit/cdf338152f64616d4c1f880861fec7cf0df306ae
  Author: Juan Quintela <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M tests/migration-test.c

  Log Message:
  -----------
  tests: Migration ppc now inlines its program

No need to write it to a file.  Just need a proper firmware O:-)

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>


  Commit: 7a169d745c854bb722a978c63d1f9edb05f04cd6
      
https://github.com/qemu/qemu/commit/7a169d745c854bb722a978c63d1f9edb05f04cd6
  Author: Juan Quintela <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Set error state in case of error

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


  Commit: 71bb07dbfcd465236738ee4b1cde6b80989e94bf
      
https://github.com/qemu/qemu/commit/71bb07dbfcd465236738ee4b1cde6b80989e94bf
  Author: Juan Quintela <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M migration/ram.c
    M migration/ram.h

  Log Message:
  -----------
  migration: Introduce multifd_recv_new_channel()

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>


  Commit: 667707078d8d365d449d1908805c09506f67825f
      
https://github.com/qemu/qemu/commit/667707078d8d365d449d1908805c09506f67825f
  Author: Juan Quintela <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: terminate_* can be called for other threads

Once there, make  count field to always be accessed with atomic
operations.  To make blocking operations, we need to know that the
thread is running, so create a bool to indicate that.

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>

--

Once here, s/terminate_multifd_*-threads/multifd_*_terminate_threads/
This is consistente with every other function


  Commit: 62c1e0ca739008aaec6d3a18456f479bed61713b
      
https://github.com/qemu/qemu/commit/62c1e0ca739008aaec6d3a18456f479bed61713b
  Author: Juan Quintela <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M migration/ram.c
    M migration/ram.h

  Log Message:
  -----------
  migration: Be sure all recv channels are created

We need them before we start migration.

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>


  Commit: 3854956ad7ea0a4a29f434a026eeea9bae250d0d
      
https://github.com/qemu/qemu/commit/3854956ad7ea0a4a29f434a026eeea9bae250d0d
  Author: Juan Quintela <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/socket.c
    M migration/socket.h

  Log Message:
  -----------
  migration: Export functions to create send channels

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>


  Commit: 60df2d4ae59837d1a5afced71ec62a0c86c09f50
      
https://github.com/qemu/qemu/commit/60df2d4ae59837d1a5afced71ec62a0c86c09f50
  Author: Juan Quintela <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Create multifd channels

In both sides.  We still don't transmit anything through them.

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>


  Commit: 36c2f8be2c4eb0003ac77a14910842b7ddd7337e
      
https://github.com/qemu/qemu/commit/36c2f8be2c4eb0003ac77a14910842b7ddd7337e
  Author: Juan Quintela <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/ram.c
    M migration/socket.c

  Log Message:
  -----------
  migration: Delay start of migration main routines

We need to make sure that we have started all the multifd threads.

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>


  Commit: af8b7d2b09471051aba8e6ed5c468469a1ea8309
      
https://github.com/qemu/qemu/commit/af8b7d2b09471051aba8e6ed5c468469a1ea8309
  Author: Juan Quintela <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Transmit initial package through the multifd channels

Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>

--

Be network agnostic.
Add error checking for all values.


  Commit: 8c4598f2b1f65ca063d0d5e0dc7f621e2023a0fd
      
https://github.com/qemu/qemu/commit/8c4598f2b1f65ca063d0d5e0dc7f621e2023a0fd
  Author: Juan Quintela <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Define MultifdRecvParams sooner

Once there, we don't need the struct names anywhere, just the
typedefs.  And now also document all fields.

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


  Commit: e89f5ff2c305a335dd42091ab379f1e38df6f161
      
https://github.com/qemu/qemu/commit/e89f5ff2c305a335dd42091ab379f1e38df6f161
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/exec.c
    M migration/fd.c
    M migration/socket.c

  Log Message:
  -----------
  migration: let incoming side use thread context

The old incoming migration is running in main thread and default
gcontext.  With the new qio_channel_add_watch_full() we can now let it
run in the thread's own gcontext (if there is one).

Currently this patch does nothing alone.  But when any of the incoming
migration is run in another iothread (e.g., the upcoming migrate-recover
command), this patch will bind the incoming logic to the iothread
instead of the main thread (which may already get page faulted and
hanged).

RDMA is not considered for now since it's not even using the QIO watch
framework at all.

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: a688d2c1abc791254fddd1366ecc11f8f5c6eb7a
      
https://github.com/qemu/qemu/commit/a688d2c1abc791254fddd1366ecc11f8f5c6eb7a
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M qapi/migration.json

  Log Message:
  -----------
  migration: new postcopy-pause state

Introducing a new state "postcopy-paused", which can be used when the
postcopy migration is paused. It is targeted for postcopy network
failure recovery.

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: b23c2ade250718fe77b51e116f95f3c34c8a4c24
      
https://github.com/qemu/qemu/commit/b23c2ade250718fe77b51e116f95f3c34c8a4c24
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/trace-events

  Log Message:
  -----------
  migration: implement "postcopy-pause" src logic

Now when network down for postcopy, the source side will not fail the
migration. Instead we convert the status into this new paused state, and
we will try to wait for a rescue in the future.

If a recovery is detected, migration_thread() will reset its local
variables to prepare for that.

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: b411b844fb2e038c6ba92fd50fed3213a27c6445
      
https://github.com/qemu/qemu/commit/b411b844fb2e038c6ba92fd50fed3213a27c6445
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/savevm.c
    M migration/trace-events

  Log Message:
  -----------
  migration: allow dst vm pause on postcopy

When there is IO error on the incoming channel (e.g., network down),
instead of bailing out immediately, we allow the dst vm to switch to the
new POSTCOPY_PAUSE state. Currently it is still simple - it waits the
new semaphore, until someone poke it for another attempt.

One note is that here on ram loading thread we cannot detect the
POSTCOPY_ACTIVE state, but we need to detect the more specific
POSTCOPY_INCOMING_RUNNING state, to make sure we have already loaded all
the device states.

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: 14b1742eaaad1148c5b421eea0ae7e74d823e630
      
https://github.com/qemu/qemu/commit/14b1742eaaad1148c5b421eea0ae7e74d823e630
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/trace-events

  Log Message:
  -----------
  migration: allow src return path to pause

Let the thread pause for network issues.

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: 3a7804c3065ac79ff6e609e75ff2765d79f64f85
      
https://github.com/qemu/qemu/commit/3a7804c3065ac79ff6e609e75ff2765d79f64f85
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/postcopy-ram.c
    M migration/savevm.c
    M migration/trace-events

  Log Message:
  -----------
  migration: allow fault thread to pause

Allows the fault thread to stop handling page faults temporarily. When
network failure happened (and if we expect a recovery afterwards), we
should not allow the fault thread to continue sending things to source,
instead, it should halt for a while until the connection is rebuilt.

When the dest main thread noticed the failure, it kicks the fault thread
to switch to pause state.

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: 7a4da28b26382bbfc01847dcb7ac01de99f0a1f0
      
https://github.com/qemu/qemu/commit/7a4da28b26382bbfc01847dcb7ac01de99f0a1f0
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M hmp-commands.hx
    M hmp.c
    M migration/migration.c
    M qapi/migration.json

  Log Message:
  -----------
  qmp: hmp: add migrate "resume" option

It will be used when we want to resume one paused migration.

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>
---
s/2.12/2.13/


  Commit: d3e35b8f6248eab2c3d412198a487ae49706b214
      
https://github.com/qemu/qemu/commit/d3e35b8f6248eab2c3d412198a487ae49706b214
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration: rebuild channel on source

This patch detects the "resume" flag of migration command, rebuild the
channels only if the flag is set.

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: 135b87b4f08029a4ec5c31f9c4473b519da7e2f7
      
https://github.com/qemu/qemu/commit/135b87b4f08029a4ec5c31f9c4473b519da7e2f7
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M qapi/migration.json

  Log Message:
  -----------
  migration: new state "postcopy-recover"

Introducing new migration state "postcopy-recover". If a migration
procedure is paused and the connection is rebuilt afterward
successfully, we'll switch the source VM state from "postcopy-paused" to
the new state "postcopy-recover", then we'll do the resume logic in the
migration thread (along with the return path thread).

This patch only do the state switch on source side. Another following up
patch will handle the state switching on destination side using the same
status bit.

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>

---
s/2.11/2.13/


  Commit: d96c9e8d784a7eea95f7d09e3a06a66e0b6558e5
      
https://github.com/qemu/qemu/commit/d96c9e8d784a7eea95f7d09e3a06a66e0b6558e5
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration: wakeup dst ram-load-thread for recover

On the destination side, we cannot wake up all the threads when we got
reconnected. The first thing to do is to wake up the main load thread,
so that we can continue to receive valid messages from source again and
reply when needed.

At this point, we switch the destination VM state from postcopy-paused
back to postcopy-recover.

Now we are finally ready to do the resume logic.

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: f25d42253ca137f79541f655dd915377ad596e28
      
https://github.com/qemu/qemu/commit/f25d42253ca137f79541f655dd915377ad596e28
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/savevm.c
    M migration/savevm.h
    M migration/trace-events

  Log Message:
  -----------
  migration: new cmd MIG_CMD_RECV_BITMAP

Add a new vm command MIG_CMD_RECV_BITMAP to request received bitmap for
one ramblock.

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: a335debb35bb30ade46e0e62c0b2fbb3882c8448
      
https://github.com/qemu/qemu/commit/a335debb35bb30ade46e0e62c0b2fbb3882c8448
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/ram.c
    M migration/ram.h
    M migration/savevm.c
    M migration/trace-events

  Log Message:
  -----------
  migration: new message MIG_RP_MSG_RECV_BITMAP

Introducing new return path message MIG_RP_MSG_RECV_BITMAP to send
received bitmap of ramblock back to source.

This is the reply message of MIG_CMD_RECV_BITMAP, it contains not only
the header (including the ramblock name), and it was appended with the
whole ramblock received bitmap on the destination side.

When the source receives such a reply message (MIG_RP_MSG_RECV_BITMAP),
it parses it, convert it to the dirty bitmap by inverting the bits.

One thing to mention is that, when we send the recv bitmap, we are doing
these things in extra:

- converting the bitmap to little endian, to support when hosts are
  using different endianess on src/dst.

- do proper alignment for 8 bytes, to support when hosts are using
  different word size (32/64 bits) on src/dst.

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: 3f5875eca5da5106d5eec121325a05d2277022c3
      
https://github.com/qemu/qemu/commit/3f5875eca5da5106d5eec121325a05d2277022c3
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/savevm.c
    M migration/savevm.h
    M migration/trace-events

  Log Message:
  -----------
  migration: new cmd MIG_CMD_POSTCOPY_RESUME

Introducing this new command to be sent when the source VM is ready to
resume the paused migration.  What the destination does here is
basically release the fault thread to continue service page faults.

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: 13955b89ce54a85a9e88c64a196db61aa8bf0f34
      
https://github.com/qemu/qemu/commit/13955b89ce54a85a9e88c64a196db61aa8bf0f34
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/savevm.c
    M migration/trace-events

  Log Message:
  -----------
  migration: new message MIG_RP_MSG_RESUME_ACK

Creating new message to reply for MIG_CMD_POSTCOPY_RESUME. One uint32_t
is used as payload to let the source know whether destination is ready
to continue the migration.

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: d1b8eadbc43739992eed75912f6a065b9f299221
      
https://github.com/qemu/qemu/commit/d1b8eadbc43739992eed75912f6a065b9f299221
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M include/migration/register.h
    M migration/migration.c
    M migration/savevm.c
    M migration/savevm.h
    M migration/trace-events

  Log Message:
  -----------
  migration: introduce SaveVMHandlers.resume_prepare

This is hook function to be called when a postcopy migration wants to
resume from a failure. For each module, it should provide its own
recovery logic before we switch to the postcopy-active state.

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: edd090c72825b483df4de6a525d430d7635a5d8e
      
https://github.com/qemu/qemu/commit/edd090c72825b483df4de6a525d430d7635a5d8e
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

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

  Log Message:
  -----------
  migration: synchronize dirty bitmap for resume

This patch implements the first part of core RAM resume logic for
postcopy. ram_resume_prepare() is provided for the work.

When the migration is interrupted by network failure, the dirty bitmap
on the source side will be meaningless, because even the dirty bit is
cleared, it is still possible that the sent page was lost along the way
to destination. Here instead of continue the migration with the old
dirty bitmap on source, we ask the destination side to send back its
received bitmap, then invert it to be our initial dirty bitmap.

The source side send thread will issue the MIG_CMD_RECV_BITMAP requests,
once per ramblock, to ask for the received bitmap. On destination side,
MIG_RP_MSG_RECV_BITMAP will be issued, along with the requested bitmap.
Data will be received on the return-path thread of source, and the main
migration thread will be notified when all the ramblock bitmaps are
synchronized.

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: 08614f34977a18fdc06c56f4e12b6cf47c06da57
      
https://github.com/qemu/qemu/commit/08614f34977a18fdc06c56f4e12b6cf47c06da57
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/ram.c
    M migration/trace-events

  Log Message:
  -----------
  migration: setup ramstate for resume

After we updated the dirty bitmaps of ramblocks, we also need to update
the critical fields in RAMState to make sure it is ready for a resume.

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: 9419069695a534b1c8051e8ba8f3b4b3d21e4520
      
https://github.com/qemu/qemu/commit/9419069695a534b1c8051e8ba8f3b4b3d21e4520
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration: final handshake for the resume

Finish the last step to do the final handshake for the recovery.

First source sends one MIG_CMD_RESUME to dst, telling that source is
ready to resume.

Then, dest replies with MIG_RP_MSG_RESUME_ACK to source, telling that
dest is ready to resume (after switch to postcopy-active state).

When source received the RESUME_ACK, it switches its state to
postcopy-active, and finally the recovery is completed.

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: e1b1b1bc367a1997373c10a58db4adb428daf54e
      
https://github.com/qemu/qemu/commit/e1b1b1bc367a1997373c10a58db4adb428daf54e
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration: init dst in migration_object_init too

Though we may not need it, now we init both the src/dst migration
objects in migration_object_init() so that even incoming migration
object would be thread safe (it was not).

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: 02affd41b1157c511ea7fd0cc0bc61a07d9696b1
      
https://github.com/qemu/qemu/commit/02affd41b1157c511ea7fd0cc0bc61a07d9696b1
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/savevm.c
    M qapi/migration.json

  Log Message:
  -----------
  qmp/migration: new command migrate-recover

The first allow-oob=true command.  It's used on destination side when
the postcopy migration is paused and ready for a recovery.  After
execution, a new migration channel will be established for postcopy to
continue.

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>
---
s/2.12/2.13/


  Commit: 3b563c4be01f42d2a4e641d50736bd5ac8e3b15f
      
https://github.com/qemu/qemu/commit/3b563c4be01f42d2a4e641d50736bd5ac8e3b15f
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M hmp-commands.hx
    M hmp.c
    M hmp.h

  Log Message:
  -----------
  hmp/migration: add migrate_recover command

Sister command to migrate-recover in QMP.

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: 62df066ffffdbd41b42ca91130611e40fbc53f0b
      
https://github.com/qemu/qemu/commit/62df066ffffdbd41b42ca91130611e40fbc53f0b
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/channel.c
    M migration/migration.c
    M migration/migration.h

  Log Message:
  -----------
  migration: introduce lock for to_dst_file

Let's introduce a lock for that QEMUFile since we are going to operate
on it in multiple threads.

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: bfbf89c2b524670edbf71e12fc5bc1b34d925211
      
https://github.com/qemu/qemu/commit/bfbf89c2b524670edbf71e12fc5bc1b34d925211
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/migration.c
    M qapi/migration.json

  Log Message:
  -----------
  migration/qmp: add command migrate-pause

It pauses an ongoing migration.  Currently it only supports postcopy.
Note that this command will work on either side of the migration.
Basically when we trigger this on one side, it'll interrupt the other
side as well since the other side will get notified on the disconnect
event.

However, it's still possible that the other side is not notified, for
example, when the network is totally broken, or due to some firewall
configuration changes.  In that case, we will also need to run the same
command on the other side so both sides will go into the paused state.

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>

---
s/2.12/2.13/


  Commit: d37297dc66202c33f9cafbc48ccae629e7d6dc31
      
https://github.com/qemu/qemu/commit/d37297dc66202c33f9cafbc48ccae629e7d6dc31
  Author: Peter Xu <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M hmp-commands.hx
    M hmp.c
    M hmp.h

  Log Message:
  -----------
  migration/hmp: add migrate_pause command

Wrapper for QMP command "migrate-pause".

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: edd7080692cb43147352d736cce0fb728787f2b4
      
https://github.com/qemu/qemu/commit/edd7080692cb43147352d736cce0fb728787f2b4
  Author: Dr. David Alan Gilbert <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M docs/devel/migration.rst

  Log Message:
  -----------
  migration: update docs

Update the migration docs:

Among other changes:
  * Added a general list of advice for device authors
  * Reordered the section on conditional state (subsections etc)
    into the order we prefer.
  * Add a note about firmware

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


  Commit: 71cd73061c014d04bc6b54936e675347ebc8d964
      
https://github.com/qemu/qemu/commit/71cd73061c014d04bc6b54936e675347ebc8d964
  Author: Lidong Chen <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration: update index field when delete or qsort RDMALocalBlock

rdma_delete_block function deletes RDMALocalBlock base on index field,
but not update the index field. So when next time invoke rdma_delete_block,
it will not work correctly.

If start and cancel migration repeatedly, some RDMALocalBlock not invoke
ibv_dereg_mr to decrease kernel mm_struct vmpin. When vmpin is large than
max locked memory limitation, ibv_reg_mr will failed, and migration can not
start successfully again.

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

Signed-off-by: Lidong Chen <address@hidden>


  Commit: 5e50cae409a0f43332efe594a67827cb4ee66c28
      
https://github.com/qemu/qemu/commit/5e50cae409a0f43332efe594a67827cb4ee66c28
  Author: Dr. David Alan Gilbert <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M qapi/migration.json

  Log Message:
  -----------
  migration: Textual fixups for blocktime

Blank lines and comments as suggested by Eric.

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


  Commit: 8b7bf2badac25c0a52aff1b181ad75fdb304dd0c
      
https://github.com/qemu/qemu/commit/8b7bf2badac25c0a52aff1b181ad75fdb304dd0c
  Author: Dr. David Alan Gilbert <address@hidden>
  Date:   2018-05-15 (Tue, 15 May 2018)

  Changed paths:
    M migration/channel.c

  Log Message:
  -----------
  Migration+TLS: Fix crash due to double cleanup

During a TLS connect we see:
  migration_channel_connect calls
  migration_tls_channel_connect
  (calls after TLS setup)
  migration_channel_connect

My previous error handling fix made migration_channel_connect
call migrate_fd_connect in all cases; unfortunately the above
means it gets called twice and crashes doing double cleanup.

Fixes: 688a3dcba98

Reported-by: Peter Krempa <address@hidden>
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: eb7514ae10d187ccf3bfc0f7dc159a4dfde20be4
      
https://github.com/qemu/qemu/commit/eb7514ae10d187ccf3bfc0f7dc159a4dfde20be4
  Author: Peter Maydell <address@hidden>
  Date:   2018-05-17 (Thu, 17 May 2018)

  Changed paths:
    M docs/devel/migration.rst
    M hmp-commands.hx
    M hmp.c
    M hmp.h
    M include/migration/register.h
    M migration/channel.c
    M migration/exec.c
    M migration/fd.c
    M migration/migration.c
    M migration/migration.h
    M migration/postcopy-ram.c
    M migration/ram.c
    M migration/ram.h
    M migration/rdma.c
    M migration/savevm.c
    M migration/savevm.h
    M migration/socket.c
    M migration/socket.h
    M migration/trace-events
    M qapi/migration.json
    M tests/migration-test.c

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

migration/next for 20180515

# gpg: Signature made Tue 15 May 2018 22:54:38 BST
# gpg:                using RSA key F487EF185872D723
# gpg: Good signature from "Juan Quintela <address@hidden>"
# gpg:                 aka "Juan Quintela <address@hidden>"
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03  4B82 F487 EF18 5872 D723

* remotes/juanquintela/tags/migration/20180515: (40 commits)
  Migration+TLS: Fix crash due to double cleanup
  migration: Textual fixups for blocktime
  migration: update index field when delete or qsort RDMALocalBlock
  migration: update docs
  migration/hmp: add migrate_pause command
  migration/qmp: add command migrate-pause
  migration: introduce lock for to_dst_file
  hmp/migration: add migrate_recover command
  qmp/migration: new command migrate-recover
  migration: init dst in migration_object_init too
  migration: final handshake for the resume
  migration: setup ramstate for resume
  migration: synchronize dirty bitmap for resume
  migration: introduce SaveVMHandlers.resume_prepare
  migration: new message MIG_RP_MSG_RESUME_ACK
  migration: new cmd MIG_CMD_POSTCOPY_RESUME
  migration: new message MIG_RP_MSG_RECV_BITMAP
  migration: new cmd MIG_CMD_RECV_BITMAP
  migration: wakeup dst ram-load-thread for recover
  migration: new state "postcopy-recover"
  ...

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


Compare: https://github.com/qemu/qemu/compare/61126a8b4bea...eb7514ae10d1
      **NOTE:** This service been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

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