Kevin Wolf <kw...@redhat.com> wrote: > Am 03.02.2023 um 12:23 hat Thomas Huth geschrieben: >> On 30/01/2023 11.58, Daniel P. Berrangé wrote: >> > On Mon, Jan 30, 2023 at 11:44:46AM +0100, Thomas Huth wrote: >> > > We can get rid of the build-coroutine-sigaltstack job by moving >> > > the configure flags that should be tested here to other jobs: >> > > Move --with-coroutine=sigaltstack to the build-without-defaults job >> > > and --enable-trace-backends=ftrace to the cross-s390x-kvm-only job. >> > >> > The biggest user of coroutines is the block layer. So we probably >> > ought to have coroutines aligned with a job that triggers the >> > 'make check-block' for iotests. IIUC, the without-defaults >> > job won't do that. How about, arbitrarily, using either the >> > 'check-system-debian' or 'check-system-ubuntu' job. Those distros >> > are closely related, so getting sigaltstack vs ucontext coverage >> > between them is a good win, and they both trigger the block jobs >> > IIUC. >> >> I gave it a try with the ubuntu job, but this apparently trips up the >> iotests: >> >> https://gitlab.com/thuth/qemu/-/jobs/3705965062#L212 >> >> Does anybody have a clue what could be going wrong here? > > I'm not sure how changing the coroutine backend could cause it, but > primarily this looks like an assertion failure in migration code.
Adding Peter here, as he is the last one touching that code O:-) > Dave, Juan, any ideas what this assertion checks and why it could be > failing? Really no. +QEMU_PROG: ../migration/ram.c:874: pss_find_next_dirty: Assertion `pss->host_page_end' failed. +./common.rc: line 195: 78727 Aborted (core dumped) ( if [ -n "${QEMU_NEED_PID}" ]; then + echo $BASHPID > "${QEMU_TEST_DIR}/qemu-${_QEMU_HANDLE}.pid"; +fi; GDB=""; if [ -n "${GDB_OPTIONS}" ]; then + GDB="gdbserver ${GDB_OPTIONS}"; +fi; VALGRIND_QEMU="${VALGRIND_QEMU_VM}" _qemu_proc_exec "${VALGRIND_LOGFILE}" $GDB "$QEMU_PROG" $QEMU_OPTIONS "$@" ) pss_find_next_dirty() is only called from three places: find . -type f -exec grep --color=auto -nH --null -e pss_find_next_dirty \{\} + ./ram.c.847: * pss_find_next_dirty: find the next dirty page of current ramblock ./ram.c.857:static void pss_find_next_dirty(PageSearchStatus *pss) ./ram.c.1562: pss_find_next_dirty(pss); ./ram.c.2391: pss_find_next_dirty(pss); ./ram.c.2476: pss_find_next_dirty(pss); I can't see how this can be affected by coroutines changes. What is the test that is failing, and what is the change that I have to do to try to reproduce it? Later, Juan.