Re: [Qemu-devel] [PATCH v10 08/24] migration: Add multifd test
* Juan Quintela (quint...@redhat.com) wrote: > "Dr. David Alan Gilbert"wrote: > > * Juan Quintela (quint...@redhat.com) wrote: > >> We set the x-multifd-page-count and x-multifd-channels. > >> > >> Signed-off-by: Juan Quintela > > > > > > This should probably go nearer the end of the series; > > it is _much_ better here. It makes so much easier to test that I don't > break neither migration nor multifd while developing O:-) OK, not a biggy. > > we've also got the problem that things are a bit delicate with TCG so > > adding more migration tests probably shouldn't happen until Paolo's > > TCG fixes are worked out. > > > > > Also, should we be checking for some stats to show all 4 channels were > > used? > > There are traces now, I can add new counters is that is what you want. If it's easy then it's worth it. Dave > Later, Juan. -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
Re: [Qemu-devel] [PATCH v10 08/24] migration: Add multifd test
"Dr. David Alan Gilbert"wrote: > * Juan Quintela (quint...@redhat.com) wrote: >> We set the x-multifd-page-count and x-multifd-channels. >> >> Signed-off-by: Juan Quintela > > > This should probably go nearer the end of the series; it is _much_ better here. It makes so much easier to test that I don't break neither migration nor multifd while developing O:-) > we've also got the problem that things are a bit delicate with TCG so > adding more migration tests probably shouldn't happen until Paolo's > TCG fixes are worked out. > Also, should we be checking for some stats to show all 4 channels were > used? There are traces now, I can add new counters is that is what you want. Later, Juan.
Re: [Qemu-devel] [PATCH v10 08/24] migration: Add multifd test
* Juan Quintela (quint...@redhat.com) wrote: > We set the x-multifd-page-count and x-multifd-channels. > > Signed-off-by: Juan QuintelaThis should probably go nearer the end of the series; we've also got the problem that things are a bit delicate with TCG so adding more migration tests probably shouldn't happen until Paolo's TCG fixes are worked out. Also, should we be checking for some stats to show all 4 channels were used? Reviewed-by: Dr. David Alan Gilbert > --- > tests/migration-test.c | 50 > ++ > 1 file changed, 50 insertions(+) > > diff --git a/tests/migration-test.c b/tests/migration-test.c > index 6f9b4c8d7a..97d35f979d 100644 > --- a/tests/migration-test.c > +++ b/tests/migration-test.c > @@ -755,6 +755,55 @@ static void test_compress_unix(void) > g_free(uri); > } > > +static void test_multifd_tcp(void) > +{ > +char *uri; > +char *port; > +QTestState *from, *to; > + > +test_migrate_start(, , "tcp:127.0.0.1:0"); > + > +/* We want to pick a speed slow enough that the test completes > + * quickly, but that it doesn't complete precopy even on a slow > + * machine, so also set the downtime. > + */ > +/* 1 ms should make it not converge*/ > +migrate_set_parameter(from, "downtime-limit", "1"); > +/* 1GB/s */ > +migrate_set_parameter(from, "max-bandwidth", "10"); > + > +migrate_set_parameter(from, "x-multifd-channels", "4"); > +migrate_set_parameter(to, "x-multifd-channels", "4"); > + > +migrate_set_parameter(from, "x-multifd-page-count", "64"); > +migrate_set_parameter(to, "x-multifd-page-count", "64"); > + > +migrate_set_capability(from, "x-multifd", "true"); > +migrate_set_capability(to, "x-multifd", "true"); > +/* Wait for the first serial output from the source */ > +wait_for_serial("src_serial"); > + > +port = migrate_get_parameter(to, "x-tcp-port"); > +uri = g_strdup_printf("tcp:127.0.0.1:%s", port); > + > +migrate(from, uri); > + > +wait_for_migration_pass(from); > + > +/* 300ms it should converge */ > +migrate_set_parameter(from, "downtime-limit", "300"); > + > +if (!got_stop) { > +qtest_qmp_eventwait(from, "STOP"); > +} > +qtest_qmp_eventwait(to, "RESUME"); > + > +wait_for_serial("dest_serial"); > +wait_for_migration_complete(from); > + > +test_migrate_end(from, to, true); > +} > + > int main(int argc, char **argv) > { > char template[] = "/tmp/migration-test-XX"; > @@ -783,6 +832,7 @@ int main(int argc, char **argv) > if (0) { > qtest_add_func("/migration/compress/unix", test_compress_unix); > } > +qtest_add_func("/migration/multifd/tcp", test_multifd_tcp); > > ret = g_test_run(); > > -- > 2.14.3 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
[Qemu-devel] [PATCH v10 08/24] migration: Add multifd test
We set the x-multifd-page-count and x-multifd-channels. Signed-off-by: Juan Quintela--- tests/migration-test.c | 50 ++ 1 file changed, 50 insertions(+) diff --git a/tests/migration-test.c b/tests/migration-test.c index 6f9b4c8d7a..97d35f979d 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -755,6 +755,55 @@ static void test_compress_unix(void) g_free(uri); } +static void test_multifd_tcp(void) +{ +char *uri; +char *port; +QTestState *from, *to; + +test_migrate_start(, , "tcp:127.0.0.1:0"); + +/* We want to pick a speed slow enough that the test completes + * quickly, but that it doesn't complete precopy even on a slow + * machine, so also set the downtime. + */ +/* 1 ms should make it not converge*/ +migrate_set_parameter(from, "downtime-limit", "1"); +/* 1GB/s */ +migrate_set_parameter(from, "max-bandwidth", "10"); + +migrate_set_parameter(from, "x-multifd-channels", "4"); +migrate_set_parameter(to, "x-multifd-channels", "4"); + +migrate_set_parameter(from, "x-multifd-page-count", "64"); +migrate_set_parameter(to, "x-multifd-page-count", "64"); + +migrate_set_capability(from, "x-multifd", "true"); +migrate_set_capability(to, "x-multifd", "true"); +/* Wait for the first serial output from the source */ +wait_for_serial("src_serial"); + +port = migrate_get_parameter(to, "x-tcp-port"); +uri = g_strdup_printf("tcp:127.0.0.1:%s", port); + +migrate(from, uri); + +wait_for_migration_pass(from); + +/* 300ms it should converge */ +migrate_set_parameter(from, "downtime-limit", "300"); + +if (!got_stop) { +qtest_qmp_eventwait(from, "STOP"); +} +qtest_qmp_eventwait(to, "RESUME"); + +wait_for_serial("dest_serial"); +wait_for_migration_complete(from); + +test_migrate_end(from, to, true); +} + int main(int argc, char **argv) { char template[] = "/tmp/migration-test-XX"; @@ -783,6 +832,7 @@ int main(int argc, char **argv) if (0) { qtest_add_func("/migration/compress/unix", test_compress_unix); } +qtest_add_func("/migration/multifd/tcp", test_multifd_tcp); ret = g_test_run(); -- 2.14.3