[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 16/16] migration/multifd: Add integration tests for multifd w
|
From: |
Fabiano Rosas |
|
Subject: |
Re: [PATCH 16/16] migration/multifd: Add integration tests for multifd with Intel DSA offloading. |
|
Date: |
Mon, 30 Oct 2023 12:26:25 -0300 |
Hao Xiang <hao.xiang@bytedance.com> writes:
> * Add test case to start and complete multifd live migration with DSA
> offloading enabled.
> * Add test case to start and cancel multifd live migration with DSA
> offloading enabled.
>
> Signed-off-by: Bryan Zhang <bryan.zhang@bytedance.com>
> Signed-off-by: Hao Xiang <hao.xiang@bytedance.com>
> ---
> tests/qtest/migration-test.c | 66 +++++++++++++++++++++++++++++++++++-
> 1 file changed, 65 insertions(+), 1 deletion(-)
>
> diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
> index 8eb2053dbb..f22d39e72e 100644
> --- a/tests/qtest/migration-test.c
> +++ b/tests/qtest/migration-test.c
> @@ -631,6 +631,12 @@ typedef struct {
> const char *opts_target;
> } MigrateStart;
>
> +/*
> + * It requires separate steps to configure and enable DSA device.
> + * This test assumes that the configuration is done already.
> + */
> +static const char* dsa_dev_path = "/dev/dsa/wq4.0";
Hmm, this is tricky. No developer is going to have this setup neither
will our CI. So it might be that this test just sits there and never
gets executed. I have to think more about this.
Nonetheless, you should check that the file exists and skip the test if
it doesn't.
> +
> /*
> * A hook that runs after the src and dst QEMUs have been
> * created, but before the migration is started. This can
> @@ -2431,7 +2437,7 @@ static void
> test_multifd_tcp_tls_x509_reject_anon_client(void)
> *
> * And see that it works
> */
> -static void test_multifd_tcp_cancel(void)
> +static void test_multifd_tcp_cancel_common(bool use_dsa)
> {
> MigrateStart args = {
> .hide_stderr = true,
> @@ -2452,6 +2458,10 @@ static void test_multifd_tcp_cancel(void)
> migrate_set_capability(from, "multifd", true);
> migrate_set_capability(to, "multifd", true);
>
> + if (use_dsa) {
> + migrate_set_parameter_str(from, "multifd-dsa-accel", dsa_dev_path);
> + }
> +
> /* Start incoming migration from the 1st socket */
> migrate_incoming_qmp(to, "tcp:127.0.0.1:0", "{}");
>
> @@ -2508,6 +2518,48 @@ static void test_multifd_tcp_cancel(void)
> test_migrate_end(from, to2, true);
> }
>
> +/*
> + * This test does:
> + * source target
> + * migrate_incoming
> + * migrate
> + * migrate_cancel
> + * launch another target
> + * migrate
> + *
> + * And see that it works
> + */
> +static void test_multifd_tcp_cancel(void)
> +{
> + test_multifd_tcp_cancel_common(false);
> +}
> +
> +#ifdef CONFIG_DSA_OPT
> +
> +static void *test_migrate_precopy_tcp_multifd_start_dsa(QTestState *from,
> + QTestState *to)
> +{
> + migrate_set_parameter_str(from, "multifd-dsa-accel", dsa_dev_path);
> + return test_migrate_precopy_tcp_multifd_start_common(from, to, "none");
> +}
> +
> +static void test_multifd_tcp_none_dsa(void)
> +{
> + MigrateCommon args = {
> + .listen_uri = "defer",
> + .start_hook = test_migrate_precopy_tcp_multifd_start_dsa,
> + };
> +
> + test_precopy_common(&args);
> +}
> +
> +static void test_multifd_tcp_cancel_dsa(void)
> +{
> + test_multifd_tcp_cancel_common(true);
> +}
> +
> +#endif
> +
> static void calc_dirty_rate(QTestState *who, uint64_t calc_time)
> {
> qtest_qmp_assert_success(who,
> @@ -2921,6 +2973,18 @@ int main(int argc, char **argv)
> }
> qtest_add_func("/migration/multifd/tcp/plain/none",
> test_multifd_tcp_none);
> +
> +#ifdef CONFIG_DSA_OPT
> + if (g_str_equal(arch, "x86_64")) {
> + qtest_add_func("/migration/multifd/tcp/plain/none/dsa",
> + test_multifd_tcp_none_dsa);
> + }
> + if (getenv("QEMU_TEST_FLAKY_TESTS")) {
It's safe to not use FLAKY here. This test already requires special
setup.
We have also fixed the cancel test a while back. We will remove the
flaky tag from it soon.
- [PATCH 09/16] migration/multifd: Add new migration option for multifd DSA offloading., (continued)
- [PATCH 09/16] migration/multifd: Add new migration option for multifd DSA offloading., Hao Xiang, 2023/10/25
- [PATCH 10/16] migration/multifd: Enable DSA offloading in multifd sender path., Hao Xiang, 2023/10/25
- [PATCH 11/16] migration/multifd: Add test hook to set normal page ratio., Hao Xiang, 2023/10/25
- [PATCH 12/16] migration/multifd: Enable set normal page ratio test hook in multifd., Hao Xiang, 2023/10/25
- [PATCH 13/16] migration/multifd: Add migration option set packet size., Hao Xiang, 2023/10/25
- [PATCH 15/16] util/dsa: Add unit test coverage for Intel DSA task submission and completion., Hao Xiang, 2023/10/25
- [PATCH 16/16] migration/multifd: Add integration tests for multifd with Intel DSA offloading., Hao Xiang, 2023/10/25
- Re: [PATCH 16/16] migration/multifd: Add integration tests for multifd with Intel DSA offloading.,
Fabiano Rosas <=
- [PATCH 14/16] migration/multifd: Enable set packet size migration option., Hao Xiang, 2023/10/25
- Re: [PATCH 00/16] Use Intel DSA accelerator to offload zero page checking in multifd live migration., Fabiano Rosas, 2023/10/30