* [Qemu-devel] [PATCH v3 0/3] High downtime with 95+ throttle pct @ 2019-07-18 9:17 Yury Kotov 2019-07-18 9:17 ` [Qemu-devel] [PATCH v3 1/3] qemu-thread: Add qemu_cond_timedwait Yury Kotov ` (3 more replies) 0 siblings, 4 replies; 8+ messages in thread From: Yury Kotov @ 2019-07-18 9:17 UTC (permalink / raw) To: Paolo Bonzini, Peter Crosthwaite, Richard Henderson, Juan Quintela, Dr. David Alan Gilbert, Stefan Weil Cc: open list:Overall, yc-core Hi, V3: * Rebase fixes (migrate_set_parameter -> migrate_set_parameter_int) V2: * Added a test * Fixed qemu_cond_timedwait for qsp I wrote a test for migration auto converge and found out a strange thing: 1. Enable auto converge 2. Set max-bandwidth 1Gb/s 3. Set downtime-limit 1ms 4. Run standard test (just writes a byte per page) 5. Wait for converge 6. It's converged with 99% throttle percentage 7. The result downtime was about 300-600ms <<<< It's much higher than expected 1ms. I figured out that cpu_throttle_thread() function sleeps for 100ms+ for high throttle percentage (>=95%) in VCPU thread. And it sleeps even after a cpu kick. Fixed it by using timedwait for ms part of sleep. E.g timedwait(halt_cond, 1ms) + usleep(500). Regards, Yury Yury Kotov (3): qemu-thread: Add qemu_cond_timedwait cpus: Fix throttling during vm_stop tests/migration: Add a test for auto converge cpus.c | 27 ++++++--- include/qemu/thread.h | 18 ++++++ tests/migration-test.c | 119 +++++++++++++++++++++++++++++++++++---- util/qemu-thread-posix.c | 40 +++++++++---- util/qemu-thread-win32.c | 16 ++++++ util/qsp.c | 18 ++++++ 6 files changed, 207 insertions(+), 31 deletions(-) -- 2.22.0 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH v3 1/3] qemu-thread: Add qemu_cond_timedwait 2019-07-18 9:17 [Qemu-devel] [PATCH v3 0/3] High downtime with 95+ throttle pct Yury Kotov @ 2019-07-18 9:17 ` Yury Kotov 2019-07-18 9:17 ` [Qemu-devel] [PATCH v3 2/3] cpus: Fix throttling during vm_stop Yury Kotov ` (2 subsequent siblings) 3 siblings, 0 replies; 8+ messages in thread From: Yury Kotov @ 2019-07-18 9:17 UTC (permalink / raw) To: Paolo Bonzini, Peter Crosthwaite, Richard Henderson, Juan Quintela, Dr. David Alan Gilbert, Stefan Weil Cc: open list:Overall, yc-core Signed-off-by: Yury Kotov <yury-kotov@yandex-team.ru> --- include/qemu/thread.h | 18 ++++++++++++++++++ util/qemu-thread-posix.c | 40 ++++++++++++++++++++++++++++------------ util/qemu-thread-win32.c | 16 ++++++++++++++++ util/qsp.c | 18 ++++++++++++++++++ 4 files changed, 80 insertions(+), 12 deletions(-) diff --git a/include/qemu/thread.h b/include/qemu/thread.h index 55d83a907c..d0cd7b9ae0 100644 --- a/include/qemu/thread.h +++ b/include/qemu/thread.h @@ -34,6 +34,8 @@ typedef void (*QemuRecMutexLockFunc)(QemuRecMutex *m, const char *f, int l); typedef int (*QemuRecMutexTrylockFunc)(QemuRecMutex *m, const char *f, int l); typedef void (*QemuCondWaitFunc)(QemuCond *c, QemuMutex *m, const char *f, int l); +typedef void (*QemuCondTimedWaitFunc)(QemuCond *c, QemuMutex *m, int ms, + const char *f, int l); extern QemuMutexLockFunc qemu_bql_mutex_lock_func; extern QemuMutexLockFunc qemu_mutex_lock_func; @@ -41,6 +43,7 @@ extern QemuMutexTrylockFunc qemu_mutex_trylock_func; extern QemuRecMutexLockFunc qemu_rec_mutex_lock_func; extern QemuRecMutexTrylockFunc qemu_rec_mutex_trylock_func; extern QemuCondWaitFunc qemu_cond_wait_func; +extern QemuCondTimedWaitFunc qemu_cond_timedwait_func; /* convenience macros to bypass the profiler */ #define qemu_mutex_lock__raw(m) \ @@ -63,6 +66,8 @@ extern QemuCondWaitFunc qemu_cond_wait_func; qemu_rec_mutex_trylock_impl(m, __FILE__, __LINE__); #define qemu_cond_wait(c, m) \ qemu_cond_wait_impl(c, m, __FILE__, __LINE__); +#define qemu_cond_timedwait(c, m, ms) \ + qemu_cond_wait_impl(c, m, ms, __FILE__, __LINE__); #else #define qemu_mutex_lock(m) ({ \ QemuMutexLockFunc _f = atomic_read(&qemu_mutex_lock_func); \ @@ -89,6 +94,11 @@ extern QemuCondWaitFunc qemu_cond_wait_func; QemuCondWaitFunc _f = atomic_read(&qemu_cond_wait_func); \ _f(c, m, __FILE__, __LINE__); \ }) + +#define qemu_cond_timedwait(c, m, ms) ({ \ + QemuCondTimedWaitFunc _f = atomic_read(&qemu_cond_timedwait_func); \ + _f(c, m, ms, __FILE__, __LINE__); \ + }) #endif #define qemu_mutex_unlock(mutex) \ @@ -134,12 +144,20 @@ void qemu_cond_signal(QemuCond *cond); void qemu_cond_broadcast(QemuCond *cond); void qemu_cond_wait_impl(QemuCond *cond, QemuMutex *mutex, const char *file, const int line); +void qemu_cond_timedwait_impl(QemuCond *cond, QemuMutex *mutex, int ms, + const char *file, const int line); static inline void (qemu_cond_wait)(QemuCond *cond, QemuMutex *mutex) { qemu_cond_wait(cond, mutex); } +static inline void (qemu_cond_timedwait)(QemuCond *cond, QemuMutex *mutex, + int ms) +{ + qemu_cond_timedwait(cond, mutex, ms); +} + void qemu_sem_init(QemuSemaphore *sem, int init); void qemu_sem_post(QemuSemaphore *sem); void qemu_sem_wait(QemuSemaphore *sem); diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c index 1bf5e65dea..eed777d9ec 100644 --- a/util/qemu-thread-posix.c +++ b/util/qemu-thread-posix.c @@ -36,6 +36,18 @@ static void error_exit(int err, const char *msg) abort(); } +static void compute_abs_deadline(struct timespec *ts, int ms) +{ + struct timeval tv; + gettimeofday(&tv, NULL); + ts->tv_nsec = tv.tv_usec * 1000 + (ms % 1000) * 1000000; + ts->tv_sec = tv.tv_sec + ms / 1000; + if (ts->tv_nsec >= 1000000000) { + ts->tv_sec++; + ts->tv_nsec -= 1000000000; + } +} + void qemu_mutex_init(QemuMutex *mutex) { int err; @@ -164,6 +176,22 @@ void qemu_cond_wait_impl(QemuCond *cond, QemuMutex *mutex, const char *file, con error_exit(err, __func__); } +void qemu_cond_timedwait_impl(QemuCond *cond, QemuMutex *mutex, int ms, + const char *file, const int line) +{ + int err; + struct timespec ts; + + assert(cond->initialized); + trace_qemu_mutex_unlock(mutex, file, line); + compute_abs_deadline(&ts, ms); + err = pthread_cond_timedwait(&cond->cond, &mutex->lock, &ts); + trace_qemu_mutex_locked(mutex, file, line); + if (err && err != ETIMEDOUT) { + error_exit(err, __func__); + } +} + void qemu_sem_init(QemuSemaphore *sem, int init) { int rc; @@ -238,18 +266,6 @@ void qemu_sem_post(QemuSemaphore *sem) #endif } -static void compute_abs_deadline(struct timespec *ts, int ms) -{ - struct timeval tv; - gettimeofday(&tv, NULL); - ts->tv_nsec = tv.tv_usec * 1000 + (ms % 1000) * 1000000; - ts->tv_sec = tv.tv_sec + ms / 1000; - if (ts->tv_nsec >= 1000000000) { - ts->tv_sec++; - ts->tv_nsec -= 1000000000; - } -} - int qemu_sem_timedwait(QemuSemaphore *sem, int ms) { int rc; diff --git a/util/qemu-thread-win32.c b/util/qemu-thread-win32.c index 572f88535d..5faa01cb61 100644 --- a/util/qemu-thread-win32.c +++ b/util/qemu-thread-win32.c @@ -145,6 +145,22 @@ void qemu_cond_wait_impl(QemuCond *cond, QemuMutex *mutex, const char *file, con qemu_mutex_post_lock(mutex, file, line); } +void qemu_cond_timedwait_impl(QemuCond *cond, QemuMutex *mutex, int ms, + const char *file, const int line) +{ + int rc = 0; + + assert(cond->initialized); + trace_qemu_mutex_unlock(mutex, file, line); + if (!SleepConditionVariableSRW(&cond->var, &mutex->lock, ms, 0)) { + rc = GetLastError(); + } + trace_qemu_mutex_locked(mutex, file, line); + if (rc && rc != ERROR_TIMEOUT) { + error_exit(rc, __func__); + } +} + void qemu_sem_init(QemuSemaphore *sem, int init) { /* Manual reset. */ diff --git a/util/qsp.c b/util/qsp.c index 5264c97342..904dcb7436 100644 --- a/util/qsp.c +++ b/util/qsp.c @@ -131,6 +131,7 @@ QemuRecMutexLockFunc qemu_rec_mutex_lock_func = qemu_rec_mutex_lock_impl; QemuRecMutexTrylockFunc qemu_rec_mutex_trylock_func = qemu_rec_mutex_trylock_impl; QemuCondWaitFunc qemu_cond_wait_func = qemu_cond_wait_impl; +QemuCondTimedWaitFunc qemu_cond_timedwait_func = qemu_cond_timedwait_impl; /* * It pays off to _not_ hash callsite->file; hashing a string is slow, and @@ -412,6 +413,21 @@ qsp_cond_wait(QemuCond *cond, QemuMutex *mutex, const char *file, int line) qsp_entry_record(e, t1 - t0); } +static void +qsp_cond_timedwait(QemuCond *cond, QemuMutex *mutex, int ms, + const char *file, int line) +{ + QSPEntry *e; + int64_t t0, t1; + + t0 = get_clock(); + qemu_cond_timedwait_impl(cond, mutex, ms, file, line); + t1 = get_clock(); + + e = qsp_entry_get(cond, file, line, QSP_CONDVAR); + qsp_entry_record(e, t1 - t0); +} + bool qsp_is_enabled(void) { return atomic_read(&qemu_mutex_lock_func) == qsp_mutex_lock; @@ -425,6 +441,7 @@ void qsp_enable(void) atomic_set(&qemu_rec_mutex_lock_func, qsp_rec_mutex_lock); atomic_set(&qemu_rec_mutex_trylock_func, qsp_rec_mutex_trylock); atomic_set(&qemu_cond_wait_func, qsp_cond_wait); + atomic_set(&qemu_cond_timedwait_func, qsp_cond_timedwait); } void qsp_disable(void) @@ -435,6 +452,7 @@ void qsp_disable(void) atomic_set(&qemu_rec_mutex_lock_func, qemu_rec_mutex_lock_impl); atomic_set(&qemu_rec_mutex_trylock_func, qemu_rec_mutex_trylock_impl); atomic_set(&qemu_cond_wait_func, qemu_cond_wait_impl); + atomic_set(&qemu_cond_timedwait_func, qemu_cond_timedwait_impl); } static gint qsp_tree_cmp(gconstpointer ap, gconstpointer bp, gpointer up) -- 2.22.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH v3 2/3] cpus: Fix throttling during vm_stop 2019-07-18 9:17 [Qemu-devel] [PATCH v3 0/3] High downtime with 95+ throttle pct Yury Kotov 2019-07-18 9:17 ` [Qemu-devel] [PATCH v3 1/3] qemu-thread: Add qemu_cond_timedwait Yury Kotov @ 2019-07-18 9:17 ` Yury Kotov 2019-07-18 9:17 ` [Qemu-devel] [PATCH v3 3/3] tests/migration: Add a test for auto converge Yury Kotov 2019-07-18 15:33 ` [Qemu-devel] [PATCH v3 0/3] High downtime with 95+ throttle pct no-reply 3 siblings, 0 replies; 8+ messages in thread From: Yury Kotov @ 2019-07-18 9:17 UTC (permalink / raw) To: Paolo Bonzini, Peter Crosthwaite, Richard Henderson, Juan Quintela, Dr. David Alan Gilbert, Stefan Weil Cc: open list:Overall, yc-core Throttling thread sleeps in VCPU thread. For high throttle percentage this sleep is more than 10ms. E.g. for 60% - 15ms, for 99% - 990ms. vm_stop() kicks all VCPUs and waits for them. It's called at the end of migration and because of the long sleep the migration downtime might be more than 100ms even for downtime-limit 1ms. Use qemu_cond_timedwait for high percentage to wake up during vm_stop. Signed-off-by: Yury Kotov <yury-kotov@yandex-team.ru> --- cpus.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/cpus.c b/cpus.c index 927a00aa90..3baedd554c 100644 --- a/cpus.c +++ b/cpus.c @@ -74,6 +74,8 @@ #endif /* CONFIG_LINUX */ +static QemuMutex qemu_global_mutex; + int64_t max_delay; int64_t max_advance; @@ -777,7 +779,7 @@ static void cpu_throttle_thread(CPUState *cpu, run_on_cpu_data opaque) { double pct; double throttle_ratio; - long sleeptime_ns; + int64_t sleeptime_ns; if (!cpu_throttle_get_percentage()) { return; @@ -785,11 +787,22 @@ static void cpu_throttle_thread(CPUState *cpu, run_on_cpu_data opaque) pct = (double)cpu_throttle_get_percentage()/100; throttle_ratio = pct / (1 - pct); - sleeptime_ns = (long)(throttle_ratio * CPU_THROTTLE_TIMESLICE_NS); - - qemu_mutex_unlock_iothread(); - g_usleep(sleeptime_ns / 1000); /* Convert ns to us for usleep call */ - qemu_mutex_lock_iothread(); + /* Add 1ns to fix double's rounding error (like 0.9999999...) */ + sleeptime_ns = (int64_t)(throttle_ratio * CPU_THROTTLE_TIMESLICE_NS + 1); + + while (sleeptime_ns >= SCALE_MS && !cpu->stop) { + int64_t start, end; + start = qemu_clock_get_ns(QEMU_CLOCK_REALTIME); + qemu_cond_timedwait(cpu->halt_cond, &qemu_global_mutex, + sleeptime_ns / SCALE_MS); + end = qemu_clock_get_ns(QEMU_CLOCK_REALTIME); + sleeptime_ns -= end - start; + } + if (sleeptime_ns >= SCALE_US && !cpu->stop) { + qemu_mutex_unlock_iothread(); + g_usleep(sleeptime_ns / SCALE_US); + qemu_mutex_lock_iothread(); + } atomic_set(&cpu->throttle_thread_scheduled, 0); } @@ -1167,8 +1180,6 @@ static void qemu_init_sigbus(void) } #endif /* !CONFIG_LINUX */ -static QemuMutex qemu_global_mutex; - static QemuThread io_thread; /* cpu creation */ -- 2.22.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH v3 3/3] tests/migration: Add a test for auto converge 2019-07-18 9:17 [Qemu-devel] [PATCH v3 0/3] High downtime with 95+ throttle pct Yury Kotov 2019-07-18 9:17 ` [Qemu-devel] [PATCH v3 1/3] qemu-thread: Add qemu_cond_timedwait Yury Kotov 2019-07-18 9:17 ` [Qemu-devel] [PATCH v3 2/3] cpus: Fix throttling during vm_stop Yury Kotov @ 2019-07-18 9:17 ` Yury Kotov 2019-07-22 17:35 ` Dr. David Alan Gilbert 2019-07-18 15:33 ` [Qemu-devel] [PATCH v3 0/3] High downtime with 95+ throttle pct no-reply 3 siblings, 1 reply; 8+ messages in thread From: Yury Kotov @ 2019-07-18 9:17 UTC (permalink / raw) To: Paolo Bonzini, Peter Crosthwaite, Richard Henderson, Juan Quintela, Dr. David Alan Gilbert, Stefan Weil Cc: open list:Overall, yc-core Signed-off-by: Yury Kotov <yury-kotov@yandex-team.ru> --- tests/migration-test.c | 119 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 108 insertions(+), 11 deletions(-) diff --git a/tests/migration-test.c b/tests/migration-test.c index a4feb9545d..bb69517fc8 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -241,6 +241,17 @@ static int64_t read_ram_property_int(QTestState *who, const char *property) return result; } +static int64_t read_migrate_property_int(QTestState *who, const char *property) +{ + QDict *rsp_return; + int64_t result; + + rsp_return = migrate_query(who); + result = qdict_get_try_int(rsp_return, property, 0); + qobject_unref(rsp_return); + return result; +} + static uint64_t get_migration_pass(QTestState *who) { return read_ram_property_int(who, "dirty-sync-count"); @@ -255,20 +266,22 @@ static void read_blocktime(QTestState *who) qobject_unref(rsp_return); } +static bool check_migration_status(QTestState *who, const char *status) +{ + bool completed; + char *current_status; + + current_status = migrate_query_status(who); + completed = strcmp(current_status, status) == 0; + g_assert_cmpstr(current_status, !=, "failed"); + g_free(current_status); + return completed; +} + static void wait_for_migration_status(QTestState *who, const char *goal) { - while (true) { - bool completed; - char *status; - - status = migrate_query_status(who); - completed = strcmp(status, goal) == 0; - g_assert_cmpstr(status, !=, "failed"); - g_free(status); - if (completed) { - return; - } + while (!check_migration_status(who, goal)) { usleep(1000); } } @@ -1121,6 +1134,89 @@ static void test_migrate_fd_proto(void) test_migrate_end(from, to, true); } +static void test_migrate_auto_converge(void) +{ + char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); + QTestState *from, *to; + int i; + int64_t remaining, downtime; + + /* + * We want the test to be fast enough, but stable. + * Throttle percentages are chosen to cover all cases (init, increment, max) + */ + static const int64_t expected_pcts[] = { 0, 1, 51, 98 }; + const int64_t max_bandwidth = 200000000; /* ~200Mb/s */ + const int64_t downtime_limit = 50; /* 50ms */ + /* + * We migrate through unix-socket (> 500Mb/s). + * Thus, expected migration speed ~= bandwidth limit (< 500Mb/s). + * So, we can predict expected_threshold + */ + const int64_t expected_threshold = max_bandwidth * downtime_limit / 1000; + + if (test_migrate_start(&from, &to, uri, false, false)) { + return; + } + + migrate_set_capability(from, "auto-converge", true); + migrate_set_parameter_int(from, "cpu-throttle-initial", expected_pcts[1]); + migrate_set_parameter_int(from, "cpu-throttle-increment", + expected_pcts[2] - expected_pcts[1]); + migrate_set_parameter_int(from, "max-cpu-throttle", expected_pcts[3]); + + migrate_set_parameter_int(from, "max-bandwidth", max_bandwidth); + migrate_set_parameter_int(from, "downtime-limit", downtime_limit); + + /* To check remaining size after precopy */ + migrate_set_capability(from, "pause-before-switchover", true); + + /* Wait for the first serial output from the source */ + wait_for_serial("src_serial"); + + migrate(from, uri, "{}"); + + for (i = 0; i < ARRAY_SIZE(expected_pcts); i++) { + int64_t pct; + pct = read_migrate_property_int(from, "cpu-throttle-percentage"); + g_assert_cmpint(pct, ==, expected_pcts[i]); + while (pct == expected_pcts[i] && !got_stop) { + usleep(1000); + pct = read_migrate_property_int(from, "cpu-throttle-percentage"); + } + /* We break out of this loop only in paused state */ + if (got_stop || i + 1 == ARRAY_SIZE(expected_pcts)) { + /* Check unexpected throttle percentage change */ + g_assert_true(got_stop); + /* Check unexpected converge */ + g_assert_cmpint(i + 1, ==, ARRAY_SIZE(expected_pcts)); + g_assert_true(check_migration_status(from, "pre-switchover")); + } + } + + remaining = read_ram_property_int(from, "remaining"); + g_assert_cmpint(remaining, <, expected_threshold); + + wait_command(from, "{ 'execute': 'migrate-continue' , 'arguments':" + " { 'state': 'pre-switchover' } }"); + + qtest_qmp_eventwait(to, "RESUME"); + + wait_for_serial("dest_serial"); + wait_for_migration_complete(from); + + downtime = read_migrate_property_int(from, "downtime"); + /* + * Actual downtime may be greater than downtime limit, + * but the difference should be small enough (~20ms) + */ + g_assert_cmpint(downtime, <, downtime_limit + 20); + + g_free(uri); + + test_migrate_end(from, to, true); +} + int main(int argc, char **argv) { char template[] = "/tmp/migration-test-XXXXXX"; @@ -1176,6 +1272,7 @@ int main(int argc, char **argv) /* qtest_add_func("/migration/ignore_shared", test_ignore_shared); */ qtest_add_func("/migration/xbzrle/unix", test_xbzrle_unix); qtest_add_func("/migration/fd_proto", test_migrate_fd_proto); + qtest_add_func("/migration/auto_converge", test_migrate_auto_converge); ret = g_test_run(); -- 2.22.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH v3 3/3] tests/migration: Add a test for auto converge 2019-07-18 9:17 ` [Qemu-devel] [PATCH v3 3/3] tests/migration: Add a test for auto converge Yury Kotov @ 2019-07-22 17:35 ` Dr. David Alan Gilbert 2019-07-23 8:54 ` Yury Kotov 0 siblings, 1 reply; 8+ messages in thread From: Dr. David Alan Gilbert @ 2019-07-22 17:35 UTC (permalink / raw) To: Yury Kotov Cc: Juan Quintela, Stefan Weil, Peter Crosthwaite, open list:Overall, yc-core, Paolo Bonzini, Richard Henderson * Yury Kotov (yury-kotov@yandex-team.ru) wrote: > Signed-off-by: Yury Kotov <yury-kotov@yandex-team.ru> This looks OK to me, but have you tried it on a really really overloaded host? I worry that you might skip some of the percentage steps or not hit the bandwidth on the small overloaded VMs we get in CI. Dave > --- > tests/migration-test.c | 119 +++++++++++++++++++++++++++++++++++++---- > 1 file changed, 108 insertions(+), 11 deletions(-) > > diff --git a/tests/migration-test.c b/tests/migration-test.c > index a4feb9545d..bb69517fc8 100644 > --- a/tests/migration-test.c > +++ b/tests/migration-test.c > @@ -241,6 +241,17 @@ static int64_t read_ram_property_int(QTestState *who, const char *property) > return result; > } > > +static int64_t read_migrate_property_int(QTestState *who, const char *property) > +{ > + QDict *rsp_return; > + int64_t result; > + > + rsp_return = migrate_query(who); > + result = qdict_get_try_int(rsp_return, property, 0); > + qobject_unref(rsp_return); > + return result; > +} > + > static uint64_t get_migration_pass(QTestState *who) > { > return read_ram_property_int(who, "dirty-sync-count"); > @@ -255,20 +266,22 @@ static void read_blocktime(QTestState *who) > qobject_unref(rsp_return); > } > > +static bool check_migration_status(QTestState *who, const char *status) > +{ > + bool completed; > + char *current_status; > + > + current_status = migrate_query_status(who); > + completed = strcmp(current_status, status) == 0; > + g_assert_cmpstr(current_status, !=, "failed"); > + g_free(current_status); > + return completed; > +} > + > static void wait_for_migration_status(QTestState *who, > const char *goal) > { > - while (true) { > - bool completed; > - char *status; > - > - status = migrate_query_status(who); > - completed = strcmp(status, goal) == 0; > - g_assert_cmpstr(status, !=, "failed"); > - g_free(status); > - if (completed) { > - return; > - } > + while (!check_migration_status(who, goal)) { > usleep(1000); > } > } > @@ -1121,6 +1134,89 @@ static void test_migrate_fd_proto(void) > test_migrate_end(from, to, true); > } > > +static void test_migrate_auto_converge(void) > +{ > + char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); > + QTestState *from, *to; > + int i; > + int64_t remaining, downtime; > + > + /* > + * We want the test to be fast enough, but stable. > + * Throttle percentages are chosen to cover all cases (init, increment, max) > + */ > + static const int64_t expected_pcts[] = { 0, 1, 51, 98 }; > + const int64_t max_bandwidth = 200000000; /* ~200Mb/s */ > + const int64_t downtime_limit = 50; /* 50ms */ > + /* > + * We migrate through unix-socket (> 500Mb/s). > + * Thus, expected migration speed ~= bandwidth limit (< 500Mb/s). > + * So, we can predict expected_threshold > + */ > + const int64_t expected_threshold = max_bandwidth * downtime_limit / 1000; > + > + if (test_migrate_start(&from, &to, uri, false, false)) { > + return; > + } > + > + migrate_set_capability(from, "auto-converge", true); > + migrate_set_parameter_int(from, "cpu-throttle-initial", expected_pcts[1]); > + migrate_set_parameter_int(from, "cpu-throttle-increment", > + expected_pcts[2] - expected_pcts[1]); > + migrate_set_parameter_int(from, "max-cpu-throttle", expected_pcts[3]); > + > + migrate_set_parameter_int(from, "max-bandwidth", max_bandwidth); > + migrate_set_parameter_int(from, "downtime-limit", downtime_limit); > + > + /* To check remaining size after precopy */ > + migrate_set_capability(from, "pause-before-switchover", true); > + > + /* Wait for the first serial output from the source */ > + wait_for_serial("src_serial"); > + > + migrate(from, uri, "{}"); > + > + for (i = 0; i < ARRAY_SIZE(expected_pcts); i++) { > + int64_t pct; > + pct = read_migrate_property_int(from, "cpu-throttle-percentage"); > + g_assert_cmpint(pct, ==, expected_pcts[i]); > + while (pct == expected_pcts[i] && !got_stop) { > + usleep(1000); > + pct = read_migrate_property_int(from, "cpu-throttle-percentage"); > + } > + /* We break out of this loop only in paused state */ > + if (got_stop || i + 1 == ARRAY_SIZE(expected_pcts)) { > + /* Check unexpected throttle percentage change */ > + g_assert_true(got_stop); > + /* Check unexpected converge */ > + g_assert_cmpint(i + 1, ==, ARRAY_SIZE(expected_pcts)); > + g_assert_true(check_migration_status(from, "pre-switchover")); > + } > + } > + > + remaining = read_ram_property_int(from, "remaining"); > + g_assert_cmpint(remaining, <, expected_threshold); > + > + wait_command(from, "{ 'execute': 'migrate-continue' , 'arguments':" > + " { 'state': 'pre-switchover' } }"); > + > + qtest_qmp_eventwait(to, "RESUME"); > + > + wait_for_serial("dest_serial"); > + wait_for_migration_complete(from); > + > + downtime = read_migrate_property_int(from, "downtime"); > + /* > + * Actual downtime may be greater than downtime limit, > + * but the difference should be small enough (~20ms) > + */ > + g_assert_cmpint(downtime, <, downtime_limit + 20); > + > + g_free(uri); > + > + test_migrate_end(from, to, true); > +} > + > int main(int argc, char **argv) > { > char template[] = "/tmp/migration-test-XXXXXX"; > @@ -1176,6 +1272,7 @@ int main(int argc, char **argv) > /* qtest_add_func("/migration/ignore_shared", test_ignore_shared); */ > qtest_add_func("/migration/xbzrle/unix", test_xbzrle_unix); > qtest_add_func("/migration/fd_proto", test_migrate_fd_proto); > + qtest_add_func("/migration/auto_converge", test_migrate_auto_converge); > > ret = g_test_run(); > > -- > 2.22.0 > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH v3 3/3] tests/migration: Add a test for auto converge 2019-07-22 17:35 ` Dr. David Alan Gilbert @ 2019-07-23 8:54 ` Yury Kotov 2019-07-23 10:23 ` Dr. David Alan Gilbert 0 siblings, 1 reply; 8+ messages in thread From: Yury Kotov @ 2019-07-23 8:54 UTC (permalink / raw) To: Dr. David Alan Gilbert Cc: Peter Crosthwaite, Stefan Weil, Juan Quintela, open list:Overall, yc-core, Paolo Bonzini, Richard Henderson 22.07.2019, 20:35, "Dr. David Alan Gilbert" <dgilbert@redhat.com>: > * Yury Kotov (yury-kotov@yandex-team.ru) wrote: >> Signed-off-by: Yury Kotov <yury-kotov@yandex-team.ru> > > This looks OK to me, but have you tried it on a really really overloaded > host? > I worry that you might skip some of the percentage steps or not hit the > bandwidth on the small overloaded VMs we get in CI. No, I haven't tried. I saw patchew's logs and you're absolutely right - such problem exists. Now I'm looking for a way to fix it. > > Dave > >> --- >> tests/migration-test.c | 119 +++++++++++++++++++++++++++++++++++++---- >> 1 file changed, 108 insertions(+), 11 deletions(-) >> >> diff --git a/tests/migration-test.c b/tests/migration-test.c >> index a4feb9545d..bb69517fc8 100644 >> --- a/tests/migration-test.c >> +++ b/tests/migration-test.c >> @@ -241,6 +241,17 @@ static int64_t read_ram_property_int(QTestState *who, const char *property) >> return result; >> } >> >> +static int64_t read_migrate_property_int(QTestState *who, const char *property) >> +{ >> + QDict *rsp_return; >> + int64_t result; >> + >> + rsp_return = migrate_query(who); >> + result = qdict_get_try_int(rsp_return, property, 0); >> + qobject_unref(rsp_return); >> + return result; >> +} >> + >> static uint64_t get_migration_pass(QTestState *who) >> { >> return read_ram_property_int(who, "dirty-sync-count"); >> @@ -255,20 +266,22 @@ static void read_blocktime(QTestState *who) >> qobject_unref(rsp_return); >> } >> >> +static bool check_migration_status(QTestState *who, const char *status) >> +{ >> + bool completed; >> + char *current_status; >> + >> + current_status = migrate_query_status(who); >> + completed = strcmp(current_status, status) == 0; >> + g_assert_cmpstr(current_status, !=, "failed"); >> + g_free(current_status); >> + return completed; >> +} >> + >> static void wait_for_migration_status(QTestState *who, >> const char *goal) >> { >> - while (true) { >> - bool completed; >> - char *status; >> - >> - status = migrate_query_status(who); >> - completed = strcmp(status, goal) == 0; >> - g_assert_cmpstr(status, !=, "failed"); >> - g_free(status); >> - if (completed) { >> - return; >> - } >> + while (!check_migration_status(who, goal)) { >> usleep(1000); >> } >> } >> @@ -1121,6 +1134,89 @@ static void test_migrate_fd_proto(void) >> test_migrate_end(from, to, true); >> } >> >> +static void test_migrate_auto_converge(void) >> +{ >> + char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); >> + QTestState *from, *to; >> + int i; >> + int64_t remaining, downtime; >> + >> + /* >> + * We want the test to be fast enough, but stable. >> + * Throttle percentages are chosen to cover all cases (init, increment, max) >> + */ >> + static const int64_t expected_pcts[] = { 0, 1, 51, 98 }; >> + const int64_t max_bandwidth = 200000000; /* ~200Mb/s */ >> + const int64_t downtime_limit = 50; /* 50ms */ >> + /* >> + * We migrate through unix-socket (> 500Mb/s). >> + * Thus, expected migration speed ~= bandwidth limit (< 500Mb/s). >> + * So, we can predict expected_threshold >> + */ >> + const int64_t expected_threshold = max_bandwidth * downtime_limit / 1000; >> + >> + if (test_migrate_start(&from, &to, uri, false, false)) { >> + return; >> + } >> + >> + migrate_set_capability(from, "auto-converge", true); >> + migrate_set_parameter_int(from, "cpu-throttle-initial", expected_pcts[1]); >> + migrate_set_parameter_int(from, "cpu-throttle-increment", >> + expected_pcts[2] - expected_pcts[1]); >> + migrate_set_parameter_int(from, "max-cpu-throttle", expected_pcts[3]); >> + >> + migrate_set_parameter_int(from, "max-bandwidth", max_bandwidth); >> + migrate_set_parameter_int(from, "downtime-limit", downtime_limit); >> + >> + /* To check remaining size after precopy */ >> + migrate_set_capability(from, "pause-before-switchover", true); >> + >> + /* Wait for the first serial output from the source */ >> + wait_for_serial("src_serial"); >> + >> + migrate(from, uri, "{}"); >> + >> + for (i = 0; i < ARRAY_SIZE(expected_pcts); i++) { >> + int64_t pct; >> + pct = read_migrate_property_int(from, "cpu-throttle-percentage"); >> + g_assert_cmpint(pct, ==, expected_pcts[i]); >> + while (pct == expected_pcts[i] && !got_stop) { >> + usleep(1000); >> + pct = read_migrate_property_int(from, "cpu-throttle-percentage"); >> + } >> + /* We break out of this loop only in paused state */ >> + if (got_stop || i + 1 == ARRAY_SIZE(expected_pcts)) { >> + /* Check unexpected throttle percentage change */ >> + g_assert_true(got_stop); >> + /* Check unexpected converge */ >> + g_assert_cmpint(i + 1, ==, ARRAY_SIZE(expected_pcts)); >> + g_assert_true(check_migration_status(from, "pre-switchover")); >> + } >> + } >> + >> + remaining = read_ram_property_int(from, "remaining"); >> + g_assert_cmpint(remaining, <, expected_threshold); >> + >> + wait_command(from, "{ 'execute': 'migrate-continue' , 'arguments':" >> + " { 'state': 'pre-switchover' } }"); >> + >> + qtest_qmp_eventwait(to, "RESUME"); >> + >> + wait_for_serial("dest_serial"); >> + wait_for_migration_complete(from); >> + >> + downtime = read_migrate_property_int(from, "downtime"); >> + /* >> + * Actual downtime may be greater than downtime limit, >> + * but the difference should be small enough (~20ms) >> + */ >> + g_assert_cmpint(downtime, <, downtime_limit + 20); >> + >> + g_free(uri); >> + >> + test_migrate_end(from, to, true); >> +} >> + >> int main(int argc, char **argv) >> { >> char template[] = "/tmp/migration-test-XXXXXX"; >> @@ -1176,6 +1272,7 @@ int main(int argc, char **argv) >> /* qtest_add_func("/migration/ignore_shared", test_ignore_shared); */ >> qtest_add_func("/migration/xbzrle/unix", test_xbzrle_unix); >> qtest_add_func("/migration/fd_proto", test_migrate_fd_proto); >> + qtest_add_func("/migration/auto_converge", test_migrate_auto_converge); >> >> ret = g_test_run(); >> >> -- >> 2.22.0 > -- > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK Regards, Yury ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH v3 3/3] tests/migration: Add a test for auto converge 2019-07-23 8:54 ` Yury Kotov @ 2019-07-23 10:23 ` Dr. David Alan Gilbert 0 siblings, 0 replies; 8+ messages in thread From: Dr. David Alan Gilbert @ 2019-07-23 10:23 UTC (permalink / raw) To: Yury Kotov Cc: Peter Crosthwaite, Stefan Weil, Juan Quintela, open list:Overall, yc-core, Paolo Bonzini, Richard Henderson * Yury Kotov (yury-kotov@yandex-team.ru) wrote: > 22.07.2019, 20:35, "Dr. David Alan Gilbert" <dgilbert@redhat.com>: > > * Yury Kotov (yury-kotov@yandex-team.ru) wrote: > >> Signed-off-by: Yury Kotov <yury-kotov@yandex-team.ru> > > > > This looks OK to me, but have you tried it on a really really overloaded > > host? > > I worry that you might skip some of the percentage steps or not hit the > > bandwidth on the small overloaded VMs we get in CI. > > No, I haven't tried. I saw patchew's logs and you're absolutely right - such > problem exists. Now I'm looking for a way to fix it. Yes, we've hit that type of thing before; make sure it's happy with 1 CPU that's already got 2 or 3 other things on it. But as much as possible try and make it survive if it's really slow. Dave > > > > Dave > > > >> --- > >> tests/migration-test.c | 119 +++++++++++++++++++++++++++++++++++++---- > >> 1 file changed, 108 insertions(+), 11 deletions(-) > >> > >> diff --git a/tests/migration-test.c b/tests/migration-test.c > >> index a4feb9545d..bb69517fc8 100644 > >> --- a/tests/migration-test.c > >> +++ b/tests/migration-test.c > >> @@ -241,6 +241,17 @@ static int64_t read_ram_property_int(QTestState *who, const char *property) > >> return result; > >> } > >> > >> +static int64_t read_migrate_property_int(QTestState *who, const char *property) > >> +{ > >> + QDict *rsp_return; > >> + int64_t result; > >> + > >> + rsp_return = migrate_query(who); > >> + result = qdict_get_try_int(rsp_return, property, 0); > >> + qobject_unref(rsp_return); > >> + return result; > >> +} > >> + > >> static uint64_t get_migration_pass(QTestState *who) > >> { > >> return read_ram_property_int(who, "dirty-sync-count"); > >> @@ -255,20 +266,22 @@ static void read_blocktime(QTestState *who) > >> qobject_unref(rsp_return); > >> } > >> > >> +static bool check_migration_status(QTestState *who, const char *status) > >> +{ > >> + bool completed; > >> + char *current_status; > >> + > >> + current_status = migrate_query_status(who); > >> + completed = strcmp(current_status, status) == 0; > >> + g_assert_cmpstr(current_status, !=, "failed"); > >> + g_free(current_status); > >> + return completed; > >> +} > >> + > >> static void wait_for_migration_status(QTestState *who, > >> const char *goal) > >> { > >> - while (true) { > >> - bool completed; > >> - char *status; > >> - > >> - status = migrate_query_status(who); > >> - completed = strcmp(status, goal) == 0; > >> - g_assert_cmpstr(status, !=, "failed"); > >> - g_free(status); > >> - if (completed) { > >> - return; > >> - } > >> + while (!check_migration_status(who, goal)) { > >> usleep(1000); > >> } > >> } > >> @@ -1121,6 +1134,89 @@ static void test_migrate_fd_proto(void) > >> test_migrate_end(from, to, true); > >> } > >> > >> +static void test_migrate_auto_converge(void) > >> +{ > >> + char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); > >> + QTestState *from, *to; > >> + int i; > >> + int64_t remaining, downtime; > >> + > >> + /* > >> + * We want the test to be fast enough, but stable. > >> + * Throttle percentages are chosen to cover all cases (init, increment, max) > >> + */ > >> + static const int64_t expected_pcts[] = { 0, 1, 51, 98 }; > >> + const int64_t max_bandwidth = 200000000; /* ~200Mb/s */ > >> + const int64_t downtime_limit = 50; /* 50ms */ > >> + /* > >> + * We migrate through unix-socket (> 500Mb/s). > >> + * Thus, expected migration speed ~= bandwidth limit (< 500Mb/s). > >> + * So, we can predict expected_threshold > >> + */ > >> + const int64_t expected_threshold = max_bandwidth * downtime_limit / 1000; > >> + > >> + if (test_migrate_start(&from, &to, uri, false, false)) { > >> + return; > >> + } > >> + > >> + migrate_set_capability(from, "auto-converge", true); > >> + migrate_set_parameter_int(from, "cpu-throttle-initial", expected_pcts[1]); > >> + migrate_set_parameter_int(from, "cpu-throttle-increment", > >> + expected_pcts[2] - expected_pcts[1]); > >> + migrate_set_parameter_int(from, "max-cpu-throttle", expected_pcts[3]); > >> + > >> + migrate_set_parameter_int(from, "max-bandwidth", max_bandwidth); > >> + migrate_set_parameter_int(from, "downtime-limit", downtime_limit); > >> + > >> + /* To check remaining size after precopy */ > >> + migrate_set_capability(from, "pause-before-switchover", true); > >> + > >> + /* Wait for the first serial output from the source */ > >> + wait_for_serial("src_serial"); > >> + > >> + migrate(from, uri, "{}"); > >> + > >> + for (i = 0; i < ARRAY_SIZE(expected_pcts); i++) { > >> + int64_t pct; > >> + pct = read_migrate_property_int(from, "cpu-throttle-percentage"); > >> + g_assert_cmpint(pct, ==, expected_pcts[i]); > >> + while (pct == expected_pcts[i] && !got_stop) { > >> + usleep(1000); > >> + pct = read_migrate_property_int(from, "cpu-throttle-percentage"); > >> + } > >> + /* We break out of this loop only in paused state */ > >> + if (got_stop || i + 1 == ARRAY_SIZE(expected_pcts)) { > >> + /* Check unexpected throttle percentage change */ > >> + g_assert_true(got_stop); > >> + /* Check unexpected converge */ > >> + g_assert_cmpint(i + 1, ==, ARRAY_SIZE(expected_pcts)); > >> + g_assert_true(check_migration_status(from, "pre-switchover")); > >> + } > >> + } > >> + > >> + remaining = read_ram_property_int(from, "remaining"); > >> + g_assert_cmpint(remaining, <, expected_threshold); > >> + > >> + wait_command(from, "{ 'execute': 'migrate-continue' , 'arguments':" > >> + " { 'state': 'pre-switchover' } }"); > >> + > >> + qtest_qmp_eventwait(to, "RESUME"); > >> + > >> + wait_for_serial("dest_serial"); > >> + wait_for_migration_complete(from); > >> + > >> + downtime = read_migrate_property_int(from, "downtime"); > >> + /* > >> + * Actual downtime may be greater than downtime limit, > >> + * but the difference should be small enough (~20ms) > >> + */ > >> + g_assert_cmpint(downtime, <, downtime_limit + 20); > >> + > >> + g_free(uri); > >> + > >> + test_migrate_end(from, to, true); > >> +} > >> + > >> int main(int argc, char **argv) > >> { > >> char template[] = "/tmp/migration-test-XXXXXX"; > >> @@ -1176,6 +1272,7 @@ int main(int argc, char **argv) > >> /* qtest_add_func("/migration/ignore_shared", test_ignore_shared); */ > >> qtest_add_func("/migration/xbzrle/unix", test_xbzrle_unix); > >> qtest_add_func("/migration/fd_proto", test_migrate_fd_proto); > >> + qtest_add_func("/migration/auto_converge", test_migrate_auto_converge); > >> > >> ret = g_test_run(); > >> > >> -- > >> 2.22.0 > > -- > > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK > > Regards, > Yury -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH v3 0/3] High downtime with 95+ throttle pct 2019-07-18 9:17 [Qemu-devel] [PATCH v3 0/3] High downtime with 95+ throttle pct Yury Kotov ` (2 preceding siblings ...) 2019-07-18 9:17 ` [Qemu-devel] [PATCH v3 3/3] tests/migration: Add a test for auto converge Yury Kotov @ 2019-07-18 15:33 ` no-reply 3 siblings, 0 replies; 8+ messages in thread From: no-reply @ 2019-07-18 15:33 UTC (permalink / raw) To: yury-kotov Cc: quintela, sw, crosthwaite.peter, dgilbert, qemu-devel, yc-core, pbonzini, rth Patchew URL: https://patchew.org/QEMU/20190718091726.9874-1-yury-kotov@yandex-team.ru/ Hi, This series failed the asan build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash make docker-image-fedora V=1 NETWORK=1 time make docker-test-debug@fedora TARGET_LIST=x86_64-softmmu J=14 NETWORK=1 === TEST SCRIPT END === PASS 1 fdc-test /x86_64/fdc/cmos PASS 2 fdc-test /x86_64/fdc/no_media_on_start PASS 3 fdc-test /x86_64/fdc/read_without_media ==11780==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 fdc-test /x86_64/fdc/media_change PASS 5 fdc-test /x86_64/fdc/sense_interrupt PASS 6 fdc-test /x86_64/fdc/relative_seek PASS 7 fdc-test /x86_64/fdc/read_id PASS 8 fdc-test /x86_64/fdc/verify PASS 9 fdc-test /x86_64/fdc/media_insert ==11788==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==11788==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffd9c17a000; bottom 0x7f402d2f8000; size: 0x00bd6ee82000 (813609525248) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 1 test-coroutine /basic/no-dangling-access --- PASS 12 test-aio /aio/event/flush PASS 13 test-aio /aio/event/wait/no-flush-cb PASS 11 fdc-test /x86_64/fdc/read_no_dma_18 ==11808==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 14 test-aio /aio/timer/schedule PASS 15 test-aio /aio/coroutine/queue-chaining PASS 16 test-aio /aio-gsource/flush --- PASS 27 test-aio /aio-gsource/event/wait/no-flush-cb PASS 28 test-aio /aio-gsource/timer/schedule MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-aio-multithread -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-aio-multithread" ==11814==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-aio-multithread /aio/multi/lifecycle PASS 2 test-aio-multithread /aio/multi/schedule PASS 12 fdc-test /x86_64/fdc/read_no_dma_19 PASS 13 fdc-test /x86_64/fdc/fuzz-registers PASS 3 test-aio-multithread /aio/multi/mutex/contended MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/ide-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="ide-test" ==11842==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 ide-test /x86_64/ide/identify ==11848==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 test-aio-multithread /aio/multi/mutex/handoff PASS 2 ide-test /x86_64/ide/flush ==11859==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 test-aio-multithread /aio/multi/mutex/mcs PASS 3 ide-test /x86_64/ide/bmdma/simple_rw ==11870==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 6 test-aio-multithread /aio/multi/mutex/pthread PASS 4 ide-test /x86_64/ide/bmdma/trim MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-throttle -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-throttle" ==11877==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==11879==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-throttle /throttle/leak_bucket PASS 2 test-throttle /throttle/compute_wait PASS 3 test-throttle /throttle/init --- MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-thread-pool -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-thread-pool" PASS 5 ide-test /x86_64/ide/bmdma/short_prdt PASS 1 test-thread-pool /thread-pool/submit ==11889==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 test-thread-pool /thread-pool/submit-aio PASS 3 test-thread-pool /thread-pool/submit-co PASS 4 test-thread-pool /thread-pool/submit-many ==11891==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 6 ide-test /x86_64/ide/bmdma/one_sector_short_prdt ==11962==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 test-thread-pool /thread-pool/cancel PASS 7 ide-test /x86_64/ide/bmdma/long_prdt ==11969==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==11969==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffd75f3f000; bottom 0x7f53efbba000; size: 0x00a986385000 (728101310464) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 8 ide-test /x86_64/ide/bmdma/no_busmaster --- PASS 2 test-hbitmap /hbitmap/size/0 PASS 3 test-hbitmap /hbitmap/size/unaligned PASS 4 test-hbitmap /hbitmap/iter/empty ==11981==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 test-hbitmap /hbitmap/iter/partial PASS 10 ide-test /x86_64/ide/flush/empty_drive PASS 6 test-hbitmap /hbitmap/iter/granularity --- PASS 10 test-hbitmap /hbitmap/set/all PASS 11 test-hbitmap /hbitmap/set/one PASS 12 test-hbitmap /hbitmap/set/two-elem ==11990==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 13 test-hbitmap /hbitmap/set/general PASS 14 test-hbitmap /hbitmap/set/twice PASS 15 test-hbitmap /hbitmap/set/overlap PASS 16 test-hbitmap /hbitmap/reset/empty PASS 11 ide-test /x86_64/ide/flush/retry_pci PASS 17 test-hbitmap /hbitmap/reset/general ==11996==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 18 test-hbitmap /hbitmap/reset/all PASS 19 test-hbitmap /hbitmap/truncate/nop PASS 20 test-hbitmap /hbitmap/truncate/grow/negligible --- PASS 29 test-hbitmap /hbitmap/truncate/shrink/large PASS 30 test-hbitmap /hbitmap/meta/zero PASS 12 ide-test /x86_64/ide/flush/retry_isa ==12002==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 13 ide-test /x86_64/ide/cdrom/pio ==12008==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 14 ide-test /x86_64/ide/cdrom/pio_large PASS 31 test-hbitmap /hbitmap/meta/one PASS 32 test-hbitmap /hbitmap/meta/byte PASS 33 test-hbitmap /hbitmap/meta/word ==12014==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 15 ide-test /x86_64/ide/cdrom/dma MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/ahci-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="ahci-test" PASS 34 test-hbitmap /hbitmap/meta/sector PASS 35 test-hbitmap /hbitmap/serialize/align ==12028==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 ahci-test /x86_64/ahci/sanity PASS 36 test-hbitmap /hbitmap/serialize/basic PASS 37 test-hbitmap /hbitmap/serialize/part --- PASS 42 test-hbitmap /hbitmap/next_dirty_area/next_dirty_area_1 PASS 43 test-hbitmap /hbitmap/next_dirty_area/next_dirty_area_4 MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-bdrv-drain -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bdrv-drain" ==12034==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12037==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-bdrv-drain /bdrv-drain/nested PASS 2 test-bdrv-drain /bdrv-drain/multiparent PASS 3 test-bdrv-drain /bdrv-drain/set_aio_context --- PASS 39 test-bdrv-drain /bdrv-drain/attach/drain PASS 2 ahci-test /x86_64/ahci/pci_spec MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-bdrv-graph-mod -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bdrv-graph-mod" ==12083==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-bdrv-graph-mod /bdrv-graph-mod/update-perm-tree PASS 2 test-bdrv-graph-mod /bdrv-graph-mod/should-update-child ==12081==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-blockjob -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-blockjob" ==12092==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-blockjob /blockjob/ids PASS 2 test-blockjob /blockjob/cancel/created PASS 3 test-blockjob /blockjob/cancel/running --- PASS 8 test-blockjob /blockjob/cancel/concluded PASS 3 ahci-test /x86_64/ahci/pci_enable MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-blockjob-txn -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-blockjob-txn" ==12099==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-blockjob-txn /single/success PASS 2 test-blockjob-txn /single/failure PASS 3 test-blockjob-txn /single/cancel --- PASS 5 test-blockjob-txn /pair/failure PASS 6 test-blockjob-txn /pair/cancel PASS 7 test-blockjob-txn /pair/fail-cancel-race ==12097==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-block-backend -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-block-backend" ==12108==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-block-backend /block-backend/drain_aio_error PASS 2 test-block-backend /block-backend/drain_all_aio_error PASS 4 ahci-test /x86_64/ahci/hba_spec MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-block-iothread -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-block-iothread" ==12115==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-block-iothread /sync-op/pread PASS 2 test-block-iothread /sync-op/pwrite PASS 3 test-block-iothread /sync-op/load_vmstate --- PASS 14 test-block-iothread /propagate/basic PASS 15 test-block-iothread /propagate/diamond PASS 16 test-block-iothread /propagate/mirror ==12113==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-image-locking -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-image-locking" ==12141==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-image-locking /image-locking/basic PASS 2 test-image-locking /image-locking/set-perm-abort PASS 5 ahci-test /x86_64/ahci/hba_enable MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-x86-cpuid -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-x86-cpuid" PASS 1 test-x86-cpuid /cpuid/topology/basic MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-xbzrle -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-xbzrle" ==12145==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-xbzrle /xbzrle/uleb PASS 2 test-xbzrle /xbzrle/encode_decode_zero PASS 3 test-xbzrle /xbzrle/encode_decode_unchanged --- PASS 15 test-vmstate /vmstate/array/ptr/prim/0/load PASS 16 test-vmstate /vmstate/qtailq/save/saveq PASS 17 test-vmstate /vmstate/qtailq/load/loadq ==12158==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-cutils -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-cutils" PASS 1 test-cutils /cutils/parse_uint/null PASS 2 test-cutils /cutils/parse_uint/empty --- PASS 9 test-int128 /int128/int128_gt PASS 10 test-int128 /int128/int128_rshift MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/rcutorture -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="rcutorture" ==12182==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 rcutorture /rcu/torture/1reader PASS 8 ahci-test /x86_64/ahci/reset ==12219==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 rcutorture /rcu/torture/10readers MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-rcu-list -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-rcu-list" ==12219==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffd0951f000; bottom 0x7fdc38ffe000; size: 0x0020d0521000 (140933992448) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 9 ahci-test /x86_64/ahci/io/pio/lba28/simple/zero PASS 1 test-rcu-list /rcu/qlist/single-threaded ==12232==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12232==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffdefb01000; bottom 0x7fb43bbfe000; size: 0x0049b3f03000 (316551475200) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 2 test-rcu-list /rcu/qlist/short-few PASS 10 ahci-test /x86_64/ahci/io/pio/lba28/simple/low ==12265==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12265==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffd76fe7000; bottom 0x7f89699fe000; size: 0x00740d5e9000 (498440507392) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 11 ahci-test /x86_64/ahci/io/pio/lba28/simple/high ==12271==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 test-rcu-list /rcu/qlist/long-many MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-rcu-simpleq -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-rcu-simpleq" ==12271==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffee33c2000; bottom 0x7f742a3fe000; size: 0x008ab8fc4000 (595809026048) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 12 ahci-test /x86_64/ahci/io/pio/lba28/double/zero PASS 1 test-rcu-simpleq /rcu/qsimpleq/single-threaded ==12284==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12284==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffd1e2bf000; bottom 0x7f8e3a7fe000; size: 0x006ee3ac1000 (476266106880) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 2 test-rcu-simpleq /rcu/qsimpleq/short-few PASS 13 ahci-test /x86_64/ahci/io/pio/lba28/double/low ==12317==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12317==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffcb2964000; bottom 0x7f4e5f3fe000; size: 0x00ae53566000 (748722479104) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 14 ahci-test /x86_64/ahci/io/pio/lba28/double/high PASS 3 test-rcu-simpleq /rcu/qsimpleq/long-many MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-rcu-tailq -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-rcu-tailq" ==12323==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12323==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe7270d000; bottom 0x7f66d03fe000; size: 0x0097a230f000 (651261177856) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 1 test-rcu-tailq /rcu/qtailq/single-threaded PASS 15 ahci-test /x86_64/ahci/io/pio/lba28/long/zero ==12342==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 test-rcu-tailq /rcu/qtailq/short-few ==12342==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffd9736d000; bottom 0x7f8dbbdfe000; size: 0x006fdb56f000 (480421277696) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 16 ahci-test /x86_64/ahci/io/pio/lba28/long/low ==12369==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12369==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffeb9571000; bottom 0x7f07681fe000; size: 0x00f751373000 (1062219493376) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 3 test-rcu-tailq /rcu/qtailq/long-many --- PASS 8 test-qdist /qdist/binning/shrink MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-qht -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qht" PASS 17 ahci-test /x86_64/ahci/io/pio/lba28/long/high ==12384==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 18 ahci-test /x86_64/ahci/io/pio/lba28/short/zero ==12390==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 19 ahci-test /x86_64/ahci/io/pio/lba28/short/low ==12396==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 20 ahci-test /x86_64/ahci/io/pio/lba28/short/high ==12402==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12402==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffee35ce000; bottom 0x7f848abfe000; size: 0x007a589d0000 (525472694272) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 21 ahci-test /x86_64/ahci/io/pio/lba48/simple/zero ==12408==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12408==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffebcbfa000; bottom 0x7f7f1abfe000; size: 0x007fa1ffc000 (548178739200) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 22 ahci-test /x86_64/ahci/io/pio/lba48/simple/low ==12414==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12414==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe623f8000; bottom 0x7f0d56bfe000; size: 0x00f10b7fa000 (1035280031744) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 23 ahci-test /x86_64/ahci/io/pio/lba48/simple/high ==12420==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12420==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffd5b191000; bottom 0x7fbc305fe000; size: 0x00412ab93000 (279889653760) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 24 ahci-test /x86_64/ahci/io/pio/lba48/double/zero ==12426==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12426==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fffae33f000; bottom 0x7fa6a7ffe000; size: 0x005906341000 (382356164608) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 25 ahci-test /x86_64/ahci/io/pio/lba48/double/low ==12432==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12432==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe50dc8000; bottom 0x7f1e2e5fe000; size: 0x00e0227ca000 (962651267072) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 26 ahci-test /x86_64/ahci/io/pio/lba48/double/high ==12438==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12438==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fffc5e7e000; bottom 0x7fe2f41fe000; size: 0x001cd1c80000 (123778629632) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 1 test-qht /qht/mode/default PASS 2 test-qht /qht/mode/resize MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-qht-par -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qht-par" PASS 27 ahci-test /x86_64/ahci/io/pio/lba48/long/zero ==12454==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12454==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe03687000; bottom 0x7f42fbbfe000; size: 0x00bb07a89000 (803287371776) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 1 test-qht-par /qht/parallel/2threads-0%updates-1s PASS 28 ahci-test /x86_64/ahci/io/pio/lba48/long/low PASS 2 test-qht-par /qht/parallel/2threads-20%updates-1s MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-bitops -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bitops" ==12467==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-bitops /bitops/sextract32 PASS 2 test-bitops /bitops/sextract64 PASS 3 test-bitops /bitops/half_shuffle32 --- PASS 5 test-bitops /bitops/half_unshuffle32 PASS 6 test-bitops /bitops/half_unshuffle64 MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-bitcnt -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bitcnt" ==12467==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffd9ed0a000; bottom 0x7ff6afb7c000; size: 0x0006ef18e000 (29781188608) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 1 test-bitcnt /bitcnt/ctpop8 --- PASS 8 test-keyval /keyval/visit/optional PASS 9 test-keyval /keyval/visit/alternate PASS 10 test-keyval /keyval/visit/any ==12506==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-write-threshold -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-write-threshold" PASS 1 test-write-threshold /write-threshold/not-set-on-init PASS 2 test-write-threshold /write-threshold/set-get --- PASS 3 test-crypto-hmac /crypto/hmac/prealloc PASS 4 test-crypto-hmac /crypto/hmac/digest MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-crypto-cipher -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-crypto-cipher" ==12526==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-crypto-cipher /crypto/cipher/aes-ecb-128 PASS 2 test-crypto-cipher /crypto/cipher/aes-ecb-192 PASS 3 test-crypto-cipher /crypto/cipher/aes-ecb-256 --- PASS 1 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/perfectserver PASS 2 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/perfectclient PASS 31 ahci-test /x86_64/ahci/io/pio/lba48/short/low ==12551==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodca1 PASS 32 ahci-test /x86_64/ahci/io/pio/lba48/short/high ==12557==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodca2 PASS 5 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodca3 PASS 6 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/badca1 --- PASS 9 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver1 PASS 33 ahci-test /x86_64/ahci/io/dma/lba28/fragmented PASS 10 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver2 ==12563==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 11 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver3 PASS 34 ahci-test /x86_64/ahci/io/dma/lba28/retry ==12569==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 12 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver4 PASS 35 ahci-test /x86_64/ahci/io/dma/lba28/simple/zero ==12575==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 13 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver5 PASS 36 ahci-test /x86_64/ahci/io/dma/lba28/simple/low ==12581==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 14 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver6 PASS 37 ahci-test /x86_64/ahci/io/dma/lba28/simple/high ==12587==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 15 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver7 PASS 16 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/badserver1 PASS 17 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/badserver2 --- PASS 38 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/missingserver PASS 39 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/missingclient MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-crypto-tlssession -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-crypto-tlssession" ==12593==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 39 ahci-test /x86_64/ahci/io/dma/lba28/double/low PASS 1 test-crypto-tlssession /qcrypto/tlssession/psk ==12604==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 test-crypto-tlssession /qcrypto/tlssession/basicca PASS 40 ahci-test /x86_64/ahci/io/dma/lba28/double/high PASS 3 test-crypto-tlssession /qcrypto/tlssession/differentca PASS 4 test-crypto-tlssession /qcrypto/tlssession/altname1 ==12610==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 test-crypto-tlssession /qcrypto/tlssession/altname2 PASS 41 ahci-test /x86_64/ahci/io/dma/lba28/long/zero PASS 6 test-crypto-tlssession /qcrypto/tlssession/altname3 ==12616==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 7 test-crypto-tlssession /qcrypto/tlssession/altname4 PASS 42 ahci-test /x86_64/ahci/io/dma/lba28/long/low PASS 8 test-crypto-tlssession /qcrypto/tlssession/altname5 ==12622==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 43 ahci-test /x86_64/ahci/io/dma/lba28/long/high ==12628==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 44 ahci-test /x86_64/ahci/io/dma/lba28/short/zero ==12634==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 45 ahci-test /x86_64/ahci/io/dma/lba28/short/low ==12641==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 9 test-crypto-tlssession /qcrypto/tlssession/altname6 PASS 46 ahci-test /x86_64/ahci/io/dma/lba28/short/high ==12647==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 10 test-crypto-tlssession /qcrypto/tlssession/wildcard1 PASS 47 ahci-test /x86_64/ahci/io/dma/lba48/simple/zero ==12653==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 11 test-crypto-tlssession /qcrypto/tlssession/wildcard2 PASS 12 test-crypto-tlssession /qcrypto/tlssession/wildcard3 PASS 13 test-crypto-tlssession /qcrypto/tlssession/wildcard4 PASS 48 ahci-test /x86_64/ahci/io/dma/lba48/simple/low ==12659==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 49 ahci-test /x86_64/ahci/io/dma/lba48/simple/high ==12665==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 14 test-crypto-tlssession /qcrypto/tlssession/wildcard5 PASS 50 ahci-test /x86_64/ahci/io/dma/lba48/double/zero PASS 15 test-crypto-tlssession /qcrypto/tlssession/wildcard6 ==12671==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 16 test-crypto-tlssession /qcrypto/tlssession/cachain MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-qga -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qga" PASS 51 ahci-test /x86_64/ahci/io/dma/lba48/double/low ==12683==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-qga /qga/sync-delimited PASS 2 test-qga /qga/sync PASS 3 test-qga /qga/ping --- PASS 17 test-qga /qga/fsfreeze-status PASS 52 ahci-test /x86_64/ahci/io/dma/lba48/double/high PASS 18 test-qga /qga/blacklist ==12690==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 19 test-qga /qga/config PASS 20 test-qga /qga/guest-exec PASS 21 test-qga /qga/guest-exec-invalid --- PASS 24 test-qga /qga/guest-get-timezone PASS 25 test-qga /qga/guest-get-users MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-timed-average -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-timed-average" ==12703==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-timed-average /timed-average/average MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-util-filemonitor -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-util-filemonitor" PASS 1 test-util-filemonitor /util/filemonitor --- PASS 4 test-io-channel-socket /io/channel/socket/ipv6-sync PASS 5 test-io-channel-socket /io/channel/socket/ipv6-async PASS 6 test-io-channel-socket /io/channel/socket/unix-sync ==12742==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 7 test-io-channel-socket /io/channel/socket/unix-async PASS 8 test-io-channel-socket /io/channel/socket/unix-fd-pass PASS 9 test-io-channel-socket /io/channel/socket/unix-listen-cleanup --- PASS 3 test-io-channel-command /io/channel/command/echo/sync PASS 4 test-io-channel-command /io/channel/command/echo/async MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-io-channel-buffer -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-io-channel-buffer" ==12811==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-io-channel-buffer /io/channel/buf MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-base64 -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-base64" PASS 1 test-base64 /util/base64/good --- PASS 3 test-crypto-afsplit /crypto/afsplit/sha256/big PASS 4 test-crypto-afsplit /crypto/afsplit/sha1/1000 MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-crypto-xts -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-crypto-xts" ==12844==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-crypto-xts /crypto/xts/t-1-key-32-ptx-32/basic PASS 2 test-crypto-xts /crypto/xts/t-1-key-32-ptx-32/split PASS 3 test-crypto-xts /crypto/xts/t-1-key-32-ptx-32/unaligned --- PASS 2 test-logging /logging/parse_path MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-replication -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-replication" PASS 57 ahci-test /x86_64/ahci/io/dma/lba48/short/low ==12870==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12873==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-replication /replication/primary/read PASS 2 test-replication /replication/primary/write PASS 58 ahci-test /x86_64/ahci/io/dma/lba48/short/high --- PASS 4 test-replication /replication/primary/stop PASS 5 test-replication /replication/primary/do_checkpoint PASS 6 test-replication /replication/primary/get_error_all ==12880==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 7 test-replication /replication/secondary/read PASS 59 ahci-test /x86_64/ahci/io/ncq/simple PASS 8 test-replication /replication/secondary/write ==12886==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 60 ahci-test /x86_64/ahci/io/ncq/retry ==12870==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fffdc662000; bottom 0x7f8dedbfc000; size: 0x0071eea66000 (489335185408) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 9 test-replication /replication/secondary/start ==12892==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 61 ahci-test /x86_64/ahci/flush/simple ==12916==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 10 test-replication /replication/secondary/stop PASS 62 ahci-test /x86_64/ahci/flush/retry ==12922==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12927==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 11 test-replication /replication/secondary/do_checkpoint PASS 12 test-replication /replication/secondary/get_error_all MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-bufferiszero -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bufferiszero" PASS 63 ahci-test /x86_64/ahci/flush/migrate ==12940==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12945==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 64 ahci-test /x86_64/ahci/migrate/sanity ==12954==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12959==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 65 ahci-test /x86_64/ahci/migrate/dma/simple ==12968==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12973==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 66 ahci-test /x86_64/ahci/migrate/dma/halted ==12982==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==12987==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 67 ahci-test /x86_64/ahci/migrate/ncq/simple ==12996==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==13001==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 68 ahci-test /x86_64/ahci/migrate/ncq/halted ==13010==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 69 ahci-test /x86_64/ahci/cdrom/eject ==13015==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 70 ahci-test /x86_64/ahci/cdrom/dma/single ==13021==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 71 ahci-test /x86_64/ahci/cdrom/dma/multi ==13027==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 72 ahci-test /x86_64/ahci/cdrom/pio/single ==13033==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==13033==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe7c5b9000; bottom 0x7f9495dfe000; size: 0x0069e67bb000 (454838431744) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 73 ahci-test /x86_64/ahci/cdrom/pio/multi ==13039==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 74 ahci-test /x86_64/ahci/cdrom/pio/bcl MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/hd-geo-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="hd-geo-test" PASS 1 test-bufferiszero /cutils/bufferiszero --- PASS 21 test-qgraph /qgraph/test_two_test_same_interface PASS 22 test-qgraph /qgraph/test_test_in_path PASS 23 test-qgraph /qgraph/test_double_edge ==13062==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 hd-geo-test /x86_64/hd-geo/ide/drive/cd_0 ==13076==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 hd-geo-test /x86_64/hd-geo/ide/drive/mbr/blank ==13082==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 hd-geo-test /x86_64/hd-geo/ide/drive/mbr/lba ==13088==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 hd-geo-test /x86_64/hd-geo/ide/drive/mbr/chs ==13094==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 6 hd-geo-test /x86_64/hd-geo/ide/device/mbr/blank ==13100==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 7 hd-geo-test /x86_64/hd-geo/ide/device/mbr/lba ==13106==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 8 hd-geo-test /x86_64/hd-geo/ide/device/mbr/chs ==13112==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 9 hd-geo-test /x86_64/hd-geo/ide/device/user/chs ==13117==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 10 hd-geo-test /x86_64/hd-geo/ide/device/user/chst MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/boot-order-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="boot-order-test" PASS 1 boot-order-test /x86_64/boot-order/pc --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13185==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP' Using expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13191==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP' Using expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13197==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.bridge' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13203==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.ipmikcs' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13209==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.cphp' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13216==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.memhp' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13222==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.numamem' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13228==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.dimmpxm' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13237==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.bridge' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13243==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.mmio64' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13249==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.ipmibt' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13255==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.cphp' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13262==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.memhp' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13268==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.numamem' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13274==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.dimmpxm' Looking for expected file 'tests/data/acpi/q35/FACP' --- PASS 1 i440fx-test /x86_64/i440fx/defaults PASS 2 i440fx-test /x86_64/i440fx/pam PASS 3 i440fx-test /x86_64/i440fx/firmware/bios ==13358==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 i440fx-test /x86_64/i440fx/firmware/pflash MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/fw_cfg-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="fw_cfg-test" PASS 1 fw_cfg-test /x86_64/fw_cfg/signature --- MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/drive_del-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="drive_del-test" PASS 1 drive_del-test /x86_64/drive_del/without-dev PASS 2 drive_del-test /x86_64/drive_del/after_failed_device_add ==13446==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 drive_del-test /x86_64/blockdev/drive_del_device_del MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/wdt_ib700-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="wdt_ib700-test" PASS 1 wdt_ib700-test /x86_64/wdt_ib700/pause --- PASS 1 usb-hcd-uhci-test /x86_64/uhci/pci/init PASS 2 usb-hcd-uhci-test /x86_64/uhci/pci/port1 PASS 3 usb-hcd-uhci-test /x86_64/uhci/pci/hotplug ==13641==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 usb-hcd-uhci-test /x86_64/uhci/pci/hotplug/usb-storage MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/usb-hcd-xhci-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="usb-hcd-xhci-test" PASS 1 usb-hcd-xhci-test /x86_64/xhci/pci/init PASS 2 usb-hcd-xhci-test /x86_64/xhci/pci/hotplug ==13650==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 usb-hcd-xhci-test /x86_64/xhci/pci/hotplug/usb-uas PASS 4 usb-hcd-xhci-test /x86_64/xhci/pci/hotplug/usb-ccid MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/cpu-plug-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="cpu-plug-test" --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13756==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 vmgenid-test /x86_64/vmgenid/vmgenid/set-guid Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13762==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 vmgenid-test /x86_64/vmgenid/vmgenid/set-guid-auto Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13768==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 vmgenid-test /x86_64/vmgenid/vmgenid/query-monitor MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/tpm-crb-swtpm-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="tpm-crb-swtpm-test" SKIP 1 tpm-crb-swtpm-test /x86_64/tpm/crb-swtpm/test # SKIP swtpm not in PATH or missing --tpm2 support --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13873==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13878==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 migration-test /x86_64/migration/fd_proto Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13886==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory qemu-system-x86_64: Back to tcg accelerator ==13891==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ** ERROR:/tmp/qemu-test/src/tests/migration-test.c:1192:test_migrate_auto_converge: assertion failed (i + 1 == ARRAY_SIZE(expected_pcts)): (3 == 4) ERROR - Bail out! ERROR:/tmp/qemu-test/src/tests/migration-test.c:1192:test_migrate_auto_converge: assertion failed (i + 1 == ARRAY_SIZE(expected_pcts)): (3 == 4) make: *** [/tmp/qemu-test/src/tests/Makefile.include:899: check-qtest-x86_64] Error 1 make: *** Waiting for unfinished jobs.... Traceback (most recent call last): The full log is available at http://patchew.org/logs/20190718091726.9874-1-yury-kotov@yandex-team.ru/testing.asan/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-07-23 10:24 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-07-18 9:17 [Qemu-devel] [PATCH v3 0/3] High downtime with 95+ throttle pct Yury Kotov 2019-07-18 9:17 ` [Qemu-devel] [PATCH v3 1/3] qemu-thread: Add qemu_cond_timedwait Yury Kotov 2019-07-18 9:17 ` [Qemu-devel] [PATCH v3 2/3] cpus: Fix throttling during vm_stop Yury Kotov 2019-07-18 9:17 ` [Qemu-devel] [PATCH v3 3/3] tests/migration: Add a test for auto converge Yury Kotov 2019-07-22 17:35 ` Dr. David Alan Gilbert 2019-07-23 8:54 ` Yury Kotov 2019-07-23 10:23 ` Dr. David Alan Gilbert 2019-07-18 15:33 ` [Qemu-devel] [PATCH v3 0/3] High downtime with 95+ throttle pct no-reply
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).