From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Michael Tokarev <mjt@tls.msk.ru>,
QEMU Developers <qemu-devel@nongnu.org>
Cc: "open list:S390 general arch..." <qemu-s390x@nongnu.org>,
Qemu-block <qemu-block@nongnu.org>
Subject: Re: qemu-img hangs on s390x
Date: Mon, 6 Feb 2023 07:55:43 +0100 [thread overview]
Message-ID: <26dd56d3-3df6-16dd-4b74-e4cfded96db4@linaro.org> (raw)
In-Reply-To: <3bae2f38-1f16-46a9-604c-7a0a3e141471@msgid.tls.msk.ru>
+s390x/block lists
On 5/2/23 20:10, Michael Tokarev wrote:
> There's a bug filed against qemu on debian, about qemu-img hanging on
> s390x.
> While digging in, I discovered that the thing is broken there indeed,
> and it
> is broken for a very long time, and it is interesting.
>
> The reproducer is rather simple:
>
> qemu-img create -f qcow2 -o preallocation=metadata blank-disk-1s.qcow2
> 512
>
> this hangs until interrupted, after writing 327680 bytes of output.
> I haven't tried old versions, - 5.2 hangs for sure, as is 7.2 and
> apparently
> all in-between. In particular, current debian sid (whole thing) and 2-years
> old debian bullseye hangs equally.
>
> But the thing is that it does not hang when creating file on a tmpfs, -
> when the filesystem is tmpfs, it always works.
>
> Also, a few times I were able to run the above qemu-img create
> successfully, -
> maybe 2 out of 100 runs or so.
>
> It looks like the problem has been there for a very long time, and it is
> timing-dependent.
>
> Comparing strace of the two runs, I see differences in most futex
> operations.
> Here's the parent process:
>
> ...
> read(7, "\0\0\0\0\0\0\0\1", 512) = 8
> ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = 1
> ([{fd=7, revents=POLLIN}])
> -futex(0x2aa29af8bb4, FUTEX_WAKE_PRIVATE, 1) = 1
> +futex(0x2aa03600bb4, FUTEX_WAKE_PRIVATE, 1) = 0
> read(7, "\0\0\0\0\0\0\0\1", 512) = 8
> +futex(0x2aa03600bb0, FUTEX_WAKE_PRIVATE, 1) = 1
> ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = 1
> ([{fd=7, revents=POLLIN}])
> -futex(0x2aa29af8bb0, FUTEX_WAKE_PRIVATE, 1) = 1
> +futex(0x2aa03600bb4, FUTEX_WAKE_PRIVATE, 1) = 0
> read(7, "\0\0\0\0\0\0\0\1", 512) = 8
> ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = 1
> ([{fd=7, revents=POLLIN}])
> -futex(0x2aa29af8bb4, FUTEX_WAKE_PRIVATE, 1) = 1
> +futex(0x2aa03600bb0, FUTEX_WAKE_PRIVATE, 1) = 0
> read(7, "\0\0\0\0\0\0\0\1", 512) = 8
> ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = 1
> ([{fd=7, revents=POLLIN}])
> -futex(0x2aa29af8bb0, FUTEX_WAKE_PRIVATE, 1) = 1
> +futex(0x2aa03600bb4, FUTEX_WAKE_PRIVATE, 1) = 0
> read(7, "\0\0\0\0\0\0\0\1", 512) = 8
> ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = 1
> ([{fd=7, revents=POLLIN}])
> -futex(0x2aa29af8bb4, FUTEX_WAKE_PRIVATE, 1) = 0
> +futex(0x2aa03600bb0, FUTEX_WAKE_PRIVATE, 1) = 1
> read(7, "\0\0\0\0\0\0\0\1", 512) = 8
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> -ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = ?
> ERESTARTNOHAND (To be restarted if no handler)
> ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = 1
> ([{fd=7, revents=POLLIN}])
> ---- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL} ---
> -+++ killed by SIGINT +++
> +futex(0x2aa03600bb4, FUTEX_WAKE_PRIVATE, 1) = 0
> +read(7, "\0\0\0\0\0\0\0\1", 512) = 8
> +ppoll([{fd=7, events=POLLIN|POLLERR|POLLHUP}], 1, NULL, NULL, 8) = 1
> ([{fd=7, revents=POLLIN}])
> +futex(0x2aa03600bb0, FUTEX_WAKE_PRIVATE, 1) = 0
> +read(7, "\0\0\0\0\0\0\0\1", 512) = 8
> ...
>
> (I've hit Ctrl+C after quite some time).
>
> I'll take another look at this tomorrow. But if someone knows
> what's going on there, please tell me :) The situation is quite
> interesting, - is it possible we missed such a serious issue somehow?
>
> Thanks,
>
> /mjt
>
prev parent reply other threads:[~2023-02-06 6:56 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-05 19:10 qemu-img hangs on s390x Michael Tokarev
2023-02-06 6:55 ` Philippe Mathieu-Daudé [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=26dd56d3-3df6-16dd-4b74-e4cfded96db4@linaro.org \
--to=philmd@linaro.org \
--cc=mjt@tls.msk.ru \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).