[Qemu-devel] [PULL v3 00/23] Docker and block patches

Fam Zheng posted 23 patches 8 years, 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170608115643.18859-1-famz@redhat.com
Test FreeBSD passed
Test checkpatch failed
Test docker failed
Test s390x passed
There is a newer version of this series
block.c                                 |   9 +-
block/accounting.c                      |  78 +++++++------
block/block-backend.c                   |   6 +-
block/dirty-bitmap.c                    | 114 +++++++++++++++++--
block/io.c                              |  51 +++++----
block/mirror.c                          |  14 ++-
block/nfs.c                             |   4 +-
block/qapi.c                            |   2 +-
block/sheepdog.c                        |   3 +-
block/throttle-groups.c                 |  91 +++++++++++----
blockdev.c                              |  48 ++------
include/block/accounting.h              |  11 +-
include/block/block.h                   |   5 +-
include/block/block_int.h               |  65 +++++++----
include/block/dirty-bitmap.h            |  25 +++--
include/qemu/stats64.h                  | 193 ++++++++++++++++++++++++++++++++
include/sysemu/block-backend.h          |  10 +-
migration/block.c                       |  17 ++-
tests/docker/Makefile.include           |   2 +-
tests/docker/dockerfiles/centos6.docker |   2 +-
tests/docker/dockerfiles/fedora.docker  |   4 +-
util/Makefile.objs                      |   1 +
util/stats64.c                          | 137 +++++++++++++++++++++++
23 files changed, 700 insertions(+), 192 deletions(-)
create mode 100644 include/qemu/stats64.h
create mode 100644 util/stats64.c
[Qemu-devel] [PULL v3 00/23] Docker and block patches
Posted by Fam Zheng 8 years, 5 months ago
The following changes since commit 64175afc695c0672876fbbfc31b299c86d562cb4:

  arm_gicv3: Fix ICC_BPR1 reset value when EL3 not implemented (2017-06-07 17:21:44 +0100)

are available in the git repository at:

  git://github.com/famz/qemu.git tags/docker-and-block-pull-request

for you to fetch changes up to 383226d7f90e83fd2b4ea5fbedf67bd9d3173221:

  block: make accounting thread-safe (2017-06-08 19:09:23 +0800)

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

v3: Update Paolo's series to fix make check on OSX.

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

Fam Zheng (4):
  docker: Run tests with current user
  docker: Add bzip2 and hostname to fedora image
  docker: Add libaio to fedora image
  docker: Add flex and bison to centos6 image

Paolo Bonzini (19):
  block: access copy_on_read with atomic ops
  block: access quiesce_counter with atomic ops
  block: access io_limits_disabled with atomic ops
  block: access serialising_in_flight with atomic ops
  block: access wakeup with atomic ops
  block: access io_plugged with atomic ops
  throttle-groups: only start one coroutine from drained_begin
  throttle-groups: do not use qemu_co_enter_next
  throttle-groups: protect throttled requests with a CoMutex
  util: add stats64 module
  block: use Stat64 for wr_highest_offset
  block: access write_gen with atomics
  block: protect tracked_requests and flush_queue with reqs_lock
  block: introduce dirty_bitmap_mutex
  migration/block: reset dirty bitmap before reading
  block: protect modification of dirty bitmaps with a mutex
  block: introduce block_account_one_io
  block: split BlockAcctStats creation and setup
  block: make accounting thread-safe

 block.c                                 |   9 +-
 block/accounting.c                      |  78 +++++++------
 block/block-backend.c                   |   6 +-
 block/dirty-bitmap.c                    | 114 +++++++++++++++++--
 block/io.c                              |  51 +++++----
 block/mirror.c                          |  14 ++-
 block/nfs.c                             |   4 +-
 block/qapi.c                            |   2 +-
 block/sheepdog.c                        |   3 +-
 block/throttle-groups.c                 |  91 +++++++++++----
 blockdev.c                              |  48 ++------
 include/block/accounting.h              |  11 +-
 include/block/block.h                   |   5 +-
 include/block/block_int.h               |  65 +++++++----
 include/block/dirty-bitmap.h            |  25 +++--
 include/qemu/stats64.h                  | 193 ++++++++++++++++++++++++++++++++
 include/sysemu/block-backend.h          |  10 +-
 migration/block.c                       |  17 ++-
 tests/docker/Makefile.include           |   2 +-
 tests/docker/dockerfiles/centos6.docker |   2 +-
 tests/docker/dockerfiles/fedora.docker  |   4 +-
 util/Makefile.objs                      |   1 +
 util/stats64.c                          | 137 +++++++++++++++++++++++
 23 files changed, 700 insertions(+), 192 deletions(-)
 create mode 100644 include/qemu/stats64.h
 create mode 100644 util/stats64.c

-- 
2.9.4


Re: [Qemu-devel] [PULL v3 00/23] Docker and block patches
Posted by Peter Maydell 8 years, 4 months ago
On 8 June 2017 at 12:56, Fam Zheng <famz@redhat.com> wrote:
> The following changes since commit 64175afc695c0672876fbbfc31b299c86d562cb4:
>
>   arm_gicv3: Fix ICC_BPR1 reset value when EL3 not implemented (2017-06-07 17:21:44 +0100)
>
> are available in the git repository at:
>
>   git://github.com/famz/qemu.git tags/docker-and-block-pull-request
>
> for you to fetch changes up to 383226d7f90e83fd2b4ea5fbedf67bd9d3173221:
>
>   block: make accounting thread-safe (2017-06-08 19:09:23 +0800)
>
> ----------------------------------------------------------------
>
> v3: Update Paolo's series to fix make check on OSX.
>
> ----------------------------------------------------------------

This still fails on OSX:

  GTESTER tests/test-blockjob
qemu: qemu_mutex_lock: Invalid argument

The backtrace is different from last time:

* thread #1: tid = 0x7f066a, 0x00007fffc611ad42
libsystem_kernel.dylib`__pthread_kill + 10, queue =
'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x00007fffc611ad42 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fffc6208457 libsystem_pthread.dylib`pthread_kill + 90
    frame #2: 0x00007fffc6080420 libsystem_c.dylib`abort + 129
    frame #3: 0x00000001000c1265
test-blockjob`error_exit(err=<unavailable>, msg=<unavailable>) + 53 at
qemu-thread-posix.c:36
    frame #4: 0x00000001000c1327
test-blockjob`qemu_mutex_lock(mutex=<unavailable>) + 151 at
qemu-thread-posix.c:63
    frame #5: 0x000000010005eef7
test-blockjob`bdrv_do_release_matching_dirty_bitmap [inlined]
bdrv_dirty_bitmaps_lock(bs=0x0000000101806000) + 39 at
dirty-bitmap.c:58
    frame #6: 0x000000010005eee7
test-blockjob`bdrv_do_release_matching_dirty_bitmap(bs=0x0000000101806000,
bitmap=0x0000000000000000, only_named=true) + 23 at dirty-bitmap.c:349
    frame #7: 0x000000010000962d test-blockjob`bdrv_delete [inlined]
bdrv_close(bs=0x0000000101806000) + 32 at block.c:3042
    frame #8: 0x000000010000960d
test-blockjob`bdrv_delete(bs=0x0000000101806000) + 61 at block.c:3229
    frame #9: 0x0000000100043da2
test-blockjob`blk_remove_bs(blk=0x0000000100d0a7d0) + 98 at
block-backend.c:607
    frame #10: 0x0000000100001318 test-blockjob`test_job_ids [inlined]
destroy_blk(blk=0x0000000100d0a7d0) + 29 at test-blockjob.c:83
    frame #11: 0x00000001000012fb test-blockjob`test_job_ids + 411 at
test-blockjob.c:140
    frame #12: 0x000000010070d91d
libglib-2.0.0.dylib`g_test_run_suite_internal + 626
    frame #13: 0x000000010070dae1
libglib-2.0.0.dylib`g_test_run_suite_internal + 1078
    frame #14: 0x000000010070d198 libglib-2.0.0.dylib`g_test_run_suite + 266
    frame #15: 0x0000000100001148
test-blockjob`main(argc=<unavailable>, argv=<unavailable>) + 88 at
test-blockjob.c:152
    frame #16: 0x00007fffc5fec235 libdyld.dylib`start + 1
    frame #17: 0x00007fffc5fec235 libdyld.dylib`start + 1

thanks
-- PMM

Re: [Qemu-devel] [PULL v3 00/23] Docker and block patches
Posted by Fam Zheng 8 years, 4 months ago
On Mon, 06/12 19:26, Peter Maydell wrote:
> On 8 June 2017 at 12:56, Fam Zheng <famz@redhat.com> wrote:
> > The following changes since commit 64175afc695c0672876fbbfc31b299c86d562cb4:
> >
> >   arm_gicv3: Fix ICC_BPR1 reset value when EL3 not implemented (2017-06-07 17:21:44 +0100)
> >
> > are available in the git repository at:
> >
> >   git://github.com/famz/qemu.git tags/docker-and-block-pull-request
> >
> > for you to fetch changes up to 383226d7f90e83fd2b4ea5fbedf67bd9d3173221:
> >
> >   block: make accounting thread-safe (2017-06-08 19:09:23 +0800)
> >
> > ----------------------------------------------------------------
> >
> > v3: Update Paolo's series to fix make check on OSX.
> >
> > ----------------------------------------------------------------
> 
> This still fails on OSX:
> 
>   GTESTER tests/test-blockjob
> qemu: qemu_mutex_lock: Invalid argument
> 
> The backtrace is different from last time:
> 
> * thread #1: tid = 0x7f066a, 0x00007fffc611ad42
> libsystem_kernel.dylib`__pthread_kill + 10, queue =
> 'com.apple.main-thread', stop reason = signal SIGABRT
>   * frame #0: 0x00007fffc611ad42 libsystem_kernel.dylib`__pthread_kill + 10
>     frame #1: 0x00007fffc6208457 libsystem_pthread.dylib`pthread_kill + 90
>     frame #2: 0x00007fffc6080420 libsystem_c.dylib`abort + 129
>     frame #3: 0x00000001000c1265
> test-blockjob`error_exit(err=<unavailable>, msg=<unavailable>) + 53 at
> qemu-thread-posix.c:36
>     frame #4: 0x00000001000c1327
> test-blockjob`qemu_mutex_lock(mutex=<unavailable>) + 151 at
> qemu-thread-posix.c:63
>     frame #5: 0x000000010005eef7
> test-blockjob`bdrv_do_release_matching_dirty_bitmap [inlined]
> bdrv_dirty_bitmaps_lock(bs=0x0000000101806000) + 39 at
> dirty-bitmap.c:58
>     frame #6: 0x000000010005eee7
> test-blockjob`bdrv_do_release_matching_dirty_bitmap(bs=0x0000000101806000,
> bitmap=0x0000000000000000, only_named=true) + 23 at dirty-bitmap.c:349
>     frame #7: 0x000000010000962d test-blockjob`bdrv_delete [inlined]
> bdrv_close(bs=0x0000000101806000) + 32 at block.c:3042
>     frame #8: 0x000000010000960d
> test-blockjob`bdrv_delete(bs=0x0000000101806000) + 61 at block.c:3229
>     frame #9: 0x0000000100043da2
> test-blockjob`blk_remove_bs(blk=0x0000000100d0a7d0) + 98 at
> block-backend.c:607
>     frame #10: 0x0000000100001318 test-blockjob`test_job_ids [inlined]
> destroy_blk(blk=0x0000000100d0a7d0) + 29 at test-blockjob.c:83
>     frame #11: 0x00000001000012fb test-blockjob`test_job_ids + 411 at
> test-blockjob.c:140
>     frame #12: 0x000000010070d91d
> libglib-2.0.0.dylib`g_test_run_suite_internal + 626
>     frame #13: 0x000000010070dae1
> libglib-2.0.0.dylib`g_test_run_suite_internal + 1078
>     frame #14: 0x000000010070d198 libglib-2.0.0.dylib`g_test_run_suite + 266
>     frame #15: 0x0000000100001148
> test-blockjob`main(argc=<unavailable>, argv=<unavailable>) + 88 at
> test-blockjob.c:152
>     frame #16: 0x00007fffc5fec235 libdyld.dylib`start + 1
>     frame #17: 0x00007fffc5fec235 libdyld.dylib`start + 1

Paolo: missing "qemu_mutex_init(&bs->dirty_bitmap_mutex)" in bdrv_new()?

(Any idea what is the easiest way to add a (VM|container|baremetal) OSX build
env to patchew?)

Fam

Re: [Qemu-devel] [PULL v3 00/23] Docker and block patches
Posted by Paolo Bonzini 8 years, 4 months ago

On 14/06/2017 13:04, Fam Zheng wrote:
> On Mon, 06/12 19:26, Peter Maydell wrote:
>> On 8 June 2017 at 12:56, Fam Zheng <famz@redhat.com> wrote:
>>> The following changes since commit 64175afc695c0672876fbbfc31b299c86d562cb4:
>>>
>>>   arm_gicv3: Fix ICC_BPR1 reset value when EL3 not implemented (2017-06-07 17:21:44 +0100)
>>>
>>> are available in the git repository at:
>>>
>>>   git://github.com/famz/qemu.git tags/docker-and-block-pull-request
>>>
>>> for you to fetch changes up to 383226d7f90e83fd2b4ea5fbedf67bd9d3173221:
>>>
>>>   block: make accounting thread-safe (2017-06-08 19:09:23 +0800)
>>>
>>> ----------------------------------------------------------------
>>>
>>> v3: Update Paolo's series to fix make check on OSX.
>>>
>>> ----------------------------------------------------------------
>>
>> This still fails on OSX:
>>
>>   GTESTER tests/test-blockjob
>> qemu: qemu_mutex_lock: Invalid argument
>>
>> The backtrace is different from last time:
>>
>> * thread #1: tid = 0x7f066a, 0x00007fffc611ad42
>> libsystem_kernel.dylib`__pthread_kill + 10, queue =
>> 'com.apple.main-thread', stop reason = signal SIGABRT
>>   * frame #0: 0x00007fffc611ad42 libsystem_kernel.dylib`__pthread_kill + 10
>>     frame #1: 0x00007fffc6208457 libsystem_pthread.dylib`pthread_kill + 90
>>     frame #2: 0x00007fffc6080420 libsystem_c.dylib`abort + 129
>>     frame #3: 0x00000001000c1265
>> test-blockjob`error_exit(err=<unavailable>, msg=<unavailable>) + 53 at
>> qemu-thread-posix.c:36
>>     frame #4: 0x00000001000c1327
>> test-blockjob`qemu_mutex_lock(mutex=<unavailable>) + 151 at
>> qemu-thread-posix.c:63
>>     frame #5: 0x000000010005eef7
>> test-blockjob`bdrv_do_release_matching_dirty_bitmap [inlined]
>> bdrv_dirty_bitmaps_lock(bs=0x0000000101806000) + 39 at
>> dirty-bitmap.c:58
>>     frame #6: 0x000000010005eee7
>> test-blockjob`bdrv_do_release_matching_dirty_bitmap(bs=0x0000000101806000,
>> bitmap=0x0000000000000000, only_named=true) + 23 at dirty-bitmap.c:349
>>     frame #7: 0x000000010000962d test-blockjob`bdrv_delete [inlined]
>> bdrv_close(bs=0x0000000101806000) + 32 at block.c:3042
>>     frame #8: 0x000000010000960d
>> test-blockjob`bdrv_delete(bs=0x0000000101806000) + 61 at block.c:3229
>>     frame #9: 0x0000000100043da2
>> test-blockjob`blk_remove_bs(blk=0x0000000100d0a7d0) + 98 at
>> block-backend.c:607
>>     frame #10: 0x0000000100001318 test-blockjob`test_job_ids [inlined]
>> destroy_blk(blk=0x0000000100d0a7d0) + 29 at test-blockjob.c:83
>>     frame #11: 0x00000001000012fb test-blockjob`test_job_ids + 411 at
>> test-blockjob.c:140
>>     frame #12: 0x000000010070d91d
>> libglib-2.0.0.dylib`g_test_run_suite_internal + 626
>>     frame #13: 0x000000010070dae1
>> libglib-2.0.0.dylib`g_test_run_suite_internal + 1078
>>     frame #14: 0x000000010070d198 libglib-2.0.0.dylib`g_test_run_suite + 266
>>     frame #15: 0x0000000100001148
>> test-blockjob`main(argc=<unavailable>, argv=<unavailable>) + 88 at
>> test-blockjob.c:152
>>     frame #16: 0x00007fffc5fec235 libdyld.dylib`start + 1
>>     frame #17: 0x00007fffc5fec235 libdyld.dylib`start + 1
> 
> Paolo: missing "qemu_mutex_init(&bs->dirty_bitmap_mutex)" in bdrv_new()?

Yes. :(

> (Any idea what is the easiest way to add a (VM|container|baremetal) OSX build
> env to patchew?)

Pretty hard, but we could add some code to detect uninitialized
QemuMutex instead.

Paolo