qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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
> 



      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).