On Tue, Apr 18, 2023 at 04:52:32PM -0300, Fabiano Rosas wrote: > Daniel P. Berrangé <berra...@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é <berra...@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
Urgh, ok, there must be an unexpected race condition wrt events in my change. Thanks for the stack trace, i'll investigate. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|