[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] f6f213: migration: Remove RDMA_UNREGISTRATION
From: |
Richard Henderson |
Subject: |
[Qemu-commits] [qemu/qemu] f6f213: migration: Remove RDMA_UNREGISTRATION_EXAMPLE |
Date: |
Wed, 22 Jun 2022 22:13:55 -0700 |
Branch: refs/heads/staging
Home: https://github.com/qemu/qemu
Commit: f6f213e4c713c4a6c3f9de775aa526f2288e3d2d
https://github.com/qemu/qemu/commit/f6f213e4c713c4a6c3f9de775aa526f2288e3d2d
Author: Juan Quintela <quintela@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration: Remove RDMA_UNREGISTRATION_EXAMPLE
Nobody has ever showed up to unregister individual pages, and another
set of patches written by Daniel P. Berrangé <berrange@redhat.com>
just remove qemu_rdma_signal_unregister() function needed here.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 803ca43e4c7fcf32f9f68c118301ccd0c83ece3f
https://github.com/qemu/qemu/commit/803ca43e4c7fcf32f9f68c118301ccd0c83ece3f
Author: Leonardo Bras <leobras@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M io/channel-socket.c
Log Message:
-----------
QIOChannelSocket: Introduce assert and reduce ifdefs to improve readability
During implementation of MSG_ZEROCOPY feature, a lot of #ifdefs were
introduced, particularly at qio_channel_socket_writev().
Rewrite some of those changes so it's easier to read.
Also, introduce an assert to help detect incorrect zero-copy usage is when
it's disabled on build.
Signed-off-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
dgilbert: Fixed up thinko'd g_assert_unreachable->g_assert_not_reached
Commit: 4f5a09714c983a3471fd12e3c7f3196e95c650c1
https://github.com/qemu/qemu/commit/4f5a09714c983a3471fd12e3c7f3196e95c650c1
Author: Leonardo Bras <leobras@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M io/channel-socket.c
Log Message:
-----------
QIOChannelSocket: Fix zero-copy send so socket flush works
Somewhere between v6 and v7 the of the zero-copy-send patchset a crucial
part of the flushing mechanism got missing: incrementing zero_copy_queued.
Without that, the flushing interface becomes a no-op, and there is no
guarantee the buffer is really sent.
This can go as bad as causing a corruption in RAM during migration.
Fixes: 2bc58ffc2926 ("QIOChannelSocket: Implement io_writev zero copy flag &
io_flush for CONFIG_LINUX")
Reported-by: 徐闯 <xuchuangxclwt@bytedance.com>
Signed-off-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 1abaec9a1b2c23f7aa94709a422128d9e42c3e0b
https://github.com/qemu/qemu/commit/1abaec9a1b2c23f7aa94709a422128d9e42c3e0b
Author: Leonardo Bras <leobras@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/migration.c
M monitor/hmp-cmds.c
M qapi/migration.json
Log Message:
-----------
migration: Change zero_copy_send from migration parameter to migration
capability
When originally implemented, zero_copy_send was designed as a Migration
paramenter.
But taking into account how is that supposed to work, and how
the difference between a capability and a parameter, it only makes sense
that zero-copy-send would work better as a capability.
Taking into account how recently the change got merged, it was decided
that it's still time to make it right, and convert zero_copy_send into
a Migration capability.
Signed-off-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
dgilbert: always define the capability, even on non-Linux but error if
set; avoids build problems with the capability
Commit: 87e42764490896e66ab8a3c93280384689b0acb4
https://github.com/qemu/qemu/commit/87e42764490896e66ab8a3c93280384689b0acb4
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
A include/io/channel-null.h
A io/channel-null.c
M io/meson.build
M io/trace-events
M tests/unit/meson.build
A tests/unit/test-io-channel-null.c
Log Message:
-----------
io: add a QIOChannelNull equivalent to /dev/null
This is for code which needs a portable equivalent to a QIOChannelFile
connected to /dev/null.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: c0e0825c98cf608fe2775395b79c53efe0324f8e
https://github.com/qemu/qemu/commit/c0e0825c98cf608fe2775395b79c53efe0324f8e
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: switch to use QIOChannelNull for dummy channel
This removes one further custom impl of QEMUFile, in favour of a
QIOChannel based impl.
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 246683c22f21df0572bd3ab756ac9e688e856cb1
https://github.com/qemu/qemu/commit/246683c22f21df0572bd3ab756ac9e688e856cb1
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration: remove unreachble RDMA code in save_hook impl
The QEMUFile 'save_hook' callback has a 'size_t size' parameter.
The RDMA impl of this has logic that takes different actions
depending on whether the value is zero or non-zero. It has
commented out logic that would have taken further actions
if the value was negative.
The only place where the 'save_hook' callback is invoked is
the ram_control_save_page() method, which passes 'size'
through from its caller. The only caller of this method is
in turn control_save_page(). This method unconditionally
passes the 'TARGET_PAGE_SIZE' constant for the 'size' parameter.
IOW, the only scenario for 'size' that can execute in the
qemu_rdma_save_page method is 'size > 0'. The remaining code
has been unreachable since RDMA support was first introduced
9 years ago.
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: c7fc8d323ad1a3110925088096376eca4163be71
https://github.com/qemu/qemu/commit/c7fc8d323ad1a3110925088096376eca4163be71
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file.c
Log Message:
-----------
migration: rename rate limiting fields in QEMUFile
This renames the following QEMUFile fields
* bytes_xfer -> rate_limit_used
* xfer_limit -> rate_limit_max
The intent is to make it clear that 'bytes_xfer' is specifically related
to rate limiting of data and applies to data queued, which need not have
been transferred on the wire yet if a flush hasn't taken place.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 154d87b4ef7f32fe4b11357648ec0b81b7e77d59
https://github.com/qemu/qemu/commit/154d87b4ef7f32fe4b11357648ec0b81b7e77d59
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file.c
Log Message:
-----------
migration: rename 'pos' field in QEMUFile to 'bytes_processed'
The field name 'pos' gives the misleading impression that the QEMUFile
objects are seekable. This is not the case, as in general we just
have an opaque stream. The users of this method are only interested
in the total bytes processed. This switches to a new name that
reflects the intended usage.
Every QIOChannel backed impl of QEMUFile is currently ignoring the
'pos' field.
The only QEMUFile impl using 'pos' as an offset for I/O is the block
device vmstate. A later patch is introducing a QIOChannel impl for the
vmstate, and to handle this it is tracking a file offset itself
internally to the QIOChannel impl. So when we later eliminate the
QEMUFileOps callbacks later, the 'pos' field will no longer be used
from any I/O read/write methods.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
dgilbert: Fixed long line
Commit: fbfa6404e597920ad72510461e0b0fed5243ce1d
https://github.com/qemu/qemu/commit/fbfa6404e597920ad72510461e0b0fed5243ce1d
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/block.c
M migration/migration.c
M migration/qemu-file.c
M migration/qemu-file.h
M migration/savevm.c
M migration/vmstate.c
Log Message:
-----------
migration: rename qemu_ftell to qemu_file_total_transferred
The name 'ftell' gives the misleading impression that the QEMUFile
objects are seekable. This is not the case, as in general we just
have an opaque stream. The users of this method are only interested
in the total bytes processed. This switches to a new name that
reflects the intended usage.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
dgilbert: Wrapped long line
Commit: 1a93bd2f60acbf7eb3583805f9d6605d909d403f
https://github.com/qemu/qemu/commit/1a93bd2f60acbf7eb3583805f9d6605d909d403f
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file.c
M migration/qemu-file.h
M migration/ram.c
Log Message:
-----------
migration: rename qemu_update_position to qemu_file_credit_transfer
The qemu_update_position method name gives the misleading impression
that it is changing the current file offset. Most of the files are
just streams, however, so there's no concept of a file offset in the
general case.
What this method is actually used for is to report on the number of
bytes that have been transferred out of band from the main I/O methods.
This new name better reflects this purpose.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: bc698c367d6fac15454ee3ff6bb168e43c151465
https://github.com/qemu/qemu/commit/bc698c367d6fac15454ee3ff6bb168e43c151465
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/multifd.c
M migration/qemu-file.c
M migration/qemu-file.h
Log Message:
-----------
migration: rename qemu_file_update_transfer to qemu_file_acct_rate_limit
The qemu_file_update_transfer name doesn't give a clear guide on what
its purpose is, and how it differs from the qemu_file_credit_transfer
method. The latter is specifically for accumulating for total migration
traffic, while the former is specifically for accounting in thue rate
limit calculations. The new name give better guidance on its usage.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 65cf200a51ddc6d0a28ecceac30dc892233cddd7
https://github.com/qemu/qemu/commit/65cf200a51ddc6d0a28ecceac30dc892233cddd7
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
A migration/channel-block.c
A migration/channel-block.h
M migration/meson.build
Log Message:
-----------
migration: introduce a QIOChannel impl for BlockDriverState VMState
Introduce a QIOChannelBlock class that exposes the BlockDriverState
VMState region for I/O.
This is kept in the migration/ directory rather than io/, to avoid
a mutual dependancy between block/ <-> io/ directories. Also the
VMState should only be used by the migration code.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
dgilbert: Fixed coding style in qio_channel_block_close
Commit: 67bdabe2af52cf5bb9420f57e0f67c9b571e1e5d
https://github.com/qemu/qemu/commit/67bdabe2af52cf5bb9420f57e0f67c9b571e1e5d
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/savevm.c
Log Message:
-----------
migration: convert savevm to use QIOChannelBlock for VMState
With this change, all QEMUFile usage is backed by QIOChannel at
last.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
dgilbert: Wrap long lines
Commit: 365c0463db9382130c7201c5c91021fe84bf5f77
https://github.com/qemu/qemu/commit/365c0463db9382130c7201c5c91021fe84bf5f77
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file.c
M migration/qemu-file.h
M migration/rdma.c
Log Message:
-----------
migration: stop passing 'opaque' parameter to QEMUFile hooks
The only user of the hooks is RDMA which provides a QIOChannel backed
impl of QEMUFile. It can thus use the qemu_file_get_ioc() method.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 2893a2884b1deb09af51f4377f1aaf29b28b0c93
https://github.com/qemu/qemu/commit/2893a2884b1deb09af51f4377f1aaf29b28b0c93
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file-channel.c
M migration/qemu-file.c
M migration/qemu-file.h
Log Message:
-----------
migration: hardcode assumption that QEMUFile is backed with QIOChannel
The only callers of qemu_fopen_ops pass 'true' for the 'has_ioc'
parameter, so hardcode this assumption in QEMUFile, by passing in
the QIOChannel object as a non-opaque parameter.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
dgilbert: Fixed long line
Commit: c0c6e1e2dd26ee3ee0218d64be6c532872935070
https://github.com/qemu/qemu/commit/c0c6e1e2dd26ee3ee0218d64be6c532872935070
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file-channel.c
M migration/qemu-file.c
M migration/qemu-file.h
Log Message:
-----------
migration: introduce new constructors for QEMUFile
Prepare for the elimination of QEMUFileOps by introducing a pair of new
constructors. This lets us distinguish between an input and output file
object explicitly rather than via the existance of specific callbacks.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 0f58c3fcc7e0e9eb9127d4a2019f4a31825d79e3
https://github.com/qemu/qemu/commit/0f58c3fcc7e0e9eb9127d4a2019f4a31825d79e3
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file.h
Log Message:
-----------
migration: remove unused QEMUFileGetFD typedef / qemu_get_fd method
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: d3c581b750ab099aa8937df5533655b3f9d08ab3
https://github.com/qemu/qemu/commit/d3c581b750ab099aa8937df5533655b3f9d08ab3
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file-channel.c
M migration/qemu-file.c
M migration/qemu-file.h
Log Message:
-----------
migration: remove the QEMUFileOps 'shut_down' callback
This directly implements the shutdown logic using QIOChannel APIs.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 80ad97069c3c434a3631f0c8bc0d5c4cee09be6d
https://github.com/qemu/qemu/commit/80ad97069c3c434a3631f0c8bc0d5c4cee09be6d
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file-channel.c
M migration/qemu-file.c
M migration/qemu-file.h
Log Message:
-----------
migration: remove the QEMUFileOps 'set_blocking' callback
This directly implements the set_blocking logic using QIOChannel APIs.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 0ae1f7f055d757c01ce3144a7041fa9341a3715b
https://github.com/qemu/qemu/commit/0ae1f7f055d757c01ce3144a7041fa9341a3715b
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file-channel.c
M migration/qemu-file.c
M migration/qemu-file.h
Log Message:
-----------
migration: remove the QEMUFileOps 'close' callback
This directly implements the close logic using QIOChannel APIs.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: ded3910448f30da1c78e06e611f12ca1b325ab08
https://github.com/qemu/qemu/commit/ded3910448f30da1c78e06e611f12ca1b325ab08
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file-channel.c
M migration/qemu-file.c
M migration/qemu-file.h
Log Message:
-----------
migration: remove the QEMUFileOps 'get_buffer' callback
This directly implements the get_buffer logic using QIOChannel APIs.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 44879981a25f1e4c4b31d3b9cd84a8afeb3c9cb8
https://github.com/qemu/qemu/commit/44879981a25f1e4c4b31d3b9cd84a8afeb3c9cb8
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file-channel.c
M migration/qemu-file.c
M migration/qemu-file.h
Log Message:
-----------
migration: remove the QEMUFileOps 'writev_buffer' callback
This directly implements the writev_buffer logic using QIOChannel APIs.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 7b124bea5500f45b2f6ddba647d9c01041a90a90
https://github.com/qemu/qemu/commit/7b124bea5500f45b2f6ddba647d9c01041a90a90
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/qemu-file-channel.c
M migration/qemu-file.c
M migration/qemu-file.h
Log Message:
-----------
migration: remove the QEMUFileOps 'get_return_path' callback
This directly implements the get_return_path logic using QIOChannel APIs.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: fb49d96eb2d3f8bc2e281f21c52de73285477232
https://github.com/qemu/qemu/commit/fb49d96eb2d3f8bc2e281f21c52de73285477232
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M migration/channel.c
M migration/colo.c
M migration/meson.build
M migration/migration.c
R migration/qemu-file-channel.c
R migration/qemu-file-channel.h
M migration/qemu-file.c
M migration/qemu-file.h
M migration/ram.c
M migration/rdma.c
M migration/savevm.c
M tests/unit/test-vmstate.c
Log Message:
-----------
migration: remove the QEMUFileOps abstraction
Now that all QEMUFile callbacks are removed, the entire concept can be
deleted.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 13cf0b90dfb3faf7b4fa26fb8ca33b5025a8842c
https://github.com/qemu/qemu/commit/13cf0b90dfb3faf7b4fa26fb8ca33b5025a8842c
Author: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M accel/kvm/kvm-all.c
Log Message:
-----------
accel/kvm/kvm-all: Refactor per-vcpu dirty ring reaping
Add a non-required argument 'CPUState' to kvm_dirty_ring_reap so
that it can cover single vcpu dirty-ring-reaping scenario.
Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id:
<bc37b83d5a189add887433728a0f632d35fb3e3e.1652931128.git.huangy81@chinatelecom.cn>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 81e1f125fa1cb812af512085ae5f44242a8f35a2
https://github.com/qemu/qemu/commit/81e1f125fa1cb812af512085ae5f44242a8f35a2
Author: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M cpus-common.c
M include/exec/cpu-common.h
Log Message:
-----------
cpus: Introduce cpu_list_generation_id
Introduce cpu_list_generation_id to track cpu list generation so
that cpu hotplug/unplug can be detected during measurement of
dirty page rate.
cpu_list_generation_id could be used to detect changes of cpu
list, which is prepared for dirty page rate measurement.
Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id:
<4d7a5f2c86066839054282b1c224067d89d32fc1.1652931128.git.huangy81@chinatelecom.cn>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 26aceab45899e98f7d21e491cae45622780ab5d6
https://github.com/qemu/qemu/commit/26aceab45899e98f7d21e491cae45622780ab5d6
Author: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
A include/sysemu/dirtyrate.h
M migration/dirtyrate.c
M migration/dirtyrate.h
Log Message:
-----------
migration/dirtyrate: Refactor dirty page rate calculation
abstract out dirty log change logic into function
global_dirty_log_change.
abstract out dirty page rate calculation logic via
dirty-ring into function vcpu_calculate_dirtyrate.
abstract out mathematical dirty page rate calculation
into do_calculate_dirtyrate, decouple it from DirtyStat.
rename set_sample_page_period to dirty_stat_wait, which
is well-understood and will be reused in dirtylimit.
handle cpu hotplug/unplug scenario during measurement of
dirty page rate.
export util functions outside migration.
Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id:
<1d65b53c19cfc7dca0114422129515055fa18fb8.1652931128.git.huangy81@chinatelecom.cn>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 6d1ba4318be91818facfb11daff119ac96f1c4ac
https://github.com/qemu/qemu/commit/6d1ba4318be91818facfb11daff119ac96f1c4ac
Author: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M include/exec/memory.h
A include/sysemu/dirtylimit.h
A softmmu/dirtylimit.c
M softmmu/meson.build
Log Message:
-----------
softmmu/dirtylimit: Implement vCPU dirtyrate calculation periodically
Introduce the third method GLOBAL_DIRTY_LIMIT of dirty
tracking for calculate dirtyrate periodly for dirty page
rate limit.
Add dirtylimit.c to implement dirtyrate calculation periodly,
which will be used for dirty page rate limit.
Add dirtylimit.h to export util functions for dirty page rate
limit implementation.
Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id:
<69a2287b9bf98a4a3d967e01091cb8f6bf80ead4.1652931128.git.huangy81@chinatelecom.cn>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: e2e611fe54177ff715bdcc07bd4d18b29ab9f465
https://github.com/qemu/qemu/commit/e2e611fe54177ff715bdcc07bd4d18b29ab9f465
Author: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M accel/kvm/kvm-all.c
M accel/stubs/kvm-stub.c
M include/sysemu/kvm.h
Log Message:
-----------
accel/kvm/kvm-all: Introduce kvm_dirty_ring_size function
Introduce kvm_dirty_ring_size util function to help calculate
dirty ring ful time.
Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Acked-by: Peter Xu <peterx@redhat.com>
Message-Id:
<c99e7851c2e2b99312cfbabe4d1f6379a3da8a44.1652931128.git.huangy81@chinatelecom.cn>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
dgilbert: Fixed up excess #endif
Commit: c57873ef5f786903c6756582c3bccac3a59484fa
https://github.com/qemu/qemu/commit/c57873ef5f786903c6756582c3bccac3a59484fa
Author: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M accel/kvm/kvm-all.c
M include/hw/core/cpu.h
M include/sysemu/dirtylimit.h
M softmmu/dirtylimit.c
M softmmu/trace-events
Log Message:
-----------
softmmu/dirtylimit: Implement virtual CPU throttle
Setup a negative feedback system when vCPU thread
handling KVM_EXIT_DIRTY_RING_FULL exit by introducing
throttle_us_per_full field in struct CPUState. Sleep
throttle_us_per_full microseconds to throttle vCPU
if dirtylimit is in service.
Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id:
<ec26c4bc4874b2c72141a98b028b431404975219.1652931128.git.huangy81@chinatelecom.cn>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: d523ce6b2c03245c9e0d6b2cd212303aa4d73b55
https://github.com/qemu/qemu/commit/d523ce6b2c03245c9e0d6b2cd212303aa4d73b55
Author: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M hmp-commands-info.hx
M hmp-commands.hx
M include/monitor/hmp.h
M qapi/migration.json
M softmmu/dirtylimit.c
M tests/qtest/qmp-cmd-test.c
Log Message:
-----------
softmmu/dirtylimit: Implement dirty page rate limit
Implement dirtyrate calculation periodically basing on
dirty-ring and throttle virtual CPU until it reachs the quota
dirty page rate given by user.
Introduce qmp commands "set-vcpu-dirty-limit",
"cancel-vcpu-dirty-limit", "query-vcpu-dirty-limit"
to enable, disable, query dirty page limit for virtual CPU.
Meanwhile, introduce corresponding hmp commands
"set_vcpu_dirty_limit", "cancel_vcpu_dirty_limit",
"info vcpu_dirty_limit" so the feature can be more usable.
"query-vcpu-dirty-limit" success depends on enabling dirty
page rate limit, so just add it to the list of skipped
command to ensure qmp-cmd-test run successfully.
Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Acked-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id:
<80195172e377e3d96394b5b94425098260380bfa.1652931128.git.huangy81@chinatelecom.cn>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: 9c6eb6dc3785a280b504195d308da082641af2a7
https://github.com/qemu/qemu/commit/9c6eb6dc3785a280b504195d308da082641af2a7
Author: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M tests/qtest/migration-helpers.c
M tests/qtest/migration-helpers.h
M tests/qtest/migration-test.c
Log Message:
-----------
tests: Add dirty page rate limit test
Add dirty page rate limit test if kernel support dirty ring.
The following qmp commands are covered by this test case:
"calc-dirty-rate", "query-dirty-rate", "set-vcpu-dirty-limit",
"cancel-vcpu-dirty-limit" and "query-vcpu-dirty-limit".
Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
Acked-by: Peter Xu <peterx@redhat.com>
Message-Id:
<81ecb7b473d8ee2adf414a1f69ce8b7bd678c558.1652931128.git.huangy81@chinatelecom.cn>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Commit: b1b0c16f144a925bd4fd8fa0926794bc11144f7a
https://github.com/qemu/qemu/commit/b1b0c16f144a925bd4fd8fa0926794bc11144f7a
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2022-06-22 (Wed, 22 Jun 2022)
Changed paths:
M accel/kvm/kvm-all.c
M accel/stubs/kvm-stub.c
M cpus-common.c
M hmp-commands-info.hx
M hmp-commands.hx
M include/exec/cpu-common.h
M include/exec/memory.h
M include/hw/core/cpu.h
A include/io/channel-null.h
M include/monitor/hmp.h
A include/sysemu/dirtylimit.h
A include/sysemu/dirtyrate.h
M include/sysemu/kvm.h
A io/channel-null.c
M io/channel-socket.c
M io/meson.build
M io/trace-events
M migration/block.c
A migration/channel-block.c
A migration/channel-block.h
M migration/channel.c
M migration/colo.c
M migration/dirtyrate.c
M migration/dirtyrate.h
M migration/meson.build
M migration/migration.c
M migration/multifd.c
R migration/qemu-file-channel.c
R migration/qemu-file-channel.h
M migration/qemu-file.c
M migration/qemu-file.h
M migration/ram.c
M migration/rdma.c
M migration/savevm.c
M migration/vmstate.c
M monitor/hmp-cmds.c
M qapi/migration.json
A softmmu/dirtylimit.c
M softmmu/meson.build
M softmmu/trace-events
M tests/qtest/migration-helpers.c
M tests/qtest/migration-helpers.h
M tests/qtest/migration-test.c
M tests/qtest/qmp-cmd-test.c
M tests/unit/meson.build
A tests/unit/test-io-channel-null.c
M tests/unit/test-vmstate.c
Log Message:
-----------
Merge tag 'pull-migration-20220622b' of https://gitlab.com/dagrh/qemu into
staging
Migration pull 2022-06-22
Compared to Juan's pull:
a) Hopefully fixed non-Linux builds
(Local build test on mingw64 works
Note: the zero-copy capability is now
defined on non-Linux systems)
b) Added Hyman's series - it had been
on queue for a while (sorry for the delay)
c) Fixed up a whole bunch of check-patch failures
- please use it!
In this today migration PULL request:
- Dainiel Berrangé - qemufileops cleanup
- Leonardo Bras - cleanups for zero copy
- Juan Quintela - RDMA cleanups
- Hyman Huang - per-vcpu dirty ring work
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEERfXHG0oMt/uXep+pBRYzHrxb/ecFAmKzYWQACgkQBRYzHrxb
# /edc1w//ekXKYTWBQtBeGX/iB7r00JuGfG4wOf3PN2RI+aLt//cDKVhYh1WuzEl8
# g0mTduISVU76UfCWJPu40rU8W8pnbmHXW9fwfV9dfb/CQZJ2js+pZ1HtxXwnRJ9I
# ScA+aD7HH+2JF5QQaV0/LxaPqQPQUdieTCI6vmjaoX/Dm+aaLc4evy2l2cE6pyS/
# fnq6mXqejk7ggzluGLCGsS3X8Ody5z+vcUwhwS18MnHVmJYJviQ5elcSMOCMqR3a
# VSeCsNbyEP+MQ9e+hJ985ZcVBzmx+4BHcLD1/IRkdOpusTv9fuVgtoVFnELeJcvM
# 1UJr5je0beEvXtgwOo2fbhlp2zt0yATMukcUzJOUn0oY2oJlu/mYTGnxP7HkXfaa
# xYT2U9pcLE7tuLBDtQbUmlydTKBytW5tfksAqCpfwBVBJJvrvUWcUxYAwJfANcFs
# AHlyQPsTkljZ2oA1Wsx5zzWymN8/8MR2ocgHMxQ28aXegV6Fc/eK8mVTT+gs+JZD
# J0DzVYmvmVYzdAfTkpvqWb9MZch4pNgIlS6A3tP0CXwabyP+le+0bJokHSBqqmAL
# JM1gwIenuRch0QH8rbg1eJu5dCri9K0YLu26hpjlfxZbhAFpgxtw7JrqZIiZRxoL
# x5ChRwWNzui+f2RAjPI5XqSg+jBArWSAEBHhQxFWTwXKClBr+dQ=
# =sscN
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 22 Jun 2022 11:37:24 AM PDT
# gpg: using RSA key 45F5C71B4A0CB7FB977A9FA90516331EBC5BFDE7
# gpg: Good signature from "Dr. David Alan Gilbert (RH2) <dgilbert@redhat.com>"
[full]
* tag 'pull-migration-20220622b' of https://gitlab.com/dagrh/qemu: (33 commits)
tests: Add dirty page rate limit test
softmmu/dirtylimit: Implement dirty page rate limit
softmmu/dirtylimit: Implement virtual CPU throttle
accel/kvm/kvm-all: Introduce kvm_dirty_ring_size function
softmmu/dirtylimit: Implement vCPU dirtyrate calculation periodically
migration/dirtyrate: Refactor dirty page rate calculation
cpus: Introduce cpu_list_generation_id
accel/kvm/kvm-all: Refactor per-vcpu dirty ring reaping
migration: remove the QEMUFileOps abstraction
migration: remove the QEMUFileOps 'get_return_path' callback
migration: remove the QEMUFileOps 'writev_buffer' callback
migration: remove the QEMUFileOps 'get_buffer' callback
migration: remove the QEMUFileOps 'close' callback
migration: remove the QEMUFileOps 'set_blocking' callback
migration: remove the QEMUFileOps 'shut_down' callback
migration: remove unused QEMUFileGetFD typedef / qemu_get_fd method
migration: introduce new constructors for QEMUFile
migration: hardcode assumption that QEMUFile is backed with QIOChannel
migration: stop passing 'opaque' parameter to QEMUFile hooks
migration: convert savevm to use QIOChannelBlock for VMState
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Compare: https://github.com/qemu/qemu/compare/2b049d2c8dc0...b1b0c16f144a
- [Qemu-commits] [qemu/qemu] f6f213: migration: Remove RDMA_UNREGISTRATION_EXAMPLE,
Richard Henderson <=