Message ID | 20220119080929.39485-16-peterx@redhat.com |
---|---|
State | New |
Headers | show |
Series | migration: Postcopy Preemption | expand |
* Peter Xu (peterx@redhat.com) wrote: > Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > --- > tests/qtest/migration-test.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c > index 7b42f6fd90..93ff43bb3f 100644 > --- a/tests/qtest/migration-test.c > +++ b/tests/qtest/migration-test.c > @@ -470,6 +470,7 @@ typedef struct { > */ > bool hide_stderr; > bool use_shmem; > + bool postcopy_preempt; > /* only launch the target process */ > bool only_target; > /* Use dirty ring if true; dirty logging otherwise */ > @@ -673,6 +674,11 @@ static int migrate_postcopy_prepare(QTestState **from_ptr, > migrate_set_capability(to, "postcopy-ram", true); > migrate_set_capability(to, "postcopy-blocktime", true); > > + if (args->postcopy_preempt) { > + migrate_set_capability(from, "postcopy-preempt", true); > + migrate_set_capability(to, "postcopy-preempt", true); > + } > + > /* 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. > @@ -719,6 +725,20 @@ static void test_postcopy(void) > migrate_postcopy_complete(from, to); > } > > +static void test_postcopy_preempt(void) > +{ > + MigrateStart *args = migrate_start_new(); > + QTestState *from, *to; > + > + args->postcopy_preempt = true; > + > + if (migrate_postcopy_prepare(&from, &to, args)) { > + return; > + } > + migrate_postcopy_start(from, to); > + migrate_postcopy_complete(from, to); > +} > + > static void test_postcopy_recovery(void) > { > MigrateStart *args = migrate_start_new(); > @@ -1458,6 +1478,7 @@ int main(int argc, char **argv) > module_call_init(MODULE_INIT_QOM); > > qtest_add_func("/migration/postcopy/unix", test_postcopy); > + qtest_add_func("/migration/postcopy/preempt", test_postcopy_preempt); > qtest_add_func("/migration/postcopy/recovery", test_postcopy_recovery); > qtest_add_func("/migration/bad_dest", test_baddest); > qtest_add_func("/migration/precopy/unix", test_precopy_unix); > -- > 2.32.0 >
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index 7b42f6fd90..93ff43bb3f 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest/migration-test.c @@ -470,6 +470,7 @@ typedef struct { */ bool hide_stderr; bool use_shmem; + bool postcopy_preempt; /* only launch the target process */ bool only_target; /* Use dirty ring if true; dirty logging otherwise */ @@ -673,6 +674,11 @@ static int migrate_postcopy_prepare(QTestState **from_ptr, migrate_set_capability(to, "postcopy-ram", true); migrate_set_capability(to, "postcopy-blocktime", true); + if (args->postcopy_preempt) { + migrate_set_capability(from, "postcopy-preempt", true); + migrate_set_capability(to, "postcopy-preempt", true); + } + /* 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. @@ -719,6 +725,20 @@ static void test_postcopy(void) migrate_postcopy_complete(from, to); } +static void test_postcopy_preempt(void) +{ + MigrateStart *args = migrate_start_new(); + QTestState *from, *to; + + args->postcopy_preempt = true; + + if (migrate_postcopy_prepare(&from, &to, args)) { + return; + } + migrate_postcopy_start(from, to); + migrate_postcopy_complete(from, to); +} + static void test_postcopy_recovery(void) { MigrateStart *args = migrate_start_new(); @@ -1458,6 +1478,7 @@ int main(int argc, char **argv) module_call_init(MODULE_INIT_QOM); qtest_add_func("/migration/postcopy/unix", test_postcopy); + qtest_add_func("/migration/postcopy/preempt", test_postcopy_preempt); qtest_add_func("/migration/postcopy/recovery", test_postcopy_recovery); qtest_add_func("/migration/bad_dest", test_baddest); qtest_add_func("/migration/precopy/unix", test_precopy_unix);
Signed-off-by: Peter Xu <peterx@redhat.com> --- tests/qtest/migration-test.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)