diff for duplicates of <20191011082954.GA10493@hc> diff --git a/a/1.txt b/N1/1.txt index 25efb51..ad1e1a9 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -25,3 +25,144 @@ Good point. I'll try to force both into the same cacheline. > Paolo > > > Dann, can you try if this works on the Hi1620 too? + +-- +You received this bug notification because you are a member of qemu- +devel-ml, which is subscribed to QEMU. +https://bugs.launchpad.net/bugs/1805256 + +Title: + qemu-img hangs on rcu_call_ready_event logic in Aarch64 when + converting images + +Status in kunpeng920: + New +Status in QEMU: + In Progress +Status in qemu package in Ubuntu: + In Progress +Status in qemu source package in Bionic: + New +Status in qemu source package in Disco: + New +Status in qemu source package in Eoan: + In Progress +Status in qemu source package in FF-Series: + New + +Bug description: + Command: + + qemu-img convert -f qcow2 -O qcow2 ./disk01.qcow2 ./output.qcow2 + + Hangs indefinitely approximately 30% of the runs. + + ---- + + Workaround: + + qemu-img convert -m 1 -f qcow2 -O qcow2 ./disk01.qcow2 ./output.qcow2 + + Run "qemu-img convert" with "a single coroutine" to avoid this issue. + + ---- + + (gdb) thread 1 + ... + (gdb) bt + #0 0x0000ffffbf1ad81c in __GI_ppoll + #1 0x0000aaaaaabcf73c in ppoll + #2 qemu_poll_ns + #3 0x0000aaaaaabd0764 in os_host_main_loop_wait + #4 main_loop_wait + ... + + (gdb) thread 2 + ... + (gdb) bt + #0 syscall () + #1 0x0000aaaaaabd41cc in qemu_futex_wait + #2 qemu_event_wait (ev=ev@entry=0xaaaaaac86ce8 <rcu_call_ready_event>) + #3 0x0000aaaaaabed05c in call_rcu_thread + #4 0x0000aaaaaabd34c8 in qemu_thread_start + #5 0x0000ffffbf25c880 in start_thread + #6 0x0000ffffbf1b6b9c in thread_start () + + (gdb) thread 3 + ... + (gdb) bt + #0 0x0000ffffbf11aa20 in __GI___sigtimedwait + #1 0x0000ffffbf2671b4 in __sigwait + #2 0x0000aaaaaabd1ddc in sigwait_compat + #3 0x0000aaaaaabd34c8 in qemu_thread_start + #4 0x0000ffffbf25c880 in start_thread + #5 0x0000ffffbf1b6b9c in thread_start + + ---- + + (gdb) run + Starting program: /usr/bin/qemu-img convert -f qcow2 -O qcow2 + ./disk01.ext4.qcow2 ./output.qcow2 + + [New Thread 0xffffbec5ad90 (LWP 72839)] + [New Thread 0xffffbe459d90 (LWP 72840)] + [New Thread 0xffffbdb57d90 (LWP 72841)] + [New Thread 0xffffacac9d90 (LWP 72859)] + [New Thread 0xffffa7ffed90 (LWP 72860)] + [New Thread 0xffffa77fdd90 (LWP 72861)] + [New Thread 0xffffa6ffcd90 (LWP 72862)] + [New Thread 0xffffa67fbd90 (LWP 72863)] + [New Thread 0xffffa5ffad90 (LWP 72864)] + + [Thread 0xffffa5ffad90 (LWP 72864) exited] + [Thread 0xffffa6ffcd90 (LWP 72862) exited] + [Thread 0xffffa77fdd90 (LWP 72861) exited] + [Thread 0xffffbdb57d90 (LWP 72841) exited] + [Thread 0xffffa67fbd90 (LWP 72863) exited] + [Thread 0xffffacac9d90 (LWP 72859) exited] + [Thread 0xffffa7ffed90 (LWP 72860) exited] + + <HUNG w/ 3 threads in the stack trace showed before> + """ + + All the tasks left are blocked in a system call, so no task left to call + qemu_futex_wake() to unblock thread #2 (in futex()), which would unblock + thread #1 (doing poll() in a pipe with thread #2). + + Those 7 threads exit before disk conversion is complete (sometimes in + the beginning, sometimes at the end). + + ---- + + [ Original Description ] + + On the HiSilicon D06 system - a 96 core NUMA arm64 box - qemu-img + frequently hangs (~50% of the time) with this command: + + qemu-img convert -f qcow2 -O qcow2 /tmp/cloudimg /tmp/cloudimg2 + + Where "cloudimg" is a standard qcow2 Ubuntu cloud image. This + qcow2->qcow2 conversion happens to be something uvtool does every time + it fetches images. + + Once hung, attaching gdb gives the following backtrace: + + (gdb) bt + #0 0x0000ffffae4f8154 in __GI_ppoll (fds=0xaaaae8a67dc0, nfds=187650274213760, + timeout=<optimized out>, timeout@entry=0x0, sigmask=0xffffc123b950) + at ../sysdeps/unix/sysv/linux/ppoll.c:39 + #1 0x0000aaaabbefaf00 in ppoll (__ss=0x0, __timeout=0x0, __nfds=<optimized out>, + __fds=<optimized out>) at /usr/include/aarch64-linux-gnu/bits/poll2.h:77 + #2 qemu_poll_ns (fds=<optimized out>, nfds=<optimized out>, + timeout=timeout@entry=-1) at util/qemu-timer.c:322 + #3 0x0000aaaabbefbf80 in os_host_main_loop_wait (timeout=-1) + at util/main-loop.c:233 + #4 main_loop_wait (nonblocking=<optimized out>) at util/main-loop.c:497 + #5 0x0000aaaabbe2aa30 in convert_do_copy (s=0xffffc123bb58) at qemu-img.c:1980 + #6 img_convert (argc=<optimized out>, argv=<optimized out>) at qemu-img.c:2456 + #7 0x0000aaaabbe2333c in main (argc=7, argv=<optimized out>) at qemu-img.c:4975 + + Reproduced w/ latest QEMU git (@ 53744e0a182) + +To manage notifications about this bug go to: +https://bugs.launchpad.net/kunpeng920/+bug/1805256/+subscriptions diff --git a/a/content_digest b/N1/content_digest index 2c97aa2..93b2706 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,23 +1,8 @@ - "ref\01864070a-2f84-1d98-341e-f01ddf74ec4b@ubuntu.com\0" - "ref\020190924202517.GA21422@xps13.dannf\0" - "ref\020191002092253.GA3857@hc\0" - "ref\06dd73749-49b0-0fbc-b9bb-44c3736642b8@redhat.com\0" - "ref\020191007144432.GA29958@xps13.dannf\0" - "ref\0065a52a9-5bb0-1259-6c73-41af60e0a05d@redhat.com\0" - "ref\020191009080220.GA2905@hc\0" - "ref\0d5367b2a-84ee-1211-a2dc-7d631c94fe3f@redhat.com\0" - "ref\020191011060518.GA6920@hc\0" - "ref\0966c119d-aa76-2149-108f-867aebd772f7@redhat.com\0" + "ref\0154327283728.15443.11625169757714443608.malonedeb@soybean.canonical.com\0" "From\0Jan Glauber <jglauber@marvell.com>\0" - "Subject\0Re: [Qemu-devel] qemu_futex_wait() lockups in ARM64: 2 possible issues\0" - "Date\0Fri, 11 Oct 2019 08:30:02 +0000\0" - "To\0Paolo Bonzini <pbonzini@redhat.com>\0" - "Cc\0Rafael David Tinoco <rafaeldtinoco@ubuntu.com>" - lizhengui <lizhengui@huawei.com> - dann frazier <dann.frazier@canonical.com> - QEMU Developers <qemu-devel@nongnu.org> - Bug 1805256 <1805256@bugs.launchpad.net> - " QEMU Developers - ARM <qemu-arm@nongnu.org>\0" + "Subject\0[Bug 1805256] Re: [Qemu-devel] qemu_futex_wait() lockups in ARM64: 2 possible issues\0" + "Date\0Fri, 11 Oct 2019 08:30:02 -0000\0" + "To\0qemu-devel@nongnu.org\0" "\00:1\0" "b\0" "On Fri, Oct 11, 2019 at 10:18:18AM +0200, Paolo Bonzini wrote:\n" @@ -46,6 +31,147 @@ "\n" "> Paolo\n" "> \n" - > > Dann, can you try if this works on the Hi1620 too? + "> > Dann, can you try if this works on the Hi1620 too?\n" + "\n" + "-- \n" + "You received this bug notification because you are a member of qemu-\n" + "devel-ml, which is subscribed to QEMU.\n" + "https://bugs.launchpad.net/bugs/1805256\n" + "\n" + "Title:\n" + " qemu-img hangs on rcu_call_ready_event logic in Aarch64 when\n" + " converting images\n" + "\n" + "Status in kunpeng920:\n" + " New\n" + "Status in QEMU:\n" + " In Progress\n" + "Status in qemu package in Ubuntu:\n" + " In Progress\n" + "Status in qemu source package in Bionic:\n" + " New\n" + "Status in qemu source package in Disco:\n" + " New\n" + "Status in qemu source package in Eoan:\n" + " In Progress\n" + "Status in qemu source package in FF-Series:\n" + " New\n" + "\n" + "Bug description:\n" + " Command:\n" + "\n" + " qemu-img convert -f qcow2 -O qcow2 ./disk01.qcow2 ./output.qcow2\n" + "\n" + " Hangs indefinitely approximately 30% of the runs.\n" + "\n" + " ----\n" + "\n" + " Workaround:\n" + "\n" + " qemu-img convert -m 1 -f qcow2 -O qcow2 ./disk01.qcow2 ./output.qcow2\n" + "\n" + " Run \"qemu-img convert\" with \"a single coroutine\" to avoid this issue.\n" + "\n" + " ----\n" + "\n" + " (gdb) thread 1\n" + " ...\n" + " (gdb) bt\n" + " #0 0x0000ffffbf1ad81c in __GI_ppoll\n" + " #1 0x0000aaaaaabcf73c in ppoll\n" + " #2 qemu_poll_ns\n" + " #3 0x0000aaaaaabd0764 in os_host_main_loop_wait\n" + " #4 main_loop_wait\n" + " ...\n" + "\n" + " (gdb) thread 2\n" + " ...\n" + " (gdb) bt\n" + " #0 syscall ()\n" + " #1 0x0000aaaaaabd41cc in qemu_futex_wait\n" + " #2 qemu_event_wait (ev=ev@entry=0xaaaaaac86ce8 <rcu_call_ready_event>)\n" + " #3 0x0000aaaaaabed05c in call_rcu_thread\n" + " #4 0x0000aaaaaabd34c8 in qemu_thread_start\n" + " #5 0x0000ffffbf25c880 in start_thread\n" + " #6 0x0000ffffbf1b6b9c in thread_start ()\n" + "\n" + " (gdb) thread 3\n" + " ...\n" + " (gdb) bt\n" + " #0 0x0000ffffbf11aa20 in __GI___sigtimedwait\n" + " #1 0x0000ffffbf2671b4 in __sigwait\n" + " #2 0x0000aaaaaabd1ddc in sigwait_compat\n" + " #3 0x0000aaaaaabd34c8 in qemu_thread_start\n" + " #4 0x0000ffffbf25c880 in start_thread\n" + " #5 0x0000ffffbf1b6b9c in thread_start\n" + "\n" + " ----\n" + "\n" + " (gdb) run\n" + " Starting program: /usr/bin/qemu-img convert -f qcow2 -O qcow2\n" + " ./disk01.ext4.qcow2 ./output.qcow2\n" + "\n" + " [New Thread 0xffffbec5ad90 (LWP 72839)]\n" + " [New Thread 0xffffbe459d90 (LWP 72840)]\n" + " [New Thread 0xffffbdb57d90 (LWP 72841)]\n" + " [New Thread 0xffffacac9d90 (LWP 72859)]\n" + " [New Thread 0xffffa7ffed90 (LWP 72860)]\n" + " [New Thread 0xffffa77fdd90 (LWP 72861)]\n" + " [New Thread 0xffffa6ffcd90 (LWP 72862)]\n" + " [New Thread 0xffffa67fbd90 (LWP 72863)]\n" + " [New Thread 0xffffa5ffad90 (LWP 72864)]\n" + "\n" + " [Thread 0xffffa5ffad90 (LWP 72864) exited]\n" + " [Thread 0xffffa6ffcd90 (LWP 72862) exited]\n" + " [Thread 0xffffa77fdd90 (LWP 72861) exited]\n" + " [Thread 0xffffbdb57d90 (LWP 72841) exited]\n" + " [Thread 0xffffa67fbd90 (LWP 72863) exited]\n" + " [Thread 0xffffacac9d90 (LWP 72859) exited]\n" + " [Thread 0xffffa7ffed90 (LWP 72860) exited]\n" + "\n" + " <HUNG w/ 3 threads in the stack trace showed before>\n" + " \"\"\"\n" + "\n" + " All the tasks left are blocked in a system call, so no task left to call\n" + " qemu_futex_wake() to unblock thread #2 (in futex()), which would unblock\n" + " thread #1 (doing poll() in a pipe with thread #2).\n" + "\n" + " Those 7 threads exit before disk conversion is complete (sometimes in\n" + " the beginning, sometimes at the end).\n" + "\n" + " ----\n" + "\n" + " [ Original Description ]\n" + "\n" + " On the HiSilicon D06 system - a 96 core NUMA arm64 box - qemu-img\n" + " frequently hangs (~50% of the time) with this command:\n" + "\n" + " qemu-img convert -f qcow2 -O qcow2 /tmp/cloudimg /tmp/cloudimg2\n" + "\n" + " Where \"cloudimg\" is a standard qcow2 Ubuntu cloud image. This\n" + " qcow2->qcow2 conversion happens to be something uvtool does every time\n" + " it fetches images.\n" + "\n" + " Once hung, attaching gdb gives the following backtrace:\n" + "\n" + " (gdb) bt\n" + " #0 0x0000ffffae4f8154 in __GI_ppoll (fds=0xaaaae8a67dc0, nfds=187650274213760,\n" + " \302\240\302\240\302\240\302\240timeout=<optimized out>, timeout@entry=0x0, sigmask=0xffffc123b950)\n" + " \302\240\302\240\302\240\302\240at ../sysdeps/unix/sysv/linux/ppoll.c:39\n" + " #1 0x0000aaaabbefaf00 in ppoll (__ss=0x0, __timeout=0x0, __nfds=<optimized out>,\n" + " \302\240\302\240\302\240\302\240__fds=<optimized out>) at /usr/include/aarch64-linux-gnu/bits/poll2.h:77\n" + " #2 qemu_poll_ns (fds=<optimized out>, nfds=<optimized out>,\n" + " \302\240\302\240\302\240\302\240timeout=timeout@entry=-1) at util/qemu-timer.c:322\n" + " #3 0x0000aaaabbefbf80 in os_host_main_loop_wait (timeout=-1)\n" + " \302\240\302\240\302\240\302\240at util/main-loop.c:233\n" + " #4 main_loop_wait (nonblocking=<optimized out>) at util/main-loop.c:497\n" + " #5 0x0000aaaabbe2aa30 in convert_do_copy (s=0xffffc123bb58) at qemu-img.c:1980\n" + " #6 img_convert (argc=<optimized out>, argv=<optimized out>) at qemu-img.c:2456\n" + " #7 0x0000aaaabbe2333c in main (argc=7, argv=<optimized out>) at qemu-img.c:4975\n" + "\n" + " Reproduced w/ latest QEMU git (@ 53744e0a182)\n" + "\n" + "To manage notifications about this bug go to:\n" + https://bugs.launchpad.net/kunpeng920/+bug/1805256/+subscriptions -b784c7d879c9e994f730b3cfd417d374027c326e2be2af414d11c30122e31a1f +35b4211f5f70e2260d79e1afee701f405ce8d07d3ea344b27407f0d6a56f4ef3
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.