qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 5fbfab: block: Formats don't need CONSISTENT_


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 5fbfab: block: Formats don't need CONSISTENT_READ with NO_...
Date: Mon, 08 Jan 2018 07:09:35 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 5fbfabd313b77e1cc7038ae8c4481c4b9f8b650a
      
https://github.com/qemu/qemu/commit/5fbfabd313b77e1cc7038ae8c4481c4b9f8b650a
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Formats don't need CONSISTENT_READ with NO_IO

Commit 1f4ad7d fixed 'qemu-img info' for raw images that are currently
in use as a mirror target. It is not enough for image formats, though,
as these still unconditionally request BLK_PERM_CONSISTENT_READ.

As this permission is geared towards whether the guest-visible data is
consistent, and has no impact on whether the metadata is sane, and
'qemu-img info' does not read guest-visible data (except for the raw
format), it makes sense to not require BLK_PERM_CONSISTENT_READ if there
is not going to be any guest I/O performed, regardless of image format.

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


  Commit: bff5554843773d8ca644fddd37ffebcc952ce48f
      
https://github.com/qemu/qemu/commit/bff5554843773d8ca644fddd37ffebcc952ce48f
  Author: John Snow <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M tests/qemu-iotests/197
    M tests/qemu-iotests/common.filter

  Log Message:
  -----------
  iotests: fix 197 for vpc

VPC has some difficulty creating geometries of particular size.
However, we can indeed force it to use a literal one, so let's
do that for the sake of test 197, which is testing some specific
offsets.

Signed-off-by: John Snow <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Lukáš Doktor <address@hidden>


  Commit: db0289b9b26cb653d5662f5d6a2a52d70243cd56
      
https://github.com/qemu/qemu/commit/db0289b9b26cb653d5662f5d6a2a52d70243cd56
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Make bdrv_drain_invoke() recursive

This change separates bdrv_drain_invoke(), which calls the BlockDriver
drain callbacks, from bdrv_drain_recurse(). Instead, the function
performs its own recursion now.

One reason for this is that bdrv_drain_recurse() can be called multiple
times by bdrv_drain_all_begin(), but the callbacks may only be called
once. The separation is necessary to fix this bug.

The other reason is that we intend to go to a model where we call all
driver callbacks first, and only then start polling. This is not fully
achieved yet with this patch, as bdrv_drain_invoke() contains a
BDRV_POLL_WHILE() loop for the block driver callbacks, which can still
call callbacks for any unrelated event. It's a step in this direction
anyway.

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


  Commit: 2da9b7d456278bccc6ce889ae350f2867155d7e8
      
https://github.com/qemu/qemu/commit/2da9b7d456278bccc6ce889ae350f2867155d7e8
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Call .drain_begin only once in bdrv_drain_all_begin()

bdrv_drain_all_begin() used to call the .bdrv_co_drain_begin() driver
callback inside its polling loop. This means that how many times it got
called for each node depended on long it had to poll the event loop.

This is obviously not right and results in nodes that stay drained even
after bdrv_drain_all_end(), which calls .bdrv_co_drain_begin() once per
node.

Fix bdrv_drain_all_begin() to call the callback only once, too.

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


  Commit: 881cfd17c734634de0f4bc6725940cca4fd314c9
      
https://github.com/qemu/qemu/commit/881cfd17c734634de0f4bc6725940cca4fd314c9
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M tests/Makefile.include
    A tests/test-bdrv-drain.c

  Log Message:
  -----------
  test-bdrv-drain: Test BlockDriver callbacks for drain

This adds a test case that the BlockDriver callbacks for drain are
called in bdrv_drained_all_begin/end(), and that both of them are called
exactly once.

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


  Commit: 99c05de9180ae100fcabd5ed02d32b392dc1528c
      
https://github.com/qemu/qemu/commit/99c05de9180ae100fcabd5ed02d32b392dc1528c
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: bdrv_drain_recurse(): Remove unused begin parameter

Now that the bdrv_drain_invoke() calls are pulled up to the callers of
bdrv_drain_recurse(), the 'begin' parameter isn't needed any more.

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


  Commit: 5280aa32e140a262bbc6e8e06fd4abb137900016
      
https://github.com/qemu/qemu/commit/5280aa32e140a262bbc6e8e06fd4abb137900016
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Don't wait for requests in bdrv_drain*_end()

The device is drained, so there is no point in waiting for requests at
the end of the drained section. Remove the bdrv_drain_recurse() calls
there.

The bdrv_drain_recurse() calls were introduced in commit 481cad48e5e
in order to call the .bdrv_co_drain_end() driver callback. This is now
done by a separate bdrv_drain_invoke() call.

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


  Commit: 60369b86c427c6646c53b607b5a3e6b507ffe8d6
      
https://github.com/qemu/qemu/commit/60369b86c427c6646c53b607b5a3e6b507ffe8d6
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Unify order in drain functions

Drain requests are propagated to child nodes, parent nodes and directly
to the AioContext. The order in which this happened was different
between all combinations of drain/drain_all and begin/end.

The correct order is to keep children only drained when their parents
are also drained. This means that at the start of a drained section, the
AioContext needs to be drained first, the parents second and only then
the children. The correct order for the end of a drained section is the
opposite.

This patch changes the three other functions to follow the example of
bdrv_drained_begin(), which is the only one that got it right.

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


  Commit: c200c4a470fc89d9a2b2d1884b140b03fd31981f
      
https://github.com/qemu/qemu/commit/c200c4a470fc89d9a2b2d1884b140b03fd31981f
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M hmp.c

  Log Message:
  -----------
  block: Don't acquire AioContext in hmp_qemu_io()

Commit 15afd94a047 added code to acquire and release the AioContext in
qemuio_command(). This means that the lock is taken twice now in the
call path from hmp_qemu_io(). This causes BDRV_POLL_WHILE() to hang for
any requests issued to nodes in a non-mainloop AioContext.

Dropping the first locking from hmp_qemu_io() fixes the problem.

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


  Commit: 546a7dc40e8b8b6440a052e2b5cdfe9aadcaccf6
      
https://github.com/qemu/qemu/commit/546a7dc40e8b8b6440a052e2b5cdfe9aadcaccf6
  Author: Edgar Kaziakhmedov <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

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

  Log Message:
  -----------
  qcow2: get rid of qcow2_backing_read1 routine

Since bdrv_co_preadv does all neccessary checks including
reading after the end of the backing file, avoid duplication
of verification before bdrv_co_preadv call.

Signed-off-by: Edgar Kaziakhmedov <address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 6b4738ce4d32d551b37afb387813a37a24b6de8f
      
https://github.com/qemu/qemu/commit/6b4738ce4d32d551b37afb387813a37a24b6de8f
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M qapi/block-core.json

  Log Message:
  -----------
  block: Document that x-blockdev-change breaks quorum children list

Removing a quorum child node with x-blockdev-change results in a quorum
driver state that cannot be recreated with create options because it
would require a list with gaps. This causes trouble in at least
.bdrv_refresh_filename().

Document this problem so that we won't accidentally mark the command
stable without having addressed it.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Alberto Garcia <address@hidden>


  Commit: 1ee24514aed34760fb2863d98bea3a1b705d9c9f
      
https://github.com/qemu/qemu/commit/1ee24514aed34760fb2863d98bea3a1b705d9c9f
  Author: Doug Gale <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/trace-events

  Log Message:
  -----------
  nvme: Add tracing

Add trace output for commands, errors, and undefined behavior.
Add guest error log output for undefined behavior.
Report invalid undefined accesses to MMIO.
Annotate unlikely error checks with unlikely.

Signed-off-by: Doug Gale <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: cc954f01e3c004aad081aa36736a17e842b80211
      
https://github.com/qemu/qemu/commit/cc954f01e3c004aad081aa36736a17e842b80211
  Author: Fam Zheng <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Open backing image in force share mode for size probe

Management tools create overlays of running guests with qemu-img:

  $ qemu-img create -b /image/in/use.qcow2 -f qcow2 /overlay/image.qcow2

but this doesn't work anymore due to image locking:

    qemu-img: /overlay/image.qcow2: Failed to get shared "write" lock
    Is another process using the image?
    Could not open backing image to determine size.
Use the force share option to allow this use case again.

Cc: address@hidden
Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 0e153b04cccaeaa272a687194ea353167878b10f
      
https://github.com/qemu/qemu/commit/0e153b04cccaeaa272a687194ea353167878b10f
  Author: Thomas Huth <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M blockdev.c
    M qemu-doc.texi

  Log Message:
  -----------
  block: Remove the obsolete -drive boot=on|off parameter

It's not working anymore since QEMU v1.3.0 - time to remove it now.

Signed-off-by: Thomas Huth <address@hidden>
Reviewed-by: John Snow <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: d1cdd92e5c67d14de6f8ea604715d24b6370b442
      
https://github.com/qemu/qemu/commit/d1cdd92e5c67d14de6f8ea604715d24b6370b442
  Author: Thomas Huth <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M qemu-doc.texi
    M qemu-options.hx
    M vl.c

  Log Message:
  -----------
  block: Remove the deprecated -hdachs option

It's been marked as deprecated since QEMU v2.10.0, and so far nobody
complained that we should keep it, so let's remove this legacy option
now to simplify the code quite a bit.

Signed-off-by: Thomas Huth <address@hidden>
Reviewed-by: John Snow <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c08d46a96f218e3f2c6f4d0e590d267a9fd77a3a
      
https://github.com/qemu/qemu/commit/c08d46a96f218e3f2c6f4d0e590d267a9fd77a3a
  Author: Thomas Huth <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M qemu-doc.texi

  Log Message:
  -----------
  block: Mention -drive cyls/heads/secs/trans/serial/addr in deprecation chapter

Looks like we forgot to announce the deprecation of these options in
the corresponding chapter of the qemu-doc text, so let's do that now.

Signed-off-by: Thomas Huth <address@hidden>
Reviewed-by: John Snow <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 8e77e0bceb4de0fe5cc912d5865b28a703f0f041
      
https://github.com/qemu/qemu/commit/8e77e0bceb4de0fe5cc912d5865b28a703f0f041
  Author: Fam Zheng <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

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

  Log Message:
  -----------
  block: Remove unused bdrv_requests_pending

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 9a7e86c8048cecededa665b1ca55c7f217ed358c
      
https://github.com/qemu/qemu/commit/9a7e86c8048cecededa665b1ca55c7f217ed358c
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Assert drain_all is only called from main AioContext

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>


  Commit: 7b6a3d35536f945c41aa62627cc295482606aa2e
      
https://github.com/qemu/qemu/commit/7b6a3d35536f945c41aa62627cc295482606aa2e
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Make bdrv_drain() driver callbacks non-recursive

bdrv_drained_begin() doesn't increase bs->quiesce_counter recursively
and also doesn't notify other parent nodes of children, which both means
that the child nodes are not actually drained, and bdrv_drained_begin()
is providing useful functionality only on a single node.

To keep things consistent, we also shouldn't call the block driver
callbacks recursively.

A proper recursive drain version that provides an actually working
drained section for child nodes will be introduced later.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>


  Commit: 86e1c840ec1173badfe9f195a448c88072b2ad2a
      
https://github.com/qemu/qemu/commit/86e1c840ec1173badfe9f195a448c88072b2ad2a
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M tests/test-bdrv-drain.c

  Log Message:
  -----------
  test-bdrv-drain: Test callback for bdrv_drain

The existing test is for bdrv_drain_all_begin/end() only. Generalise the
test case so that it can be run for the other variants as well. At the
moment this is only bdrv_drain_begin/end(), but in a while, we'll add
another one.

Also, add a backing file to the test node to test whether the operations
work recursively.

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


  Commit: 89a6ceab4617fefa5ace6a46be3e2be58925ae71
      
https://github.com/qemu/qemu/commit/89a6ceab4617fefa5ace6a46be3e2be58925ae71
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M tests/test-bdrv-drain.c

  Log Message:
  -----------
  test-bdrv-drain: Test bs->quiesce_counter

This is currently only working correctly for bdrv_drain(), not for
bdrv_drain_all(). Leave a comment for the drain_all case, we'll address
it later.

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


  Commit: ad90febaf22d95e49fb6821bfb3ebd05b4919417
      
https://github.com/qemu/qemu/commit/ad90febaf22d95e49fb6821bfb3ebd05b4919417
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M blockjob.c

  Log Message:
  -----------
  blockjob: Pause job on draining any job BDS

Block jobs already paused themselves when their main BlockBackend
entered a drained section. This is not good enough: We also want to
pause a block job and may not submit new requests if, for example, the
mirror target node should be drained.

This implements .drained_begin/end callbacks in child_job in order to
consider all block nodes related to the job, and removes the
BlockBackend callbacks which are unnecessary now because the root of the
job main BlockBackend is always referenced with a child_job, too.

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


  Commit: 7253220de42e82c59e72f29e69285a9a9e9e96ee
      
https://github.com/qemu/qemu/commit/7253220de42e82c59e72f29e69285a9a9e9e96ee
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M tests/test-bdrv-drain.c

  Log Message:
  -----------
  test-bdrv-drain: Test drain vs. block jobs

Block jobs must be paused if any of the involved nodes are drained.

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


  Commit: 8119334918e86f45877cfc139192d54f2449a239
      
https://github.com/qemu/qemu/commit/8119334918e86f45877cfc139192d54f2449a239
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block/io.c
    M tests/test-bdrv-drain.c

  Log Message:
  -----------
  block: Don't block_job_pause_all() in bdrv_drain_all()

Block jobs are already paused using the BdrvChildRole drain callbacks,
so we don't need an additional block_job_pause_all() call.

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


  Commit: 0f115168943e5bf2219497abfbf5f7a9c271b9b0
      
https://github.com/qemu/qemu/commit/0f115168943e5bf2219497abfbf5f7a9c271b9b0
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Nested drain_end must still call callbacks

bdrv_do_drained_begin() restricts the call of parent callbacks and
aio_disable_external() to the outermost drain section, but the block
driver callbacks are always called. bdrv_do_drained_end() must match
this behaviour, otherwise nodes stay drained even if begin/end calls
were balanced.

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


  Commit: 6c429a6a97d183aeb2c00f8680aaf3d9e900359d
      
https://github.com/qemu/qemu/commit/6c429a6a97d183aeb2c00f8680aaf3d9e900359d
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M tests/test-bdrv-drain.c

  Log Message:
  -----------
  test-bdrv-drain: Test nested drain sections

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


  Commit: 0152bf400fe3ca7facb382683bfcccda70ebf51a
      
https://github.com/qemu/qemu/commit/0152bf400fe3ca7facb382683bfcccda70ebf51a
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

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

  Log Message:
  -----------
  block: Don't notify parents in drain call chain

This is in preparation for subtree drains, i.e. drained sections that
affect not only a single node, but recursively all child nodes, too.

Calling the parent callbacks for drain is pointless when we just came
from that parent node recursively and leads to multiple increases of
bs->quiesce_counter in a single drain call. Don't do it.

In order for this to work correctly, the parent callback must be called
for every bdrv_drain_begin/end() call, not only for the outermost one:

If we have a node N with two parents A and B, recursive draining of A
should cause the quiesce_counter of B to increase because its child N is
drained independently of B. If now B is recursively drained, too, A must
increase its quiesce_counter because N is drained independently of A
only now, even if N is going from quiesce_counter 1 to 2.

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


  Commit: b0165585900f050f403cecba9d89adeccf35dd6c
      
https://github.com/qemu/qemu/commit/b0165585900f050f403cecba9d89adeccf35dd6c
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

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

  Log Message:
  -----------
  block: Add bdrv_subtree_drained_begin/end()

bdrv_drained_begin() waits for the completion of requests in the whole
subtree, but it only actually keeps its immediate bs parameter quiesced
until bdrv_drained_end().

Add a version that keeps the whole subtree drained. As of this commit,
graph changes cannot be allowed during a subtree drained section, but
this will be fixed soon.

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


  Commit: d2a85d0f42f328d5e4c948262234b4071e9a2a8e
      
https://github.com/qemu/qemu/commit/d2a85d0f42f328d5e4c948262234b4071e9a2a8e
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M tests/test-bdrv-drain.c

  Log Message:
  -----------
  test-bdrv-drain: Tests for bdrv_subtree_drain

Add a subtree drain version to the existing test cases.

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


  Commit: 0582eb1006518881ecf93ba69c051335334a03e6
      
https://github.com/qemu/qemu/commit/0582eb1006518881ecf93ba69c051335334a03e6
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M tests/test-bdrv-drain.c

  Log Message:
  -----------
  test-bdrv-drain: Test behaviour in coroutine context

If bdrv_do_drained_begin/end() are called in coroutine context, they
first use a BH to get out of the coroutine context. Call some existing
tests again from a coroutine to cover this code path.

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


  Commit: 27e64474a384e68ca928fa875930b921b53d61f4
      
https://github.com/qemu/qemu/commit/27e64474a384e68ca928fa875930b921b53d61f4
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M tests/test-bdrv-drain.c

  Log Message:
  -----------
  test-bdrv-drain: Recursive draining with multiple parents

Test that drain sections are correctly propagated through the graph.

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


  Commit: d736f119dae6d292e8d60f2e02fa51a79524113e
      
https://github.com/qemu/qemu/commit/d736f119dae6d292e8d60f2e02fa51a79524113e
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

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

  Log Message:
  -----------
  block: Allow graph changes in subtree drained section

We need to remember how many of the drain sections in which a node is
were recursive (i.e. subtree drain rather than node drain), so that they
can be correctly applied when children are added or removed during the
drained section.

With this change, it is safe to modify the graph even inside a
bdrv_subtree_drained_begin/end() section.

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


  Commit: acebcf8de82da9a583875a0d32cb6c9a9d29cdb5
      
https://github.com/qemu/qemu/commit/acebcf8de82da9a583875a0d32cb6c9a9d29cdb5
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M tests/test-bdrv-drain.c

  Log Message:
  -----------
  test-bdrv-drain: Test graph changes in drained section

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


  Commit: 44487eb973f895d68989cf931e25f309ec9807f9
      
https://github.com/qemu/qemu/commit/44487eb973f895d68989cf931e25f309ec9807f9
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block/commit.c

  Log Message:
  -----------
  commit: Simplify reopen of base

Since commit bde70715, base is the only node that is reopened in
commit_start(). This means that the code, which still involves an
explicit BlockReopenQueue, can now be simplified by using bdrv_reopen().

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>


  Commit: 1a63a907507fbbcfaee3f622907ec244b7eabda8
      
https://github.com/qemu/qemu/commit/1a63a907507fbbcfaee3f622907ec244b7eabda8
  Author: Kevin Wolf <address@hidden>
  Date:   2017-12-22 (Fri, 22 Dec 2017)

  Changed paths:
    M block.c
    M block/replication.c
    M qemu-io-cmds.c

  Log Message:
  -----------
  block: Keep nodes drained between reopen_queue/multiple

The bdrv_reopen*() implementation doesn't like it if the graph is
changed between queuing nodes for reopen and actually reopening them
(one of the reasons is that queuing can be recursive).

So instead of draining the device only in bdrv_reopen_multiple(),
require that callers already drained all affected nodes, and assert this
in bdrv_reopen_queue().

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>


  Commit: 799044b6a3a0fc63e1e020e4d9266786a2dc7a0b
      
https://github.com/qemu/qemu/commit/799044b6a3a0fc63e1e020e4d9266786a2dc7a0b
  Author: Peter Maydell <address@hidden>
  Date:   2018-01-08 (Mon, 08 Jan 2018)

  Changed paths:
    M block.c
    M block/commit.c
    M block/io.c
    M block/qcow2.c
    M block/qcow2.h
    M block/replication.c
    M blockdev.c
    M blockjob.c
    M hmp.c
    M hw/block/nvme.c
    M hw/block/trace-events
    M include/block/block.h
    M include/block/block_int.h
    M qapi/block-core.json
    M qemu-doc.texi
    M qemu-io-cmds.c
    M qemu-options.hx
    M tests/Makefile.include
    M tests/qemu-iotests/197
    M tests/qemu-iotests/common.filter
    A tests/test-bdrv-drain.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging

Block layer patches

# gpg: Signature made Fri 22 Dec 2017 14:09:01 GMT
# gpg:                using RSA key 0x7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <address@hidden>"
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* remotes/kevin/tags/for-upstream: (35 commits)
  block: Keep nodes drained between reopen_queue/multiple
  commit: Simplify reopen of base
  test-bdrv-drain: Test graph changes in drained section
  block: Allow graph changes in subtree drained section
  test-bdrv-drain: Recursive draining with multiple parents
  test-bdrv-drain: Test behaviour in coroutine context
  test-bdrv-drain: Tests for bdrv_subtree_drain
  block: Add bdrv_subtree_drained_begin/end()
  block: Don't notify parents in drain call chain
  test-bdrv-drain: Test nested drain sections
  block: Nested drain_end must still call callbacks
  block: Don't block_job_pause_all() in bdrv_drain_all()
  test-bdrv-drain: Test drain vs. block jobs
  blockjob: Pause job on draining any job BDS
  test-bdrv-drain: Test bs->quiesce_counter
  test-bdrv-drain: Test callback for bdrv_drain
  block: Make bdrv_drain() driver callbacks non-recursive
  block: Assert drain_all is only called from main AioContext
  block: Remove unused bdrv_requests_pending
  block: Mention -drive cyls/heads/secs/trans/serial/addr in deprecation chapter
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/1e10eb532c40...799044b6a3a0

reply via email to

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