qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 20171e: multifd: Implement yank for multifd s


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] 20171e: multifd: Implement yank for multifd send side
Date: Tue, 19 Oct 2021 07:41:52 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 20171ea8950c619f00dc5cfa6136fd489998ffc5
      
https://github.com/qemu/qemu/commit/20171ea8950c619f00dc5cfa6136fd489998ffc5
  Author: Lukas Straub <lukasstraub2@web.de>
  Date:   2021-10-19 (Tue, 19 Oct 2021)

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

  Log Message:
  -----------
  multifd: Implement yank for multifd send side

To: qemu-devel <qemu-devel@nongnu.org>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Juan Quintela
 <quintela@redhat.com>, Peter Xu <peterx@redhat.com>, Leonardo Bras Soares
 Passos <lsoaresp@redhat.com>
Date: Wed, 1 Sep 2021 17:58:57 +0200 (1 week, 15 hours, 17 minutes ago)

[[PGP Signed Part:No public key for 35AB0B289C5DB258 created at 
2021-09-01T17:58:57+0200 using RSA]]
When introducing yank functionality in the migration code I forgot
to cover the multifd send side.

Signed-off-by: Lukas Straub <lukasstraub2@web.de>
Tested-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: e9ab82b858c14aa76dac5235a99d1723ec069407
      
https://github.com/qemu/qemu/commit/e9ab82b858c14aa76dac5235a99d1723ec069407
  Author: Lukas Straub <lukasstraub2@web.de>
  Date:   2021-10-19 (Tue, 19 Oct 2021)

  Changed paths:
    M migration/multifd.c

  Log Message:
  -----------
  multifd: Unconditionally unregister yank function

To: qemu-devel <qemu-devel@nongnu.org>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Juan Quintela
 <quintela@redhat.com>, Peter Xu <peterx@redhat.com>, Leonardo Bras Soares
 Passos <lsoaresp@redhat.com>
Date: Wed, 4 Aug 2021 21:26:32 +0200 (5 weeks, 11 hours, 52 minutes ago)

[[PGP Signed Part:No public key for 35AB0B289C5DB258 created at 
2021-08-04T21:26:32+0200 using RSA]]
Unconditionally unregister yank function in multifd_load_cleanup().
If it is not unregistered here, it will leak and cause a crash
in yank_unregister_instance(). Now if the ioc is still in use
afterwards, it will only lead to qemu not being able to recover
from a hang related to that ioc.

After checking the code, i am pretty sure that ref is always 1
when arriving here. So all this currently does is remove the
unneeded check.

Signed-off-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 1230a25f6fa3048c56d0f7f4e70e451330f4d33c
      
https://github.com/qemu/qemu/commit/1230a25f6fa3048c56d0f7f4e70e451330f4d33c
  Author: David Hildenbrand <david@redhat.com>
  Date:   2021-10-19 (Tue, 19 Oct 2021)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration/ram: Don't passs RAMState to 
migration_clear_memory_region_dirty_bitmap_*()

The parameter is unused, let's drop it.

Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: b7acd65707623a8b728b622f4c9dd96c2085c05b
      
https://github.com/qemu/qemu/commit/b7acd65707623a8b728b622f4c9dd96c2085c05b
  Author: Li Zhijian <lizhijian@cn.fujitsu.com>
  Date:   2021-10-19 (Tue, 19 Oct 2021)

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

  Log Message:
  -----------
  migration: allow multifd for socket protocol only

To: <quintela@redhat.com>, <dgilbert@redhat.com>, <qemu-devel@nongnu.org>
CC: Li Zhijian <lizhijian@cn.fujitsu.com>
Date: Sat, 31 Jul 2021 22:05:51 +0800 (5 weeks, 4 days, 17 hours ago)

multifd with unsupported protocol will cause a segment fault.
(gdb) bt
 #0  0x0000563b4a93faf8 in socket_connect (addr=0x0, errp=0x7f7f02675410) at 
../util/qemu-sockets.c:1190
 #1 0x0000563b4a797a03 in qio_channel_socket_connect_sync
(ioc=0x563b4d16e8c0, addr=0x0, errp=0x7f7f02675410) at
../io/channel-socket.c:145
 #2  0x0000563b4a797abf in qio_channel_socket_connect_worker 
(task=0x563b4cd86c30, opaque=0x0) at ../io/channel-socket.c:168
 #3  0x0000563b4a792631 in qio_task_thread_worker (opaque=0x563b4cd86c30) at 
../io/task.c:124
 #4  0x0000563b4a91da69 in qemu_thread_start (args=0x563b4c44bb80) at 
../util/qemu-thread-posix.c:541
 #5  0x00007f7fe9b5b3f9 in ?? ()
 #6  0x0000000000000000 in ?? ()

It's enough to check migrate_multifd_is_allowed() in multifd cleanup() and
multifd setup() though there are so many other places using 
migrate_use_multifd().

Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 5ad15e8614b0877225af42aa28a7195ed2fb74e4
      
https://github.com/qemu/qemu/commit/5ad15e8614b0877225af42aa28a7195ed2fb74e4
  Author: Li Zhijian <lizhijian@cn.fujitsu.com>
  Date:   2021-10-19 (Tue, 19 Oct 2021)

  Changed paths:
    M migration/migration.c
    M migration/multifd.c

  Log Message:
  -----------
  migration: allow enabling mutilfd for specific protocol only

To: <quintela@redhat.com>, <dgilbert@redhat.com>, <qemu-devel@nongnu.org>
CC: Li Zhijian <lizhijian@cn.fujitsu.com>
Date: Sat, 31 Jul 2021 22:05:52 +0800 (5 weeks, 4 days, 17 hours ago)

And change the default to true so that in '-incoming defer' case, user is able
to change multifd capability.

Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: e2daccb0d0375717efed80b772e9fd1e4c51ae5b
      
https://github.com/qemu/qemu/commit/e2daccb0d0375717efed80b772e9fd1e4c51ae5b
  Author: Li Zhijian <lizhijian@cn.fujitsu.com>
  Date:   2021-10-19 (Tue, 19 Oct 2021)

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

  Log Message:
  -----------
  migration/rdma: Try to register On-Demand Paging memory region

Previously, for the fsdax mem-backend-file, it will register failed with
Operation not supported. In this case, we can try to register it with
On-Demand Paging[1] like what rpma_mr_reg() does on rpma[2].

[1]: 
https://community.mellanox.com/s/article/understanding-on-demand-paging--odp-x
[2]: http://pmem.io/rpma/manpages/v0.9.0/rpma_mr_reg.3

CC: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Reviewed-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 911965ace9386e35ca022a65bb45a32fd421af3e
      
https://github.com/qemu/qemu/commit/911965ace9386e35ca022a65bb45a32fd421af3e
  Author: Li Zhijian <lizhijian@cn.fujitsu.com>
  Date:   2021-10-19 (Tue, 19 Oct 2021)

  Changed paths:
    M meson.build
    M migration/rdma.c
    M migration/trace-events

  Log Message:
  -----------
  migration/rdma: advise prefetch write for ODP region

The responder mr registering with ODP will sent RNR NAK back to
the requester in the face of the page fault.
---------
ibv_poll_cq wc.status=13 RNR retry counter exceeded!
ibv_poll_cq wrid=WRITE RDMA!
---------
ibv_advise_mr(3) helps to make pages present before the actual IO is
conducted so that the responder does page fault as little as possible.

Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Reviewed-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 50352cce138ef3b30c1cda28a4df68fff5da3202
      
https://github.com/qemu/qemu/commit/50352cce138ef3b30c1cda28a4df68fff5da3202
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-10-19 (Tue, 19 Oct 2021)

  Changed paths:
    M meson.build
    M migration/migration.c
    M migration/multifd.c
    M migration/multifd.h
    M migration/ram.c
    M migration/rdma.c
    M migration/trace-events

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

Migration Pull request (3rd try)

Hi

This should fix all the freebsd problems.

Please apply,

# gpg: Signature made Tue 19 Oct 2021 02:28:51 AM PDT
# gpg:                using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723
# gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [full]
# gpg:                 aka "Juan Quintela <quintela@trasno.org>" [full]

* remotes/juanquintela/tags/migration.next-pull-request:
  migration/rdma: advise prefetch write for ODP region
  migration/rdma: Try to register On-Demand Paging memory region
  migration: allow enabling mutilfd for specific protocol only
  migration: allow multifd for socket protocol only
  migration/ram: Don't passs RAMState to 
migration_clear_memory_region_dirty_bitmap_*()
  multifd: Unconditionally unregister yank function
  multifd: Implement yank for multifd send side

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Compare: https://github.com/qemu/qemu/compare/362534a643b4...50352cce138e



reply via email to

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