mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-09-06 01:43:39 +00:00
migration: Move migrate_use_zero_copy_send() to options.c
Once that we are there, we rename the function to migrate_zero_copy_send() to be consistent with all other capabilities. We can remove the CONFIG_LINUX guard. We already check that we can't setup this capability in migrate_caps_check(). Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
This commit is contained in:
parent
51b07548f7
commit
b4bc342c76
|
@ -1609,7 +1609,7 @@ static bool migrate_params_check(MigrationParameters *params, Error **errp)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_LINUX
|
||||
if (migrate_use_zero_copy_send() &&
|
||||
if (migrate_zero_copy_send() &&
|
||||
((params->has_multifd_compression && params->multifd_compression) ||
|
||||
(params->tls_creds && *params->tls_creds))) {
|
||||
error_setg(errp,
|
||||
|
@ -2595,17 +2595,6 @@ int migrate_multifd_zstd_level(void)
|
|||
return s->parameters.multifd_zstd_level;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_LINUX
|
||||
bool migrate_use_zero_copy_send(void)
|
||||
{
|
||||
MigrationState *s;
|
||||
|
||||
s = migrate_get_current();
|
||||
|
||||
return s->capabilities[MIGRATION_CAPABILITY_ZERO_COPY_SEND];
|
||||
}
|
||||
#endif
|
||||
|
||||
int migrate_use_tls(void)
|
||||
{
|
||||
MigrationState *s;
|
||||
|
|
|
@ -454,11 +454,6 @@ MultiFDCompression migrate_multifd_compression(void);
|
|||
int migrate_multifd_zlib_level(void);
|
||||
int migrate_multifd_zstd_level(void);
|
||||
|
||||
#ifdef CONFIG_LINUX
|
||||
bool migrate_use_zero_copy_send(void);
|
||||
#else
|
||||
#define migrate_use_zero_copy_send() (false)
|
||||
#endif
|
||||
int migrate_use_tls(void);
|
||||
int migrate_use_xbzrle(void);
|
||||
uint64_t migrate_xbzrle_cache_size(void);
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include "trace.h"
|
||||
#include "multifd.h"
|
||||
#include "threadinfo.h"
|
||||
|
||||
#include "options.h"
|
||||
#include "qemu/yank.h"
|
||||
#include "io/channel-socket.h"
|
||||
#include "yank_functions.h"
|
||||
|
@ -608,7 +608,7 @@ int multifd_send_sync_main(QEMUFile *f)
|
|||
* all the dirty bitmaps.
|
||||
*/
|
||||
|
||||
flush_zero_copy = migrate_use_zero_copy_send();
|
||||
flush_zero_copy = migrate_zero_copy_send();
|
||||
|
||||
for (i = 0; i < migrate_multifd_channels(); i++) {
|
||||
MultiFDSendParams *p = &multifd_send_state->params[i];
|
||||
|
@ -653,7 +653,7 @@ static void *multifd_send_thread(void *opaque)
|
|||
MigrationThread *thread = NULL;
|
||||
Error *local_err = NULL;
|
||||
int ret = 0;
|
||||
bool use_zero_copy_send = migrate_use_zero_copy_send();
|
||||
bool use_zero_copy_send = migrate_zero_copy_send();
|
||||
|
||||
thread = MigrationThreadAdd(p->name, qemu_get_thread_id());
|
||||
|
||||
|
@ -945,7 +945,7 @@ int multifd_save_setup(Error **errp)
|
|||
p->page_size = qemu_target_page_size();
|
||||
p->page_count = page_count;
|
||||
|
||||
if (migrate_use_zero_copy_send()) {
|
||||
if (migrate_zero_copy_send()) {
|
||||
p->write_flags = QIO_CHANNEL_WRITE_FLAG_ZERO_COPY;
|
||||
} else {
|
||||
p->write_flags = 0;
|
||||
|
|
|
@ -155,3 +155,12 @@ bool migrate_zero_blocks(void)
|
|||
|
||||
return s->capabilities[MIGRATION_CAPABILITY_ZERO_BLOCKS];
|
||||
}
|
||||
|
||||
bool migrate_zero_copy_send(void)
|
||||
{
|
||||
MigrationState *s;
|
||||
|
||||
s = migrate_get_current();
|
||||
|
||||
return s->capabilities[MIGRATION_CAPABILITY_ZERO_COPY_SEND];
|
||||
}
|
||||
|
|
|
@ -32,5 +32,6 @@ bool migrate_postcopy_ram(void);
|
|||
bool migrate_release_ram(void);
|
||||
bool migrate_validate_uuid(void);
|
||||
bool migrate_zero_blocks(void);
|
||||
bool migrate_zero_copy_send(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -98,7 +98,7 @@ static void socket_outgoing_migration(QIOTask *task,
|
|||
|
||||
trace_migration_socket_outgoing_connected(data->hostname);
|
||||
|
||||
if (migrate_use_zero_copy_send() &&
|
||||
if (migrate_zero_copy_send() &&
|
||||
!qio_channel_has_feature(sioc, QIO_CHANNEL_FEATURE_WRITE_ZERO_COPY)) {
|
||||
error_setg(&err, "Zero copy send feature not detected in host kernel");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue