[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/2] tests/qtest: make more migration pre-copy scenarios run
From: |
Fabiano Rosas |
Subject: |
Re: [PATCH 2/2] tests/qtest: make more migration pre-copy scenarios run non-live |
Date: |
Tue, 18 Apr 2023 16:52:32 -0300 |
Daniel P. Berrangé <berrange@redhat.com> writes:
> There are 27 pre-copy live migration scenarios being tested. In all of
> these we force non-convergance and run for one iteration, then let it
> converge and wait for completion during the second (or following)
> iterations. At 3 mbps bandwidth limit the first iteration takes a very
> long time (~30 seconds).
>
> While it is important to test the migration passes and convergance
> logic, it is overkill to do this for all 27 pre-copy scenarios. The
> TLS migration scenarios in particular are merely exercising different
> code paths during connection establishment.
>
> To optimize time taken, switch most of the test scenarios to run
> non-live (ie guest CPUs paused) with no bandwidth limits. This gives
> a massive speed up for most of the test scenarios.
>
> For test coverage the following scenarios are unchanged
>
> * Precopy with UNIX sockets
> * Precopy with UNIX sockets and dirty ring tracking
> * Precopy with XBZRLE
> * Precopy with multifd
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
...
> - qtest_qmp_eventwait(to, "RESUME");
> + if (!args->live) {
> + qtest_qmp_discard_response(to, "{ 'execute' : 'cont'}");
> + }
> + if (!got_resume) {
> + qtest_qmp_eventwait(to, "RESUME");
> + }
Hi Daniel,
On an aarch64 host I'm sometimes (~30%) seeing a hang here on a TLS test:
../configure --target-list=aarch64-softmmu --enable-gnutls
... ./tests/qtest/migration-test --tap -k -p
/aarch64/migration/precopy/tcp/tls/psk/match
(gdb) bt
#0 0x0000fffff7b33f8c in recv () from /lib64/libpthread.so.0
#1 0x0000aaaaaaac8bf4 in recv (__flags=0, __n=1, __buf=0xffffffffe477, __fd=5)
at /usr/include/bits/socket2.h:44
#2 qmp_fd_receive (fd=5) at ../tests/qtest/libqmp.c:73
#3 0x0000aaaaaaac6dbc in qtest_qmp_receive_dict (s=0xaaaaaaca7d10) at
../tests/qtest/libqtest.c:713
#4 qtest_qmp_eventwait_ref (s=0xaaaaaaca7d10, event=0xaaaaaab26ce8 "RESUME")
at ../tests/qtest/libqtest.c:837
#5 0x0000aaaaaaac6e34 in qtest_qmp_eventwait (s=<optimized out>,
event=<optimized out>) at ../tests/qtest/libqtest.c:850
#6 0x0000aaaaaaabbd90 in test_precopy_common (args=0xffffffffe590,
args@entry=0xffffffffe5a0) at ../tests/qtest/migration-test.c:1393
#7 0x0000aaaaaaabc804 in test_precopy_tcp_tls_psk_match () at
../tests/qtest/migration-test.c:1564
#8 0x0000fffff7c89630 in ?? () from //usr/lib64/libglib-2.0.so.0
...
#15 0x0000fffff7c89a70 in g_test_run_suite () from //usr/lib64/libglib-2.0.so.0
#16 0x0000fffff7c89ae4 in g_test_run () from //usr/lib64/libglib-2.0.so.0
#17 0x0000aaaaaaab7fdc in main (argc=<optimized out>, argv=<optimized out>) at
../tests/qtest/migration-test.c:2642