qemu-commits
[Top][All Lists]
Advanced

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

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


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] e48903: multifd: Implement yank for multifd send side
Date: Thu, 09 Sep 2021 06:27:20 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: e489036a0efd132a427347e7825af894bae9ec6c
      
https://github.com/qemu/qemu/commit/e489036a0efd132a427347e7825af894bae9ec6c
  Author: Lukas Straub <lukasstraub2@web.de>
  Date:   2021-09-09 (Thu, 09 Sep 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: 54d26be3daa5af4aacd6008606be7245a8748d8e
      
https://github.com/qemu/qemu/commit/54d26be3daa5af4aacd6008606be7245a8748d8e
  Author: Lukas Straub <lukasstraub2@web.de>
  Date:   2021-09-09 (Thu, 09 Sep 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: b4fc69f69eb2ccdaec01248f62731aa44d1b8f28
      
https://github.com/qemu/qemu/commit/b4fc69f69eb2ccdaec01248f62731aa44d1b8f28
  Author: Li Zhijian <lizhijian@cn.fujitsu.com>
  Date:   2021-09-09 (Thu, 09 Sep 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>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: f0f7a8957fbc09d2750f42a45852ceef05fd3bb2
      
https://github.com/qemu/qemu/commit/f0f7a8957fbc09d2750f42a45852ceef05fd3bb2
  Author: Li Zhijian <lizhijian@cn.fujitsu.com>
  Date:   2021-09-09 (Thu, 09 Sep 2021)

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

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

To: <quintela@redhat.com>, <dgilbert@redhat.com>
CC: <qemu-devel@nongnu.org>, Li Zhijian <lizhijian@cn.fujitsu.com>, "Marcel 
Apfelbaum" <marcel.apfelbaum@gmail.com>
Date: Mon, 23 Aug 2021 11:33:58 +0800 (2 weeks, 3 days, 3 hours ago)

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>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: becf8491c719d6ee3a5ee352f6d85e11583d9948
      
https://github.com/qemu/qemu/commit/becf8491c719d6ee3a5ee352f6d85e11583d9948
  Author: David Hildenbrand <david@redhat.com>
  Date:   2021-09-09 (Thu, 09 Sep 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: 9ff82a909bf93ea2e77a6fa01e3d12f9098ae4c3
      
https://github.com/qemu/qemu/commit/9ff82a909bf93ea2e77a6fa01e3d12f9098ae4c3
  Author: Li Zhijian <lizhijian@cn.fujitsu.com>
  Date:   2021-09-09 (Thu, 09 Sep 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: 158cced72cb2b09b0e8b523a5b15cb10889f99d1
      
https://github.com/qemu/qemu/commit/158cced72cb2b09b0e8b523a5b15cb10889f99d1
  Author: Li Zhijian <lizhijian@cn.fujitsu.com>
  Date:   2021-09-09 (Thu, 09 Sep 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: 7084037070bc86809f69acb8f1d2d8e0884464a7
      
https://github.com/qemu/qemu/commit/7084037070bc86809f69acb8f1d2d8e0884464a7
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2021-09-09 (Thu, 09 Sep 2021)

  Changed paths:
    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

This pull request includes:
- Remove RAMState unused parameter for several prototypes
- RDMA fix
- give an error when using RDMA and multifd
- Implement yank for multifd send side

Please, Apply.

# gpg: Signature made Thu 09 Sep 2021 11:32:30 BST
# gpg:                using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723
# gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [full]
# gpg:                 aka "Juan Quintela <quintela@trasno.org>" [full]
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03  4B82 F487 EF18 5872 D723

* remotes/juanquintela/tags/migration.next-pull-request:
  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_*()
  migration/rdma: advise prefetch write for ODP region
  migration/rdma: Try to register On-Demand Paging memory region
  multifd: Unconditionally unregister yank function
  multifd: Implement yank for multifd send side

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/d1e0c5caff3d...7084037070bc



reply via email to

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