qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 6/6] gitlab-ci.d/buildtest: Disintegrate the build-coroutine-


From: Juan Quintela
Subject: Re: [PATCH 6/6] gitlab-ci.d/buildtest: Disintegrate the build-coroutine-sigaltstack job
Date: Fri, 03 Feb 2023 22:10:53 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

Kevin Wolf <kwolf@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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]