qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] b8a205: virtio-ccw: remove qdev_unparent in u


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] b8a205: virtio-ccw: remove qdev_unparent in unplug routing
Date: Fri, 15 Mar 2013 09:30:18 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: b8a205f2ed222a5d24bf7e8346919abee861d026
      
https://github.com/qemu/qemu/commit/b8a205f2ed222a5d24bf7e8346919abee861d026
  Author: Christian Borntraeger <address@hidden>
  Date:   2013-03-12 (Tue, 12 Mar 2013)

  Changed paths:
    M hw/s390x/virtio-ccw.c

  Log Message:
  -----------
  virtio-ccw: remove qdev_unparent in unplug routing

This patch fixes unplugging a virtio-ccw device. We no
longer need to do that in virtio-ccw since common code does now
proper handling.

Signed-off-by: Christian Borntraeger <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 2362ecc5c6f4073f7f4c9c3f45c335aa8a2261bb
      
https://github.com/qemu/qemu/commit/2362ecc5c6f4073f7f4c9c3f45c335aa8a2261bb
  Author: Cornelia Huck <address@hidden>
  Date:   2013-03-12 (Tue, 12 Mar 2013)

  Changed paths:
    M hw/s390x/virtio-ccw.c
    M hw/s390x/virtio-ccw.h

  Log Message:
  -----------
  virtio-ccw: Wire up virtio-rng.

Make virtio-rng devices available for s390-ccw-virtio machines.

Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 1a86938f04b1abfd28e053b8c6f4b8ed9e4ffe08
      
https://github.com/qemu/qemu/commit/1a86938f04b1abfd28e053b8c6f4b8ed9e4ffe08
  Author: Kevin Wolf <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block.c
    M block/bochs.c
    M block/cloop.c
    M block/cow.c
    M block/dmg.c
    M block/parallels.c
    M block/qcow.c
    M block/qcow2.c
    M block/qed.c
    M block/raw.c
    M block/vdi.c
    M block/vmdk.c
    M block/vpc.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: Add options QDict to .bdrv_open()

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: de9c0cec6c823071b903ebeebf1ee70b394ff46f
      
https://github.com/qemu/qemu/commit/de9c0cec6c823071b903ebeebf1ee70b394ff46f
  Author: Kevin Wolf <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block.c
    M block/blkverify.c
    M block/qcow2.c
    M block/vmdk.c
    M block/vvfat.c
    M blockdev.c
    M hw/xen_disk.c
    M include/block/block.h
    M include/block/block_int.h
    M qemu-img.c
    M qemu-io.c
    M qemu-nbd.c

  Log Message:
  -----------
  block: Add options QDict to bdrv_open() prototype

It doesn't do anything yet except storing the options QDict in the
BlockDriverState.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: b382bc9a1504c7f7c112881695d08293b906b88f
      
https://github.com/qemu/qemu/commit/b382bc9a1504c7f7c112881695d08293b906b88f
  Author: Kevin Wolf <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M include/qapi/qmp/qdict.h
    M qobject/qdict.c

  Log Message:
  -----------
  Add qdict_clone_shallow()

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: b6ad491a4921557efc8815fe0ca5f11c6d8d587e
      
https://github.com/qemu/qemu/commit/b6ad491a4921557efc8815fe0ca5f11c6d8d587e
  Author: Kevin Wolf <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Add options QDict to bdrv_open_common()

The options are passed down to the block drivers, which are supposed to
remove all options they have processed. Anything that is left over in
the end is an unknown option and results in an error.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 376609cc6c03c2ffc8c323d804d27f95346cac08
      
https://github.com/qemu/qemu/commit/376609cc6c03c2ffc8c323d804d27f95346cac08
  Author: Kevin Wolf <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M include/qemu/option.h
    M util/qemu-option.c

  Log Message:
  -----------
  qemu-option: Add qemu_opts_absorb_qdict()

This adds a function that adds all entries of a QDict to a QemuOpts if
the keys are known, and leaves only the rest in the QDict.

This way a single QDict of -drive options can be processed in multiple
places (generic block layer, block driver, backing file block driver,
etc.), where each part picks the options it knows. If at the end of the
process the QDict isn't empty, the user specified an invalid option.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: bb44619b06c0bef20b658ff532cf850c16362ae7
      
https://github.com/qemu/qemu/commit/bb44619b06c0bef20b658ff532cf850c16362ae7
  Author: Kevin Wolf <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M blockdev.c
    M include/sysemu/blockdev.h

  Log Message:
  -----------
  blockdev: Keep a copy of DriveInfo.serial

Pointing to a QemuOpts element is surprising and can lead to subtle
use-after-free errors when the QemuOpts is freed after all options are
parsed.

Signed-off-by: Kevin Wolf <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 0006383e1549b6f9b264575d124c553efca19d62
      
https://github.com/qemu/qemu/commit/0006383e1549b6f9b264575d124c553efca19d62
  Author: Kevin Wolf <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  block: Support driver specific options in drive_init()

Any non-default -drive options are now passed down to the block drivers.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 74c4510a3cf7c369ee524c6f8fa8a87cf08ba608
      
https://github.com/qemu/qemu/commit/74c4510a3cf7c369ee524c6f8fa8a87cf08ba608
  Author: Kevin Wolf <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block/qcow2-cluster.c
    M block/qcow2.c
    M block/qcow2.h

  Log Message:
  -----------
  qcow2: Allow lazy refcounts to be enabled on the command line

qcow2 images now accept a boolean lazy_refcounts options. Use it like
this:

  -drive file=test.qcow2,lazy_refcounts=on

If the option is specified on the command line, it overrides the default
specified by the qcow2 header flags that were set when creating the
image.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 9991923b262dc35f6dd8393ab4853edd7fc3724f
      
https://github.com/qemu/qemu/commit/9991923b262dc35f6dd8393ab4853edd7fc3724f
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block/qcow2-refcount.c

  Log Message:
  -----------
  qcow2: flush refcount cache correctly in alloc_refcount_block()

update_refcount() affects the refcount cache, it does not write to disk.
Therefore bdrv_flush(bs->file) does nothing.  We need to flush the
refcount cache in order to write out the refcount updates!

While we're here also add error returns when qcow2_cache_flush() fails.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: f6977f15561973d4a67b6aa46da88aa678c505dd
      
https://github.com/qemu/qemu/commit/f6977f15561973d4a67b6aa46da88aa678c505dd
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block/qcow2-snapshot.c

  Log Message:
  -----------
  qcow2: flush refcount cache correctly in qcow2_write_snapshots()

Since qcow2 metadata is cached we need to flush the caches, not just the
underlying file.  Use bdrv_flush(bs) instead of bdrv_flush(bs->file).

Also add the error return path when bdrv_flush() fails and move the
flush after checking for qcow2_alloc_clusters() failure so that the
qcow2_alloc_clusters() error return value takes precedence.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c1f5bafd70a8d9366570a3de472ef108415cd631
      
https://github.com/qemu/qemu/commit/c1f5bafd70a8d9366570a3de472ef108415cd631
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block/qcow2-refcount.c

  Log Message:
  -----------
  qcow2: set L2 cache dependency in qcow2_alloc_bytes()

Compressed writes use qcow2_alloc_bytes() to allocate space with byte
granularity.  The affected clusters' refcounts will be incremented but
we do not need to flush yet.

Set a L2 cache dependency on the refcount block cache, so that the
refcounts get written out before the L2 updates.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 2154f24e4e3be4435f17fa4382032f95f19e2972
      
https://github.com/qemu/qemu/commit/2154f24e4e3be4435f17fa4382032f95f19e2972
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block/qcow2-refcount.c
    M block/qcow2-snapshot.c

  Log Message:
  -----------
  qcow2: flush in qcow2_update_snapshot_refcount()

Users of qcow2_update_snapshot_refcount() do not flush consistently.
qcow2_snapshot_create() flushes but qcow2_snapshot_goto() and
qcow2_snapshot_delete() do not.

Solve this by moving the bdrv_flush() into
qcow2_update_snapshot_refcount().

Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: f9cb2860bd12e223036b61a1f5d1444e57b7efce
      
https://github.com/qemu/qemu/commit/f9cb2860bd12e223036b61a1f5d1444e57b7efce
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block/qcow2-refcount.c

  Log Message:
  -----------
  qcow2: drop flush in update_cluster_refcount()

The update_cluster_refcount() function increments/decrements a cluster's
refcount and then returns the new refcount value.

There is no need to flush since both update_cluster_refcount() callers
already take care of this:

1. qcow2_alloc_bytes() calls update_cluster_refcount() when compressed
   sectors will be appended to an existing cluster with enough free
   space.  qcow2_alloc_bytes() already flushes so there is no need to do
   so in update_cluster_refcount().

2. qcow2_update_snapshot_refcount() sets a cache dependency on refcounts
   if it needs to update L2 entries.  It also flushes before completing.

Removing this flush significantly speeds up qcow2 snapshot creation:

  $ qemu-img create -f qcow2 test.qcow2 -o size=50G,preallocation=metadata
  $ time qemu-img snapshot -c new test.qcow2

Time drops from more than 3 minutes to under 1 second.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 3647917919dfce5f731755f0ac5955a64bc12570
      
https://github.com/qemu/qemu/commit/3647917919dfce5f731755f0ac5955a64bc12570
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block/qcow2-refcount.c

  Log Message:
  -----------
  qcow2: drop unnecessary flush in qcow2_update_snapshot_refcount()

We already flush when the function completes.  There is no need to flush
after every compressed cluster.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 381b487d54ba18c73df9db8452028a330058c505
      
https://github.com/qemu/qemu/commit/381b487d54ba18c73df9db8452028a330058c505
  Author: Paolo Bonzini <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block/qcow2-cluster.c
    M block/qcow2.c

  Log Message:
  -----------
  qcow2: make is_allocated return true for zero clusters

Otherwise, live migration of the top layer will miss zero clusters and
let the backing file show through.  This also matches what is done in qed.

QCOW2_CLUSTER_ZERO clusters are invalid in v2 image files.  Check this
directly in qcow2_get_cluster_offset instead of replicating the test
everywhere.

Cc: address@hidden
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 0d6db300cd95339cec6b8ab2ef46bd7cdb040959
      
https://github.com/qemu/qemu/commit/0d6db300cd95339cec6b8ab2ef46bd7cdb040959
  Author: MORITA Kazutaka <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block/sheepdog.c

  Log Message:
  -----------
  sheepdog: use non-blocking fd in coroutine context

Using a blocking socket in the coroutine context reduces the chance of
switching to other work.  This patch makes the sheepdog driver use a
non-blocking fd always.

Signed-off-by: MORITA Kazutaka <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: ed9ba7246758e3250849bfa0a055b4eb98fc5152
      
https://github.com/qemu/qemu/commit/ed9ba7246758e3250849bfa0a055b4eb98fc5152
  Author: MORITA Kazutaka <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block/sheepdog.c

  Log Message:
  -----------
  sheepdog: set io_flush handler in do_co_req

If an io_flush handler is not set, qemu_aio_wait doesn't invoke
callbacks.

Signed-off-by: MORITA Kazutaka <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 5f3aa1ff4781f39e05b9892d58319a09fedc8918
      
https://github.com/qemu/qemu/commit/5f3aa1ff4781f39e05b9892d58319a09fedc8918
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M include/qemu/main-loop.h
    M main-loop.c

  Log Message:
  -----------
  main-loop: add qemu_get_aio_context()

It is very useful to get the main loop AioContext, which is a static
variable in main-loop.c.

I'm not sure whether qemu_get_aio_context() will be necessary in the
future once devices focus on using their own AioContext instead of the
main loop AioContext, but for now it allows us to refactor code to
support multiple AioContext while actually passing the main loop
AioContext.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>


  Commit: b811203cf2fbf83e26f8e8feb2c77784259a4cbd
      
https://github.com/qemu/qemu/commit/b811203cf2fbf83e26f8e8feb2c77784259a4cbd
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M thread-pool.c
    M trace-events

  Log Message:
  -----------
  threadpool: move globals into struct ThreadPool

Move global variables into a struct so multiple thread pools can be
supported in the future.

This patch does not change thread-pool.h interfaces.  There is still a
global thread pool and it is not yet possible to create/destroy
individual thread pools.  Moving the variables into a struct first makes
later patches easier to review.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>


  Commit: f7311ccc630d925e7351e9440b7ad8bc6f0a51de
      
https://github.com/qemu/qemu/commit/f7311ccc630d925e7351e9440b7ad8bc6f0a51de
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M include/block/thread-pool.h
    M thread-pool.c

  Log Message:
  -----------
  threadpool: add thread_pool_new() and thread_pool_free()

ThreadPool is tied to an AioContext through its event notifier, which
dictates in which AioContext the work item's callback function will be
invoked.

In order to support multiple AioContexts we need to support multiple
ThreadPool instances.

This patch adds the new/free functions.  The free function deserves
special attention because it quiesces remaining worker threads.  This
requires a new condition variable and a "stopping" flag to let workers
know they should terminate once idle.

We never needed to do this before since the global threadpool was not
explicitly destroyed until process termination.

Also stash the AioContext pointer in ThreadPool so that we can call
aio_set_event_notifier() in thread_pool_free().  We didn't need to hold
onto AioContext previously since there was no free function.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>


  Commit: 9b34277d23a6fb15eb9513006c96d8026beeea1f
      
https://github.com/qemu/qemu/commit/9b34277d23a6fb15eb9513006c96d8026beeea1f
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M async.c
    M include/block/aio.h

  Log Message:
  -----------
  aio: add a ThreadPool instance to AioContext

This patch adds a ThreadPool to AioContext.  It's possible that some
AioContext instances will never use the ThreadPool, so defer creation
until aio_get_thread_pool().

The reason why AioContext should have the ThreadPool is because the
ThreadPool is bound to a AioContext instance where the work item's
callback function is invoked.  It doesn't make sense to keep the
ThreadPool pointer anywhere other than AioContext.  For example,
block/raw-posix.c can get its AioContext's ThreadPool and submit work.

Special note about headers: I used struct ThreadPool in aio.h because
there is a circular dependency if aio.h includes thread-pool.h.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>


  Commit: 85d126f3ee666702ac514c66606c62d276c4341c
      
https://github.com/qemu/qemu/commit/85d126f3ee666702ac514c66606c62d276c4341c
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: add bdrv_get_aio_context()

For now bdrv_get_aio_context() is just a stub that calls
qemu_aio_get_context() since the block layer is currently tied to the
main loop AioContext.

Add the stub now so that the block layer can begin accessing its
AioContext.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>


  Commit: c4d9d19645a484298a67e9021060bc7c2b081d0f
      
https://github.com/qemu/qemu/commit/c4d9d19645a484298a67e9021060bc7c2b081d0f
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M block/raw-posix.c
    M block/raw-win32.c
    M include/block/thread-pool.h
    M tests/test-thread-pool.c
    M thread-pool.c

  Log Message:
  -----------
  threadpool: drop global thread pool

Now that each AioContext has a ThreadPool and the main loop AioContext
can be fetched with bdrv_get_aio_context(), we can eliminate the concept
of a global thread pool from thread-pool.c.

The submit functions must take a ThreadPool* argument.

block/raw-posix.c and block/raw-win32.c use
aio_get_thread_pool(bdrv_get_aio_context(bs)) to fetch the main loop's
ThreadPool.

tests/test-thread-pool.c must be updated to reflect the new
thread_pool_submit() function prototypes.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>


  Commit: 28f082469650a0f4c0e37b4ccd6f9514b1a0698d
      
https://github.com/qemu/qemu/commit/28f082469650a0f4c0e37b4ccd6f9514b1a0698d
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M include/block/coroutine.h
    M qemu-coroutine-lock.c

  Log Message:
  -----------
  coroutine: use AioContext for CoQueue BH

CoQueue uses a BH to awake coroutines that were made ready to run again
using qemu_co_queue_next() or qemu_co_queue_restart_all().  The BH
currently runs in the iothread AioContext and would break coroutines
that run in a different AioContext.

This is a slightly tricky problem because the lifetime of the BH exceeds
that of the CoQueue.  This means coroutines can be awoken after CoQueue
itself has been freed.  Also, there is no qemu_co_queue_destroy()
function which we could use to handle freeing resources.

Introducing qemu_co_queue_destroy() has a ripple effect of requiring us
to also add qemu_co_mutex_destroy() and qemu_co_rwlock_destroy(), as
well as updating all callers.  Avoid doing that.

We also cannot switch from BH to GIdle function because aio_poll() does
not dispatch GIdle functions.  (GIdle functions make memory management
slightly easier because they free themselves.)

Finally, I don't want to move unlock_queue and unlock_bh into
AioContext.  That would break encapsulation - AioContext isn't supposed
to know about CoQueue.

This patch implements a different solution: each qemu_co_queue_next() or
qemu_co_queue_restart_all() call creates a new BH and list of coroutines
to wake up.  Callers tend to invoke qemu_co_queue_next() and
qemu_co_queue_restart_all() occasionally after blocking I/O, so creating
a new BH for each call shouldn't be massively inefficient.

Note that this patch does not add an interface for specifying the
AioContext.  That is left to future patches which will convert CoQueue,
CoMutex, and CoRwlock to expose AioContext.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>


  Commit: 485e3ce88e8af0e5311dd626f399b3a1e0846dd6
      
https://github.com/qemu/qemu/commit/485e3ce88e8af0e5311dd626f399b3a1e0846dd6
  Author: Paolo Bonzini <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M hw/dataplane/virtio-blk.c

  Log Message:
  -----------
  dataplane: fix hang introduced by AioContext transition

The bug is that the EventNotifiers do have a NULL io_flush callback.
Because _none_ of the callbacks on the dataplane AioContext have such a
callback, aio_poll will simply do nothing.  Fixed by adding the callbacks:
the ioeventfd will always be polled (this can change in the future to
pause/resume the processing during live snapshots or similar operations);
the ioqueue will be polled if there are outstanding requests.

I must admit I have screwed up my testing somehow, because commit
2c20e71 does not work even if cherry-picked on top of 1.4.0, and this
patch fixes it there as well.

Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: acbf30ec601b1f817febc4500025b7c4181312c4
      
https://github.com/qemu/qemu/commit/acbf30ec601b1f817febc4500025b7c4181312c4
  Author: Paolo Bonzini <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    A tests/qemu-iotests/050
    A tests/qemu-iotests/050.out
    M tests/qemu-iotests/group

  Log Message:
  -----------
  qemu-iotests: add tests for rebasing zero clusters

If zero clusters are erroneously treated as unallocated, "qemu-img rebase"
will copy the backing file's contents onto the cluster.

The bug existed also in image streaming, but since the root cause was in
qcow2's is_allocated implementation it is enough to test it with qemu-img.

Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 804dd41792c8bdc0c8b34c8e580882ff8ef736d8
      
https://github.com/qemu/qemu/commit/804dd41792c8bdc0c8b34c8e580882ff8ef736d8
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M tests/qemu-iotests/007

  Log Message:
  -----------
  qemu-iotests: use -nographic in test case 007

A comment explains that -nographic hangs test case 007.  This is no
longer the case so add -nographic.  This makes the test suite faster and
more pleasant to run since no windows pop up.

I am not sure exactly when -nographic starting working for this case but
there is no fundamental reason why graphics are needed here.  Make sure
the serial port is not on stdio, it would conflict with the monitor.

Also remove unnecessary trailing whitespace on these lines.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Tested-by: Kevin Wolf <address@hidden>


  Commit: 3618a094022e984d4e045c6db21aed961b7c6fc9
      
https://github.com/qemu/qemu/commit/3618a094022e984d4e045c6db21aed961b7c6fc9
  Author: Markus Armbruster <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  blockdev: Fix up copyright and permission notice

Screwed up in commit 666daa68.  Thanks to Kevin Wolf for reminding me
to fix this.

Signed-off-by: Markus Armbruster <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: d4d7682484f339d70355b165a15f8f5e83638e40
      
https://github.com/qemu/qemu/commit/d4d7682484f339d70355b165a15f8f5e83638e40
  Author: Anthony Liguori <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M hw/s390x/virtio-ccw.c
    M hw/s390x/virtio-ccw.h

  Log Message:
  -----------
  Merge remote-tracking branch 'cohuck/virtio-ccw-upstr' into staging

# By Christian Borntraeger (1) and Cornelia Huck (1)
# Via Cornelia Huck
* cohuck/virtio-ccw-upstr:
  virtio-ccw: Wire up virtio-rng.
  virtio-ccw: remove qdev_unparent in unplug routing


  Commit: dc0b0616f726956001be09e9a65a6e0b0bd939db
      
https://github.com/qemu/qemu/commit/dc0b0616f726956001be09e9a65a6e0b0bd939db
  Author: Anthony Liguori <address@hidden>
  Date:   2013-03-15 (Fri, 15 Mar 2013)

  Changed paths:
    M async.c
    M block.c
    M block/blkverify.c
    M block/bochs.c
    M block/cloop.c
    M block/cow.c
    M block/dmg.c
    M block/parallels.c
    M block/qcow.c
    M block/qcow2-cluster.c
    M block/qcow2-refcount.c
    M block/qcow2-snapshot.c
    M block/qcow2.c
    M block/qcow2.h
    M block/qed.c
    M block/raw-posix.c
    M block/raw-win32.c
    M block/raw.c
    M block/sheepdog.c
    M block/vdi.c
    M block/vmdk.c
    M block/vpc.c
    M block/vvfat.c
    M blockdev.c
    M hw/dataplane/virtio-blk.c
    M hw/xen_disk.c
    M include/block/aio.h
    M include/block/block.h
    M include/block/block_int.h
    M include/block/coroutine.h
    M include/block/thread-pool.h
    M include/qapi/qmp/qdict.h
    M include/qemu/main-loop.h
    M include/qemu/option.h
    M include/sysemu/blockdev.h
    M main-loop.c
    M qemu-coroutine-lock.c
    M qemu-img.c
    M qemu-io.c
    M qemu-nbd.c
    M qobject/qdict.c
    M tests/qemu-iotests/007
    A tests/qemu-iotests/050
    A tests/qemu-iotests/050.out
    M tests/qemu-iotests/group
    M tests/test-thread-pool.c
    M thread-pool.c
    M trace-events
    M util/qemu-option.c

  Log Message:
  -----------
  Merge remote-tracking branch 'stefanha/block' into staging

# By Stefan Hajnoczi (14) and others
# Via Stefan Hajnoczi
* stefanha/block: (28 commits)
  blockdev: Fix up copyright and permission notice
  qemu-iotests: use -nographic in test case 007
  qemu-iotests: add tests for rebasing zero clusters
  dataplane: fix hang introduced by AioContext transition
  coroutine: use AioContext for CoQueue BH
  threadpool: drop global thread pool
  block: add bdrv_get_aio_context()
  aio: add a ThreadPool instance to AioContext
  threadpool: add thread_pool_new() and thread_pool_free()
  threadpool: move globals into struct ThreadPool
  main-loop: add qemu_get_aio_context()
  sheepdog: set io_flush handler in do_co_req
  sheepdog: use non-blocking fd in coroutine context
  qcow2: make is_allocated return true for zero clusters
  qcow2: drop unnecessary flush in qcow2_update_snapshot_refcount()
  qcow2: drop flush in update_cluster_refcount()
  qcow2: flush in qcow2_update_snapshot_refcount()
  qcow2: set L2 cache dependency in qcow2_alloc_bytes()
  qcow2: flush refcount cache correctly in qcow2_write_snapshots()
  qcow2: flush refcount cache correctly in alloc_refcount_block()
  ...


Compare: https://github.com/qemu/qemu/compare/4f306496183d...dc0b0616f726

reply via email to

[Prev in Thread] Current Thread [Next in Thread]