mbox

[PULL,for-2.4,0/4] Block patches

Message ID 1437415513-21435-1-git-send-email-stefanha@redhat.com
State New
Headers show

Pull-request

git://github.com/stefanha/qemu.git tags/block-pull-request

Message

Stefan Hajnoczi July 20, 2015, 6:05 p.m. UTC
The following changes since commit f73ca7363440240b7ee5ee7f7ddb1c64751efb54:

  Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2015-07-20 13:25:28 +0100)

are available in the git repository at:

  git://github.com/stefanha/qemu.git tags/block-pull-request

for you to fetch changes up to 4fefb0d50cd0a803bba3cedaeb9adfb80cc61fed:

  AioContext: fix broken ctx->dispatching optimization (2015-07-20 17:14:22 +0100)

----------------------------------------------------------------

----------------------------------------------------------------

Fam Zheng (1):
  mirror: Speed up bitmap initial scanning

Paolo Bonzini (3):
  tests: remove irrelevant assertions from test-aio
  aio-win32: reorganize polling loop
  AioContext: fix broken ctx->dispatching optimization

 aio-posix.c             | 18 +++++-------
 aio-win32.c             | 41 ++++++++++++++------------
 async.c                 | 21 +++++---------
 block/mirror.c          | 14 ++++-----
 docs/aio_notify.promela | 77 +++++++++++++++++++++----------------------------
 include/block/aio.h     | 29 +++++++++++++++----
 tests/test-aio.c        | 26 +++--------------
 7 files changed, 103 insertions(+), 123 deletions(-)

Comments

Peter Maydell July 21, 2015, 9:04 a.m. UTC | #1
On 20 July 2015 at 19:05, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> The following changes since commit f73ca7363440240b7ee5ee7f7ddb1c64751efb54:
>
>   Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2015-07-20 13:25:28 +0100)
>
> are available in the git repository at:
>
>   git://github.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to 4fefb0d50cd0a803bba3cedaeb9adfb80cc61fed:
>
>   AioContext: fix broken ctx->dispatching optimization (2015-07-20 17:14:22 +0100)
>
> ----------------------------------------------------------------
>
> ----------------------------------------------------------------
>
> Fam Zheng (1):
>   mirror: Speed up bitmap initial scanning
>
> Paolo Bonzini (3):
>   tests: remove irrelevant assertions from test-aio
>   aio-win32: reorganize polling loop
>   AioContext: fix broken ctx->dispatching optimization

I'm afraid this seems to cause 'make check' to hang on one
of the PPC tests:

QTEST_QEMU_BINARY=ppc-softmmu/qemu-system-ppc QTEST_QEMU_IMG=qemu-img
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$((RANDOM % 255 + 1))} gtester -k
--verbose -m=quick tests/endianness-test tests/boot-order-test
tests/qom-test
TEST: tests/endianness-test... (pid=27216)
  /ppc/endianness/g3beige:                                             OK
  /ppc/endianness/split/g3beige:                                       OK
  /ppc/endianness/combine/g3beige:                                     OK
  /ppc/endianness/prep:                                                OK
  /ppc/endianness/split/prep:                                          OK
  /ppc/endianness/combine/prep:                                        OK
  /ppc/endianness/bamboo:                                              OK
  /ppc/endianness/split/bamboo:                                        OK
  /ppc/endianness/combine/bamboo:                                      OK
PASS: tests/endianness-test
TEST: tests/boot-order-test... (pid=27228)
  /ppc/boot-order/prep:                                                OK
  /ppc/boot-order/pmac_oldworld:

(and then it just sits there. Seen on x86-64/Linux and OSX hosts.)

Backtrace from connecting a gdb to it:
(gdb) thread apply all bt

Thread 3 (Thread 0x2ac8d2d5f700 (LWP 17911)):
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1  0x00002ac8c6310657 in _L_lock_909 () from
/lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00002ac8c6310480 in __GI___pthread_mutex_lock
(mutex=0x2ac8be8dad00 <qemu_global_mutex>) at
../nptl/pthread_mutex_lock.c:79
#3  0x00002ac8be3a9f89 in qemu_mutex_lock
(mutex=mutex@entry=0x2ac8be8dad00 <qemu_global_mutex>) at
/home/petmay01/linaro/qemu-for-merges/util/qemu-thread-posix.c:73
#4  0x00002ac8be0554a4 in qemu_mutex_lock_iothread () at
/home/petmay01/linaro/qemu-for-merges/cpus.c:1164
#5  0x00002ac8be3ba33e in call_rcu_thread (opaque=<optimised out>) at
/home/petmay01/linaro/qemu-for-merges/util/rcu.c:241
#6  0x00002ac8c630e182 in start_thread (arg=0x2ac8d2d5f700) at
pthread_create.c:312
#7  0x00002ac8c661e47d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x2ac8d33ac700 (LWP 17912)):
#0  0x00002ac8c63160d1 in do_sigwait (sig=0x2ac8d33ab99c,
set=<optimised out>) at
../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:60
#1  __sigwait (set=set@entry=0x2ac8d33ab9a0,
sig=sig@entry=0x2ac8d33ab99c) at
../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:97
#2  0x00002ac8be055937 in qemu_dummy_cpu_thread_fn
(arg=0x2ac8bed53450) at
/home/petmay01/linaro/qemu-for-merges/cpus.c:1016
#3  0x00002ac8c630e182 in start_thread (arg=0x2ac8d33ac700) at
pthread_create.c:312
#4  0x00002ac8c661e47d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x2ac8be572680 (LWP 17910)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00002ac8be3aa5f2 in futex_wait (val=4294967295,
ev=0x2ac8be669708) at
/home/petmay01/linaro/qemu-for-merges/util/qemu-thread-posix.c:301
#2  qemu_event_wait (ev=ev@entry=0x2ac8be669708) at
/home/petmay01/linaro/qemu-for-merges/util/qemu-thread-posix.c:399
#3  0x00002ac8be325e41 in qemu_clock_enable
(type=type@entry=QEMU_CLOCK_VIRTUAL, enabled=enabled@entry=false) at
/home/petmay01/linaro/qemu-for-merges/qemu-timer.c:167
#4  0x00002ac8be055d22 in pause_all_vcpus () at
/home/petmay01/linaro/qemu-for-merges/cpus.c:1200
#5  0x00002ac8be01491d in main_loop_should_exit () at
/home/petmay01/linaro/qemu-for-merges/vl.c:1864
#6  main_loop () at /home/petmay01/linaro/qemu-for-merges/vl.c:1906
#7  main (argc=<optimised out>, argv=<optimised out>, envp=<optimised
out>) at /home/petmay01/linaro/qemu-for-merges/vl.c:4653

thanks
-- PMM
Paolo Bonzini July 21, 2015, 11:46 a.m. UTC | #2
On 21/07/2015 11:04, Peter Maydell wrote:
> On 20 July 2015 at 19:05, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>> The following changes since commit f73ca7363440240b7ee5ee7f7ddb1c64751efb54:
>>
>>   Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2015-07-20 13:25:28 +0100)
>>
>> are available in the git repository at:
>>
>>   git://github.com/stefanha/qemu.git tags/block-pull-request
>>
>> for you to fetch changes up to 4fefb0d50cd0a803bba3cedaeb9adfb80cc61fed:
>>
>>   AioContext: fix broken ctx->dispatching optimization (2015-07-20 17:14:22 +0100)
>>
>> ----------------------------------------------------------------
>>
>> ----------------------------------------------------------------
>>
>> Fam Zheng (1):
>>   mirror: Speed up bitmap initial scanning
>>
>> Paolo Bonzini (3):
>>   tests: remove irrelevant assertions from test-aio
>>   aio-win32: reorganize polling loop
>>   AioContext: fix broken ctx->dispatching optimization
> 
> I'm afraid this seems to cause 'make check' to hang on one
> of the PPC tests:
> 
> QTEST_QEMU_BINARY=ppc-softmmu/qemu-system-ppc QTEST_QEMU_IMG=qemu-img
> MALLOC_PERTURB_=${MALLOC_PERTURB_:-$((RANDOM % 255 + 1))} gtester -k
> --verbose -m=quick tests/endianness-test tests/boot-order-test
> tests/qom-test
> TEST: tests/endianness-test... (pid=27216)
>   /ppc/endianness/g3beige:                                             OK
>   /ppc/endianness/split/g3beige:                                       OK
>   /ppc/endianness/combine/g3beige:                                     OK
>   /ppc/endianness/prep:                                                OK
>   /ppc/endianness/split/prep:                                          OK
>   /ppc/endianness/combine/prep:                                        OK
>   /ppc/endianness/bamboo:                                              OK
>   /ppc/endianness/split/bamboo:                                        OK
>   /ppc/endianness/combine/bamboo:                                      OK
> PASS: tests/endianness-test
> TEST: tests/boot-order-test... (pid=27228)
>   /ppc/boot-order/prep:                                                OK
>   /ppc/boot-order/pmac_oldworld:
> 
> (and then it just sits there. Seen on x86-64/Linux and OSX hosts.)
> 
> Backtrace from connecting a gdb to it:
> (gdb) thread apply all bt
> 
> Thread 3 (Thread 0x2ac8d2d5f700 (LWP 17911)):
> #0  __lll_lock_wait () at
> ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
> #1  0x00002ac8c6310657 in _L_lock_909 () from
> /lib/x86_64-linux-gnu/libpthread.so.0
> #2  0x00002ac8c6310480 in __GI___pthread_mutex_lock
> (mutex=0x2ac8be8dad00 <qemu_global_mutex>) at
> ../nptl/pthread_mutex_lock.c:79
> #3  0x00002ac8be3a9f89 in qemu_mutex_lock
> (mutex=mutex@entry=0x2ac8be8dad00 <qemu_global_mutex>) at
> /home/petmay01/linaro/qemu-for-merges/util/qemu-thread-posix.c:73
> #4  0x00002ac8be0554a4 in qemu_mutex_lock_iothread () at
> /home/petmay01/linaro/qemu-for-merges/cpus.c:1164
> #5  0x00002ac8be3ba33e in call_rcu_thread (opaque=<optimised out>) at
> /home/petmay01/linaro/qemu-for-merges/util/rcu.c:241
> #6  0x00002ac8c630e182 in start_thread (arg=0x2ac8d2d5f700) at
> pthread_create.c:312
> #7  0x00002ac8c661e47d in clone () at
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
> 
> Thread 2 (Thread 0x2ac8d33ac700 (LWP 17912)):
> #0  0x00002ac8c63160d1 in do_sigwait (sig=0x2ac8d33ab99c,
> set=<optimised out>) at
> ../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:60
> #1  __sigwait (set=set@entry=0x2ac8d33ab9a0,
> sig=sig@entry=0x2ac8d33ab99c) at
> ../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:97
> #2  0x00002ac8be055937 in qemu_dummy_cpu_thread_fn
> (arg=0x2ac8bed53450) at
> /home/petmay01/linaro/qemu-for-merges/cpus.c:1016
> #3  0x00002ac8c630e182 in start_thread (arg=0x2ac8d33ac700) at
> pthread_create.c:312
> #4  0x00002ac8c661e47d in clone () at
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
> 
> Thread 1 (Thread 0x2ac8be572680 (LWP 17910)):
> #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
> #1  0x00002ac8be3aa5f2 in futex_wait (val=4294967295,
> ev=0x2ac8be669708) at
> /home/petmay01/linaro/qemu-for-merges/util/qemu-thread-posix.c:301
> #2  qemu_event_wait (ev=ev@entry=0x2ac8be669708) at
> /home/petmay01/linaro/qemu-for-merges/util/qemu-thread-posix.c:399
> #3  0x00002ac8be325e41 in qemu_clock_enable
> (type=type@entry=QEMU_CLOCK_VIRTUAL, enabled=enabled@entry=false) at
> /home/petmay01/linaro/qemu-for-merges/qemu-timer.c:167
> #4  0x00002ac8be055d22 in pause_all_vcpus () at
> /home/petmay01/linaro/qemu-for-merges/cpus.c:1200
> #5  0x00002ac8be01491d in main_loop_should_exit () at
> /home/petmay01/linaro/qemu-for-merges/vl.c:1864
> #6  main_loop () at /home/petmay01/linaro/qemu-for-merges/vl.c:1906
> #7  main (argc=<optimised out>, argv=<optimised out>, envp=<optimised
> out>) at /home/petmay01/linaro/qemu-for-merges/vl.c:4653
> 
> thanks
> -- PMM
> 

That's mine...

Paolo