mbox

[PULL,00/25] Migration 20220621 patches

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

Pull-request

https://gitlab.com/juan.quintela/qemu.git tags/migration-20220621-pull-request

Message

Juan Quintela June 22, 2022, 12:25 a.m. UTC
The following changes since commit c8b2d413761af732a0798d8df45ce968732083fe:

  Merge tag 'bsd-user-syscall-2022q2-pull-request' of ssh://github.com/qemu-bsd-user/qemu-bsd-user into staging (2022-06-19 13:56:13 -0700)

are available in the Git repository at:

  https://gitlab.com/juan.quintela/qemu.git tags/migration-20220621-pull-request

for you to fetch changes up to 720eceaa316f2a75a7930085bb305850831a065f:

  migration: remove the QEMUFileOps abstraction (2022-06-21 18:06:55 +0200)

----------------------------------------------------------------
Migration Pull request

Hi

In this today migration PULL request:
- dainiel Berrangé qemufileops cleanup
- Leonardo Brass cleanups for zero copy
- RDMA cleanups (me)

Please, apply.

----------------------------------------------------------------

Daniel P. Berrangé (21):
  io: add a QIOChannelNull equivalent to /dev/null
  migration: switch to use QIOChannelNull for dummy channel
  migration: remove unreachble RDMA code in save_hook impl
  migration: rename rate limiting fields in QEMUFile
  migration: rename 'pos' field in QEMUFile to 'bytes_processed'
  migration: rename qemu_ftell to qemu_file_total_transferred
  migration: rename qemu_update_position to qemu_file_credit_transfer
  migration: rename qemu_file_update_transfer to
    qemu_file_acct_rate_limit
  migration: introduce a QIOChannel impl for BlockDriverState VMState
  migration: convert savevm to use QIOChannelBlock for VMState
  migration: stop passing 'opaque' parameter to QEMUFile hooks
  migration: hardcode assumption that QEMUFile is backed with QIOChannel
  migration: introduce new constructors for QEMUFile
  migration: remove unused QEMUFileGetFD typedef / qemu_get_fd method
  migration: remove the QEMUFileOps 'shut_down' callback
  migration: remove the QEMUFileOps 'set_blocking' callback
  migration: remove the QEMUFileOps 'close' callback
  migration: remove the QEMUFileOps 'get_buffer' callback
  migration: remove the QEMUFileOps 'writev_buffer' callback
  migration: remove the QEMUFileOps 'get_return_path' callback
  migration: remove the QEMUFileOps abstraction

Juan Quintela (1):
  migration: Remove RDMA_UNREGISTRATION_EXAMPLE

Leonardo Bras (3):
  QIOChannelSocket: Introduce assert and reduce ifdefs to improve
    readability
  QIOChannelSocket: Fix zero-copy send so socket flush works
  migration: Change zero_copy_send from migration parameter to migration
    capability

 qapi/migration.json               |  33 ++---
 include/io/channel-null.h         |  55 +++++++
 migration/channel-block.h         |  59 ++++++++
 migration/qemu-file-channel.h     |  32 ----
 migration/qemu-file.h             | 125 +++++++---------
 io/channel-null.c                 | 237 ++++++++++++++++++++++++++++++
 io/channel-socket.c               |  19 ++-
 migration/block.c                 |  10 +-
 migration/channel-block.c         | 195 ++++++++++++++++++++++++
 migration/channel.c               |   4 +-
 migration/colo.c                  |   5 +-
 migration/migration.c             |  62 +++-----
 migration/multifd.c               |   4 +-
 migration/qemu-file-channel.c     | 194 ------------------------
 migration/qemu-file.c             | 193 +++++++++++++-----------
 migration/ram.c                   |   8 +-
 migration/rdma.c                  | 185 +++++------------------
 migration/savevm.c                |  55 ++-----
 migration/vmstate.c               |   4 +-
 monitor/hmp-cmds.c                |   6 -
 tests/unit/test-io-channel-null.c |  95 ++++++++++++
 tests/unit/test-vmstate.c         |   5 +-
 io/meson.build                    |   1 +
 io/trace-events                   |   3 +
 migration/meson.build             |   2 +-
 tests/unit/meson.build            |   1 +
 26 files changed, 921 insertions(+), 671 deletions(-)
 create mode 100644 include/io/channel-null.h
 create mode 100644 migration/channel-block.h
 delete mode 100644 migration/qemu-file-channel.h
 create mode 100644 io/channel-null.c
 create mode 100644 migration/channel-block.c
 delete mode 100644 migration/qemu-file-channel.c
 create mode 100644 tests/unit/test-io-channel-null.c

Comments

Richard Henderson June 22, 2022, 2:14 a.m. UTC | #1
On 6/21/22 17:25, Juan Quintela wrote:
> The following changes since commit c8b2d413761af732a0798d8df45ce968732083fe:
> 
>    Merge tag 'bsd-user-syscall-2022q2-pull-request' of ssh://github.com/qemu-bsd-user/qemu-bsd-user into staging (2022-06-19 13:56:13 -0700)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/juan.quintela/qemu.git tags/migration-20220621-pull-request
> 
> for you to fetch changes up to 720eceaa316f2a75a7930085bb305850831a065f:
> 
>    migration: remove the QEMUFileOps abstraction (2022-06-21 18:06:55 +0200)
> 
> ----------------------------------------------------------------
> Migration Pull request
> 
> Hi
> 
> In this today migration PULL request:
> - dainiel Berrangé qemufileops cleanup
> - Leonardo Brass cleanups for zero copy
> - RDMA cleanups (me)

Build failures:

https://gitlab.com/qemu-project/qemu/-/jobs/2622407867
https://gitlab.com/qemu-project/qemu/-/jobs/2622407794
https://gitlab.com/qemu-project/qemu/-/jobs/2622407791

../migration/migration.c:166:5: error: 'MIGRATION_CAPABILITY_ZERO_COPY_SEND' undeclared 
here (not in a function); did you mean 'MIGRATION_CAPABILITY_ZERO_BLOCKS'?
   166 |     MIGRATION_CAPABILITY_ZERO_COPY_SEND);
       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../migration/migration.c:145:35: note: in definition of macro 'INITIALIZE_MIGRATE_CAPS_SET'
   145 |         .size = sizeof((int []) { __VA_ARGS__ }) / sizeof(int), \
       |                                   ^~~~~~~~~~~
[1118/1665] Compiling C object libcommon.fa.p/migration_multifd.c.obj


https://gitlab.com/qemu-project/qemu/-/jobs/2622407863
https://gitlab.com/qemu-project/qemu/-/jobs/2622407862
https://gitlab.com/qemu-project/qemu/-/jobs/2622407860
https://gitlab.com/qemu-project/qemu/-/jobs/2622407811

../io/channel-socket.c:589:9: error: implicit declaration of function 
'g_assert_unreachable' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
         g_assert_unreachable();
         ^


r~
Dr. David Alan Gilbert June 22, 2022, 3:19 p.m. UTC | #2
* Richard Henderson (richard.henderson@linaro.org) wrote:
> On 6/21/22 17:25, Juan Quintela wrote:
> > The following changes since commit c8b2d413761af732a0798d8df45ce968732083fe:
> > 
> >    Merge tag 'bsd-user-syscall-2022q2-pull-request' of ssh://github.com/qemu-bsd-user/qemu-bsd-user into staging (2022-06-19 13:56:13 -0700)
> > 
> > are available in the Git repository at:
> > 
> >    https://gitlab.com/juan.quintela/qemu.git tags/migration-20220621-pull-request
> > 
> > for you to fetch changes up to 720eceaa316f2a75a7930085bb305850831a065f:
> > 
> >    migration: remove the QEMUFileOps abstraction (2022-06-21 18:06:55 +0200)
> > 
> > ----------------------------------------------------------------
> > Migration Pull request
> > 
> > Hi
> > 
> > In this today migration PULL request:
> > - dainiel Berrangé qemufileops cleanup
> > - Leonardo Brass cleanups for zero copy
> > - RDMA cleanups (me)
> 
> Build failures:

Hmm, I'll fix these up

> https://gitlab.com/qemu-project/qemu/-/jobs/2622407867
> https://gitlab.com/qemu-project/qemu/-/jobs/2622407794
> https://gitlab.com/qemu-project/qemu/-/jobs/2622407791
> 
> ../migration/migration.c:166:5: error: 'MIGRATION_CAPABILITY_ZERO_COPY_SEND'
> undeclared here (not in a function); did you mean
> 'MIGRATION_CAPABILITY_ZERO_BLOCKS'?
>   166 |     MIGRATION_CAPABILITY_ZERO_COPY_SEND);
>       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../migration/migration.c:145:35: note: in definition of macro 'INITIALIZE_MIGRATE_CAPS_SET'
>   145 |         .size = sizeof((int []) { __VA_ARGS__ }) / sizeof(int), \
>       |                                   ^~~~~~~~~~~
> [1118/1665] Compiling C object libcommon.fa.p/migration_multifd.c.obj

So these are non-Linux's; so I guess that constant is guardded;
> 
> https://gitlab.com/qemu-project/qemu/-/jobs/2622407863
> https://gitlab.com/qemu-project/qemu/-/jobs/2622407862
> https://gitlab.com/qemu-project/qemu/-/jobs/2622407860
> https://gitlab.com/qemu-project/qemu/-/jobs/2622407811
> 
> ../io/channel-socket.c:589:9: error: implicit declaration of function
> 'g_assert_unreachable' is invalid in C99
> [-Werror,-Wimplicit-function-declaration]
>         g_assert_unreachable();
>         ^

Again, non Linux; and should be g_assert_not_reached

I'll fix this up.

Dave

> 
> r~
>