From d6bb06b6689e280d62667d12b5a6c54cefcc3cba Mon Sep 17 00:00:00 2001 From: William Henderson Date: Thu, 3 Aug 2023 15:49:21 +0000 Subject: fix: update sample to correctly start destination server Signed-off-by: William Henderson --- samples/client.c | 7 ++++++- samples/server.c | 17 +++-------------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/samples/client.c b/samples/client.c index 031201e..27382b8 100644 --- a/samples/client.c +++ b/samples/client.c @@ -998,7 +998,6 @@ migrate_to(char *old_sock_path, int *server_max_fds, if (ret > 0) { /* child (destination server) */ char *_argv[] = { path_to_server, - (char *)"-r", // start in VFIO_USER_DEVICE_STATE_RESUMING (char *)"-v", sock_path, NULL @@ -1028,6 +1027,12 @@ migrate_to(char *old_sock_path, int *server_max_fds, negotiate(sock, server_max_fds, server_max_data_xfer_size, pgsize); + device_state = VFIO_USER_DEVICE_STATE_RESUMING; + ret = set_migration_state(sock, device_state); + if (ret < 0) { + err(EXIT_FAILURE, "failed to set device state to resuming"); + } + for (i = 0; i < nr_iters; i++) { /* XXX write migration data */ diff --git a/samples/server.c b/samples/server.c index dd344f9..ed11f46 100644 --- a/samples/server.c +++ b/samples/server.c @@ -421,7 +421,6 @@ int main(int argc, char *argv[]) char template[] = "/tmp/libvfio-user.XXXXXX"; int ret; bool verbose = false; - bool destination = false; int opt; struct sigaction act = {.sa_handler = _sa_handler}; const size_t bar1_size = 0x3000; @@ -440,19 +439,13 @@ int main(int argc, char *argv[]) .write_data = &migration_write_data }; - while ((opt = getopt(argc, argv, "vr")) != -1) { + while ((opt = getopt(argc, argv, "v")) != -1) { switch (opt) { case 'v': verbose = true; break; - case 'r': - destination = true; - server_data.migration.state = VFU_MIGR_STATE_RESUME; - server_data.migration.pending_bytes = - bar1_size + sizeof(time_t); - break; default: /* '?' */ - errx(EXIT_FAILURE, "Usage: %s [-v] [-r] ", argv[0]); + errx(EXIT_FAILURE, "Usage: %s [-v] ", argv[0]); } } @@ -530,11 +523,7 @@ int main(int argc, char *argv[]) err(EXIT_FAILURE, "failed to setup BAR1 region"); } - ret = vfu_setup_device_migration_callbacks( - vfu_ctx, - destination ? LIBVFIO_USER_MIG_FLAG_START_RESUMING : 0, - &migr_callbacks - ); + ret = vfu_setup_device_migration_callbacks(vfu_ctx, 0, &migr_callbacks); if (ret < 0) { err(EXIT_FAILURE, "failed to setup device migration"); -- cgit v1.1