mbox

[PULL,00/20] Migration pull requset

Message ID 20180822120050.12694-1-quintela@redhat.com
State New
Headers show

Pull-request

git://github.com/juanquintela/qemu.git tags/migration/20180822-1

Message

Juan Quintela Aug. 22, 2018, noon UTC
The following changes since commit 13b7b188501d419a7d63c016e00065bcc693b7d4:

  Merge remote-tracking branch 'remotes/kraxel/tags/vga-20180821-pull-request' into staging (2018-08-21 15:57:56 +0100)

are available in the Git repository at:

  git://github.com/juanquintela/qemu.git tags/migration/20180822-1

for you to fetch changes up to ae526e32bd36cfb84045c8d2fd34e0b9e39a52f8:

  migration: hold the lock only if it is really needed (2018-08-22 12:36:18 +0200)

----------------------------------------------------------------
migration/next for 20180822

All pending patches that are reviewed:
- doc for pr_load (dave)
- postcopy + rdma is nearer (lidong chen)
- compression fixes (xiao)
- silent warning for pcc tests (Thomas)
- fix subsection without .needed function (pmaydell)

Please apply, Juan.

----------------------------------------------------------------
Dr. David Alan Gilbert (1):
      docs/migration: Clarify pre_load in subsections

Li Qiang (1):
      migrate/cpu-throttle: Add max-cpu-throttle migration parameter

Lidong Chen (9):
      migration: disable RDMA WRITE after postcopy started
      migration: create a dedicated connection for rdma return path
      migration: implement bi-directional RDMA QIOChannel
      migration: Stop rdma yielding during incoming postcopy
      migration: implement io_set_aio_fd_handler function for RDMA QIOChannel
      migration: invoke qio_channel_yield only when qemu_in_coroutine()
      migration: poll the cm event while wait RDMA work request completion
      migration: implement the shutdown for RDMA QIOChannel
      migration: poll the cm event for destination qemu

Peter Maydell (1):
      migration: Correctly handle subsections with no 'needed' function

Thomas Huth (1):
      tests/migration-test: Silence the kvm_hv message by default

Xiao Guangrong (6):
      migration: do not wait for free thread
      migration: fix counting normal page for compression
      migration: introduce save_zero_page_to_file
      migration: drop the return value of do_compress_ram_page
      migration: move handle of zero page to the thread
      migration: hold the lock only if it is really needed

jialina01 (1):
      qapi/migration.json: fix the description for "query-migrate" output

 docs/devel/migration.rst      |  15 +-
 hmp.c                         |  16 ++
 include/qemu/queue.h          |   1 +
 migration/colo.c              |   2 +
 migration/migration.c         |  49 ++++-
 migration/migration.h         |   2 +
 migration/postcopy-ram.c      |   2 +
 migration/qemu-file-channel.c |  12 +-
 migration/qemu-file.c         |   8 +-
 migration/ram.c               | 204 +++++++++++++-------
 migration/rdma.c              | 423 ++++++++++++++++++++++++++++++++++++++----
 migration/savevm.c            |   3 +
 migration/vmstate.c           |   6 +-
 qapi/migration.json           |  64 +++++--
 tests/migration-test.c        |  20 +-
 15 files changed, 691 insertions(+), 136 deletions(-)

Comments

Peter Maydell Aug. 24, 2018, 5:05 p.m. UTC | #1
On 22 August 2018 at 13:00, Juan Quintela <quintela@redhat.com> wrote:
> The following changes since commit 13b7b188501d419a7d63c016e00065bcc693b7d4:
>
>   Merge remote-tracking branch 'remotes/kraxel/tags/vga-20180821-pull-request' into staging (2018-08-21 15:57:56 +0100)
>
> are available in the Git repository at:
>
>   git://github.com/juanquintela/qemu.git tags/migration/20180822-1
>
> for you to fetch changes up to ae526e32bd36cfb84045c8d2fd34e0b9e39a52f8:
>
>   migration: hold the lock only if it is really needed (2018-08-22 12:36:18 +0200)
>
> ----------------------------------------------------------------
> migration/next for 20180822
>
> All pending patches that are reviewed:
> - doc for pr_load (dave)
> - postcopy + rdma is nearer (lidong chen)
> - compression fixes (xiao)
> - silent warning for pcc tests (Thomas)
> - fix subsection without .needed function (pmaydell)
>
> Please apply, Juan.
>
> ----------------------------------------------------------------

Applied, thanks.

-- PMM
Cornelia Huck Aug. 27, 2018, 9:15 a.m. UTC | #2
On Fri, 24 Aug 2018 18:05:03 +0100
Peter Maydell <peter.maydell@linaro.org> wrote:

> On 22 August 2018 at 13:00, Juan Quintela <quintela@redhat.com> wrote:
> > The following changes since commit 13b7b188501d419a7d63c016e00065bcc693b7d4:
> >
> >   Merge remote-tracking branch 'remotes/kraxel/tags/vga-20180821-pull-request' into staging (2018-08-21 15:57:56 +0100)
> >
> > are available in the Git repository at:
> >
> >   git://github.com/juanquintela/qemu.git tags/migration/20180822-1
> >
> > for you to fetch changes up to ae526e32bd36cfb84045c8d2fd34e0b9e39a52f8:
> >
> >   migration: hold the lock only if it is really needed (2018-08-22 12:36:18 +0200)
> >
> > ----------------------------------------------------------------
> > migration/next for 20180822
> >
> > All pending patches that are reviewed:
> > - doc for pr_load (dave)
> > - postcopy + rdma is nearer (lidong chen)
> > - compression fixes (xiao)
> > - silent warning for pcc tests (Thomas)
> > - fix subsection without .needed function (pmaydell)
> >
> > Please apply, Juan.
> >
> > ----------------------------------------------------------------  
> 
> Applied, thanks.
> 
> -- PMM
> 

The rdma migration code in there seems to upset my clang (5.0.2, Fedora
27); gcc (7.3.1) does not complain.

/home/cohuck/git/qemu/migration/rdma.c:4035:9: error: variable
      'rdma_return_path' is used uninitialized whenever 'if' condition is true
      [-Werror,-Wsometimes-uninitialized]
    if (ret) {
        ^~~
/home/cohuck/git/qemu/migration/rdma.c:4059:12: note: uninitialized use occurs
      here
    g_free(rdma_return_path);
           ^~~~~~~~~~~~~~~~
/home/cohuck/git/qemu/migration/rdma.c:4035:5: note: remove the 'if' if its
      condition is always false
    if (ret) {
    ^~~~~~~~~~
/home/cohuck/git/qemu/migration/rdma.c:4027:9: error: variable
      'rdma_return_path' is used uninitialized whenever 'if' condition is true
      [-Werror,-Wsometimes-uninitialized]
    if (ret) {
        ^~~
/home/cohuck/git/qemu/migration/rdma.c:4059:12: note: uninitialized use occurs
      here
    g_free(rdma_return_path);
           ^~~~~~~~~~~~~~~~
/home/cohuck/git/qemu/migration/rdma.c:4027:5: note: remove the 'if' if its
      condition is always false
    if (ret) {
    ^~~~~~~~~~
/home/cohuck/git/qemu/migration/rdma.c:4021:9: error: variable
      'rdma_return_path' is used uninitialized whenever 'if' condition is true
      [-Werror,-Wsometimes-uninitialized]
    if (rdma == NULL) {
        ^~~~~~~~~~~~
/home/cohuck/git/qemu/migration/rdma.c:4059:12: note: uninitialized use occurs
      here
    g_free(rdma_return_path);
           ^~~~~~~~~~~~~~~~
/home/cohuck/git/qemu/migration/rdma.c:4021:5: note: remove the 'if' if its
      condition is always false
    if (rdma == NULL) {
    ^~~~~~~~~~~~~~~~~~~
/home/cohuck/git/qemu/migration/rdma.c:4015:41: note: initialize the variable
      'rdma_return_path' to silence this warning
    RDMAContext *rdma, *rdma_return_path;
                                        ^
                                         = NULL
Juan Quintela Aug. 27, 2018, 11:45 a.m. UTC | #3
Cornelia Huck <cohuck@redhat.com> wrote:
> On Fri, 24 Aug 2018 18:05:03 +0100
> Peter Maydell <peter.maydell@linaro.org> wrote:
>
>> On 22 August 2018 at 13:00, Juan Quintela <quintela@redhat.com> wrote:
>> > The following changes since commit 13b7b188501d419a7d63c016e00065bcc693b7d4:
>> >
>> >   Merge remote-tracking branch
>> > 'remotes/kraxel/tags/vga-20180821-pull-request' into staging
>> > (2018-08-21 15:57:56 +0100)
>> >
>> > are available in the Git repository at:
>> >
>> >   git://github.com/juanquintela/qemu.git tags/migration/20180822-1
>> >
>> > for you to fetch changes up to ae526e32bd36cfb84045c8d2fd34e0b9e39a52f8:
>> >
>> >   migration: hold the lock only if it is really needed (2018-08-22
>> > 12:36:18 +0200)
>> >
>> > ----------------------------------------------------------------
>> > migration/next for 20180822
>> >
>> > All pending patches that are reviewed:
>> > - doc for pr_load (dave)
>> > - postcopy + rdma is nearer (lidong chen)
>> > - compression fixes (xiao)
>> > - silent warning for pcc tests (Thomas)
>> > - fix subsection without .needed function (pmaydell)
>> >
>> > Please apply, Juan.
>> >
>> > ----------------------------------------------------------------  
>> 
>> Applied, thanks.
>> 
>> -- PMM
>> 
>
> The rdma migration code in there seems to upset my clang (5.0.2, Fedora
> 27); gcc (7.3.1) does not complain.
>
> /home/cohuck/git/qemu/migration/rdma.c:4035:9: error: variable
>       'rdma_return_path' is used uninitialized whenever 'if' condition is true
>       [-Werror,-Wsometimes-uninitialized]
>     if (ret) {
>         ^~~
> /home/cohuck/git/qemu/migration/rdma.c:4059:12: note: uninitialized use occurs
>       here
>     g_free(rdma_return_path);
>            ^~~~~~~~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4035:5: note: remove the 'if' if its
>       condition is always false
>     if (ret) {
>     ^~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4027:9: error: variable
>       'rdma_return_path' is used uninitialized whenever 'if' condition is true
>       [-Werror,-Wsometimes-uninitialized]
>     if (ret) {
>         ^~~
> /home/cohuck/git/qemu/migration/rdma.c:4059:12: note: uninitialized use occurs
>       here
>     g_free(rdma_return_path);
>            ^~~~~~~~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4027:5: note: remove the 'if' if its
>       condition is always false
>     if (ret) {
>     ^~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4021:9: error: variable
>       'rdma_return_path' is used uninitialized whenever 'if' condition is true
>       [-Werror,-Wsometimes-uninitialized]
>     if (rdma == NULL) {
>         ^~~~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4059:12: note: uninitialized use occurs
>       here
>     g_free(rdma_return_path);
>            ^~~~~~~~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4021:5: note: remove the 'if' if its
>       condition is always false
>     if (rdma == NULL) {
>     ^~~~~~~~~~~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4015:41: note: initialize the variable
>       'rdma_return_path' to silence this warning
>     RDMAContext *rdma, *rdma_return_path;
>                                         ^
>                                          = NULL

Thanks, instaling clang and seing what is going on here.

Later, Juan.
Dr. David Alan Gilbert Aug. 30, 2018, 5:26 p.m. UTC | #4
* Cornelia Huck (cohuck@redhat.com) wrote:
> On Fri, 24 Aug 2018 18:05:03 +0100
> Peter Maydell <peter.maydell@linaro.org> wrote:
> 
> > On 22 August 2018 at 13:00, Juan Quintela <quintela@redhat.com> wrote:
> > > The following changes since commit 13b7b188501d419a7d63c016e00065bcc693b7d4:
> > >
> > >   Merge remote-tracking branch 'remotes/kraxel/tags/vga-20180821-pull-request' into staging (2018-08-21 15:57:56 +0100)
> > >
> > > are available in the Git repository at:
> > >
> > >   git://github.com/juanquintela/qemu.git tags/migration/20180822-1
> > >
> > > for you to fetch changes up to ae526e32bd36cfb84045c8d2fd34e0b9e39a52f8:
> > >
> > >   migration: hold the lock only if it is really needed (2018-08-22 12:36:18 +0200)
> > >
> > > ----------------------------------------------------------------
> > > migration/next for 20180822
> > >
> > > All pending patches that are reviewed:
> > > - doc for pr_load (dave)
> > > - postcopy + rdma is nearer (lidong chen)
> > > - compression fixes (xiao)
> > > - silent warning for pcc tests (Thomas)
> > > - fix subsection without .needed function (pmaydell)
> > >
> > > Please apply, Juan.
> > >
> > > ----------------------------------------------------------------  
> > 
> > Applied, thanks.
> > 
> > -- PMM
> > 
> 
> The rdma migration code in there seems to upset my clang (5.0.2, Fedora
> 27); gcc (7.3.1) does not complain.
> 
> /home/cohuck/git/qemu/migration/rdma.c:4035:9: error: variable
>       'rdma_return_path' is used uninitialized whenever 'if' condition is true
>       [-Werror,-Wsometimes-uninitialized]
>     if (ret) {
>         ^~~
> /home/cohuck/git/qemu/migration/rdma.c:4059:12: note: uninitialized use occurs
>       here
>     g_free(rdma_return_path);
>            ^~~~~~~~~~~~~~~~

Yes, it's got a point.
While the 'rdma' and 'rdma_return_path' are now more symmetry after 55cc1b5937a
the rdma_return_path needs NULL initialisation because the rdma variable
is set very early, where as the return path isn't set until much later.

Dave

> /home/cohuck/git/qemu/migration/rdma.c:4035:5: note: remove the 'if' if its
>       condition is always false
>     if (ret) {
>     ^~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4027:9: error: variable
>       'rdma_return_path' is used uninitialized whenever 'if' condition is true
>       [-Werror,-Wsometimes-uninitialized]
>     if (ret) {
>         ^~~
> /home/cohuck/git/qemu/migration/rdma.c:4059:12: note: uninitialized use occurs
>       here
>     g_free(rdma_return_path);
>            ^~~~~~~~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4027:5: note: remove the 'if' if its
>       condition is always false
>     if (ret) {
>     ^~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4021:9: error: variable
>       'rdma_return_path' is used uninitialized whenever 'if' condition is true
>       [-Werror,-Wsometimes-uninitialized]
>     if (rdma == NULL) {
>         ^~~~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4059:12: note: uninitialized use occurs
>       here
>     g_free(rdma_return_path);
>            ^~~~~~~~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4021:5: note: remove the 'if' if its
>       condition is always false
>     if (rdma == NULL) {
>     ^~~~~~~~~~~~~~~~~~~
> /home/cohuck/git/qemu/migration/rdma.c:4015:41: note: initialize the variable
>       'rdma_return_path' to silence this warning
>     RDMAContext *rdma, *rdma_return_path;
>                                         ^
>                                          = NULL
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK