On 04/11/2017 03:50 PM, Eric Blake wrote:
We now have macros in place to make it less verbose to add a scalar
to QDict and QList, so use them. To make this patch smaller to
review, a couple of subdirectories were done in earlier patches.
Patch created mechanically via:
spatch --sp-file
On Wed, Apr 12, 2017 at 9:27 AM, 858585 jemmy wrote:
> On Tue, Apr 11, 2017 at 11:59 PM, Stefan Hajnoczi wrote:
>> On Tue, Apr 11, 2017 at 08:05:12PM +0800, jemmy858...@gmail.com wrote:
>>> From: Lidong Chen
>>>
>>> BLOCK_SIZE
On Tue, Apr 11, 2017 at 11:59 PM, Stefan Hajnoczi wrote:
> On Tue, Apr 11, 2017 at 08:05:12PM +0800, jemmy858...@gmail.com wrote:
>> From: Lidong Chen
>>
>> BLOCK_SIZE is (1 << 20), qcow2 cluster size is 65536 by default,
>> this maybe cause the qcow2
We are gradually converting to byte-based interfaces, as they are
easier to reason about than sector-based. Continue by converting
the public interface to backup jobs (no semantic change), including
a change to CowRequest to track by bytes instead of cluster indices.
Signed-off-by: Eric Blake
We are gradually moving away from sector-based interfaces, towards
byte-based. In the common case, allocation is unlikely to ever use
values that are not naturally sector-aligned, but it is possible
that byte-based values will let us be more precise about allocation
at the end of an unaligned
We are gradually converting to byte-based interfaces, as they are
easier to reason about than sector-based. Change the internal
loop iteration of mirroring to track by bytes instead of sectors
(although we are still guaranteed that we iterate by steps that
are both sector-aligned and multiples of
We are gradually converting to byte-based interfaces, as they are
easier to reason about than sector-based. Convert another internal
function (no semantic change).
Signed-off-by: Eric Blake
---
block/mirror.c | 75 ++
1
We are gradually converting to byte-based interfaces, as they are
easier to reason about than sector-based. Convert another internal
function (no semantic change).
Signed-off-by: Eric Blake
---
block/backup.c | 62 --
1
We are gradually converting to byte-based interfaces, as they are
easier to reason about than sector-based. Change the internal
loop iteration of backups to track by bytes instead of sectors
(although we are still guaranteed that we iterate by steps that
are cluster-aligned).
Signed-off-by: Eric
We are gradually converting to byte-based interfaces, as they are
easier to reason about than sector-based. Continue by converting an
internal structure (no semantic change), and all references to the
buffer size.
[checkpatch has a false positive on use of MIN() in this patch]
Signed-off-by:
We are gradually converting to byte-based interfaces, as they are
easier to reason about than sector-based. Continue by converting an
internal structure (no semantic change), and all references to
tracking progress. Drop a redundant local variable bytes_per_cluster.
Signed-off-by: Eric Blake
We are gradually moving away from sector-based interfaces, towards
byte-based. In the common case, allocation is unlikely to ever use
values that are not naturally sector-aligned, but it is possible
that byte-based values will let us be more precise about allocation
at the end of an unaligned
We are gradually converting to byte-based interfaces, as they are
easier to reason about than sector-based. Convert another internal
function (no semantic change), and add mirror_clip_bytes() as a
counterpart to mirror_clip_sectors(). Some of the conversion is
a bit tricky, requiring temporaries
We are gradually converting to byte-based interfaces, as they are
easier to reason about than sector-based. Change the internal
loop iteration of committing to track by bytes instead of sectors
(although we are still guaranteed that we iterate by steps that
are sector-aligned).
Signed-off-by:
The user interface specifies job rate limits in bytes/second.
It's pointless to have our internal representation track things
in sectors/second, particularly since we want to move away from
sector-based interfaces.
Fix up a doc typo found while verifying that the ratelimit
code handles the
There are patches floating around to add NBD_CMD_BLOCK_STATUS,
but NBD wants to report status on byte granularity (even if the
reporting will probably be naturally aligned to sectors or even
much higher levels). I've therefore started the task of
converting our block status code to report at a
We are gradually converting to byte-based interfaces, as they are
easier to reason about than sector-based. Change the internal
loop iteration of streaming to track by bytes instead of sectors
(although we are still guaranteed that we iterate by steps that
are sector-aligned).
Signed-off-by:
Upcoming patches are going to switch to byte-based interfaces
instead of sector-based. Even worse, trace_backup_do_cow_enter()
had a weird mix of cluster and sector indices. Make the tracing
uniformly use bytes.
Signed-off-by: Eric Blake
---
block/backup.c | 16
We are gradually converting to byte-based interfaces, as they are
easier to reason about than sector-based. Start by converting an
internal function (no semantic change).
Signed-off-by: Eric Blake
---
block/commit.c | 15 ---
1 file changed, 8 insertions(+), 7
Squash this to keep iotest 154 happy.
Signed-off-by: Eric Blake
---
v9.5: fixup
v9: rebase to earlier changes, drop R-b
v7, v8: only earlier half of series submitted for 2.9
v6: rebase due to context
v5: s/count/byte/ to make the units obvious, and rework the math
to ensure
On 04/10/2017 08:17 PM, Eric Blake wrote:
> Passing a byte offset, but sector count, when we ultimately
> want to operate on cluster granularity, is madness. Clean up
> the external interfaces to take both offset and count as bytes,
> while still keeping the assertion added previously that the
>
On 04/11/2017 02:50 PM, Eric Blake wrote:
> Use the preferred blockdev-change-medium command instead.
>
> Also, use of 'device' is deprecated; adding an explicit id on
> the command line lets us use 'id' for both blockdev-change-medium
> and eject.
>
> Signed-off-by: Eric Blake
Use the preferred blockdev-change-medium command instead.
Also, use of 'device' is deprecated; adding an explicit id on
the command line lets us use 'id' for both blockdev-change-medium
and eject.
Signed-off-by: Eric Blake
---
v4: use 'id' rather than 'device' [thanks to
Noticed while checking Coccinelle results. Naming a label 'out:'
when it is only used on error paths is weird. Also, we had some
dead stores to 'ret'. Meanwhile we know that snapshot_options
is NULL on success and that QDECREF(NULL) is safe. So merge the
two exit paths into one by careful
We now have macros in place to make it less verbose to add a scalar
to QDict and QList, so use them. To make this patch smaller to
review, a couple of subdirectories were done in earlier patches.
Patch created mechanically via:
spatch --sp-file scripts/coccinelle/qobject.cocci \
We have macros in place to make it less verbose to add a subtype
of QObject to both QDict and QList. While we have made cleanups
like this in the past (see commit fcfcd8ffc, for example), having
it be automated by Coccinelle makes it easier to maintain.
Patch created mechanically via:
spatch
We now have macros in place to make it less verbose to add a scalar
to QDict and QList, so use them.
Patch created mechanically via:
spatch --sp-file scripts/coccinelle/qobject.cocci \
--macro-file scripts/cocci-macro-file.h --dir block --in-place
then touched up manually to fix a couple of
On 04/11/2017 12:12 PM, Markus Armbruster wrote:
> Eric Blake writes:
>
>> We now have macros in place to make it less verbose to add a scalar
>> to QDict and QList, so use them. To make this patch smaller to
>> review, a couple of subdirectories were done in earlier patches.
Eric Blake writes:
> We now have macros in place to make it less verbose to add a scalar
> to QDict and QList, so use them. To make this patch smaller to
> review, a couple of subdirectories were done in earlier patches.
>
> Patch created mechanically via:
> spatch
On Tue, 04/11 17:52, Max Reitz wrote:
> This reverts commit e3e0003a8f6570aba1421ef99a0b383a43371a74.
>
> This commit was necessary for the 2.9 release because we were unable to
> fix the underlying issue(s) in time. However, we will be for 2.10.
>
> Signed-off-by: Max Reitz
On 04/11/2017 09:02 AM, Eric Blake wrote:
> On 02/17/2017 08:05 AM, Fam Zheng wrote:
>> On Fri, 02/17 16:36, Vladimir Sementsov-Ogievskiy wrote:
>>> 17.02.2017 15:21, Fam Zheng wrote:
On Fri, 02/17 13:20, Vladimir Sementsov-Ogievskiy wrote:
> 16.02.2017 16:48, Fam Zheng wrote:
>> On
On Tue, Apr 11, 2017 at 08:05:12PM +0800, jemmy858...@gmail.com wrote:
> From: Lidong Chen
>
> BLOCK_SIZE is (1 << 20), qcow2 cluster size is 65536 by default,
> this maybe cause the qcow2 file size is bigger after migration.
> This patch check each cluster, use
This reverts commit e3e0003a8f6570aba1421ef99a0b383a43371a74.
This commit was necessary for the 2.9 release because we were unable to
fix the underlying issue(s) in time. However, we will be for 2.10.
Signed-off-by: Max Reitz
---
block.c| 6 +-
block/io.c | 12
On 11 April 2017 at 15:08, Kevin Wolf wrote:
> This fixes a regression introduced in commit 9d456654.
>
> aio_co_wake() can only be used to reenter a coroutine that was already
> previously entered, otherwise co->ctx is uninitialised and we access
> garbage. Using it immediately
On 11 April 2017 at 15:50, Max Reitz wrote:
> In case of block migration, there may be writes to BlockBackends that do
> not have the write permission taken. Before this issue is fixed (which
> is not going to happen in 2.9), we therefore cannot assert that this is
> the case.
On 11 April 2017 at 14:44, Max Reitz wrote:
> The following changes since commit aa388ddc36e8032f41cd17bef88cc3ebaeba77c9:
>
> Merge remote-tracking branch 'remotes/famz/tags/block-pull-request' into
> staging (2017-04-11 13:27:05 +0100)
>
> are available in the git
On 11.04.2017 17:30, Eric Blake wrote:
> On 04/11/2017 10:18 AM, Max Reitz wrote:
>
>> Hm, yeah, although you have to keep in mind that the padding is almost
>> pretty much the same as the the data bits we need, effectively doubling
>> the size of the L2 tables:
>>
>> padding = 2^{n+2} - 2^{n+1}
On Tue, Apr 11, 2017 at 09:06:37PM +0800, 858585 jemmy wrote:
> On Tue, Apr 11, 2017 at 8:19 PM, 858585 jemmy wrote:
> > On Mon, Apr 10, 2017 at 9:52 PM, Stefan Hajnoczi wrote:
> >> On Sat, Apr 08, 2017 at 09:17:58PM +0800, 858585 jemmy wrote:
> >>> On
On 04/11/2017 10:18 AM, Max Reitz wrote:
> Hm, yeah, although you have to keep in mind that the padding is almost
> pretty much the same as the the data bits we need, effectively doubling
> the size of the L2 tables:
>
> padding = 2^{n+2} - 2^{n+1} - 64 (=2^6)
> = 2^{n+1} - 64
>
> So
On 11.04.2017 17:29, Kevin Wolf wrote:
> Am 11.04.2017 um 17:18 hat Max Reitz geschrieben:
>> On 11.04.2017 17:08, Eric Blake wrote:
>>> On 04/11/2017 09:59 AM, Max Reitz wrote:
>>>
Good point, but that also means that (with (2)) you can only use
subcluster configurations where the
On 04/11/2017 09:59 AM, Max Reitz wrote:
>
> Good point, but that also means that (with (2)) you can only use
> subcluster configurations where the L2 entry size increases by a power
> of two. Unfortunately, only one of those configurations itself is a
> power of two, and that is 32.
>
> (With
On 11/04/2017 16:58, Kevin Wolf wrote:
> Am 11.04.2017 um 16:50 hat Max Reitz geschrieben:
>> In case of block migration, there may be writes to BlockBackends that do
>> not have the write permission taken. Before this issue is fixed (which
>> is not going to happen in 2.9), we therefore cannot
On 11.04.2017 16:49, Kevin Wolf wrote:
[...]
> By the way, if you'd only allow multiple of 1s overhead
> (i.e. multiples of 32 subclusters), I think (3) would be pretty much
> the same as (2) if you just always write the subcluster information
> adjacent to the L2 table. Should
Am 11.04.2017 um 16:50 hat Max Reitz geschrieben:
> In case of block migration, there may be writes to BlockBackends that do
> not have the write permission taken. Before this issue is fixed (which
> is not going to happen in 2.9), we therefore cannot assert that this is
> the case.
>
>
On 04/11/2017 09:49 AM, Kevin Wolf wrote:
Then (3) is effectively the same as (2), just that the subcluster
bitmaps are at the end of the L2 cluster, and not next to each entry.
>>>
>>> Exactly. But it's a difference in implementation, as you won't have to
>>> worry about having changed
On 11.04.2017 16:50, Max Reitz wrote:
> In case of block migration, there may be writes to BlockBackends that do
> not have the write permission taken. Before this issue is fixed (which
> is not going to happen in 2.9), we therefore cannot assert that this is
> the case.
>
> Suggested-by: Kevin
In case of block migration, there may be writes to BlockBackends that do
not have the write permission taken. Before this issue is fixed (which
is not going to happen in 2.9), we therefore cannot assert that this is
the case.
Suggested-by: Kevin Wolf
Signed-off-by: Max Reitz
Am 11.04.2017 um 16:31 hat Alberto Garcia geschrieben:
> On Tue 11 Apr 2017 04:04:53 PM CEST, Max Reitz wrote:
> >>> (We could even get one more bit if we had a subcluster-flag, because I
> >>> guess we can always assume subclustered clusters to have OFLAG_COPIED
> >>> and be uncompressed. But
On 04/11/2017 09:31 AM, Alberto Garcia wrote:
> On Tue 11 Apr 2017 04:04:53 PM CEST, Max Reitz wrote:
(We could even get one more bit if we had a subcluster-flag, because I
guess we can always assume subclustered clusters to have OFLAG_COPIED
and be uncompressed. But still, three
On Tue, Apr 11, 2017 at 04:08:53PM +0200, Kevin Wolf wrote:
> This fixes a regression introduced in commit 9d456654.
>
> aio_co_wake() can only be used to reenter a coroutine that was already
> previously entered, otherwise co->ctx is uninitialised and we access
> garbage. Using it immediately
On 11.04.2017 16:08, Kevin Wolf wrote:
> This fixes a regression introduced in commit 9d456654.
>
> aio_co_wake() can only be used to reenter a coroutine that was already
> previously entered, otherwise co->ctx is uninitialised and we access
> garbage. Using it immediately after
This fixes a regression introduced in commit 9d456654.
aio_co_wake() can only be used to reenter a coroutine that was already
previously entered, otherwise co->ctx is uninitialised and we access
garbage. Using it immediately after qemu_coroutine_create() like in
co_read_response() is wrong and
On 11.04.2017 14:56, Alberto Garcia wrote:
> On Fri 07 Apr 2017 07:10:46 PM CEST, Max Reitz wrote:
>>> === Changes to the on-disk format ===
>>>
>>> The qcow2 on-disk format needs to change so each L2 entry has a bitmap
>>> indicating the allocation status of each subcluster. There are three
>>>
On 11.04.2017 15:58, Markus Armbruster wrote:
> Max Reitz writes:
>
>> Parsing the URI is not required to give us a scheme; uri->scheme may be
>> NULL.
>>
>> Signed-off-by: Max Reitz
>> ---
>> block/nfs.c | 2 +-
>> 1 file changed, 1 insertion(+), 1
Max Reitz writes:
> Parsing the URI is not required to give us a scheme; uri->scheme may be
> NULL.
>
> Signed-off-by: Max Reitz
> ---
> block/nfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/block/nfs.c b/block/nfs.c
> index
On 11.04.2017 15:30, Peter Maydell wrote:
> On 11 April 2017 at 14:13, Max Reitz wrote:
>> Parsing the URI is not required to give us a scheme; uri->scheme may be
>> NULL.
>>
>> Signed-off-by: Max Reitz
>> ---
>> block/nfs.c | 2 +-
>> 1 file changed, 1
From: Fam Zheng
Since d5895fcb (iscsi: Split URL into individual options), creating
qcow2 image on an iscsi LUN fails:
qemu-img create -f qcow2 iscsi://$SERVER/$IQN/0 1G
qemu-img: iscsi://$SERVER/$IQN/0: Could not create image: Invalid
argument
The problem is
The following changes since commit aa388ddc36e8032f41cd17bef88cc3ebaeba77c9:
Merge remote-tracking branch 'remotes/famz/tags/block-pull-request' into
staging (2017-04-11 13:27:05 +0100)
are available in the git repository at:
git://github.com/XanClic/qemu.git tags/pull-block-2017-04-11
From: Dong Jia Shi
raw_open() expects the caller always passing in the right actual
@options parameter. But when trying to applying snapshot on a RBD
image, bdrv_snapshot_goto() calls raw_open() (by calling the
bdrv_open callback on the BlockDriver) with a NULL
From: Eric Blake
When a block device that is part of a throttle group is hot-unplugged,
we forgot to remove it from the throttle group. This leaves stale
memory around, and causes an easily reproducible crash:
$ ./x86_64-softmmu/qemu-system-x86_64 -nodefaults -nographic -qmp
On 11 April 2017 at 14:13, Max Reitz wrote:
> Parsing the URI is not required to give us a scheme; uri->scheme may be
> NULL.
>
> Signed-off-by: Max Reitz
> ---
> block/nfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git
Am 11.04.2017 um 15:14 hat Eric Blake geschrieben:
> On 04/11/2017 07:05 AM, Kevin Wolf wrote:
> > Note that job completion/cancellation aren't synchronous QMP commands.
> > The job works something like this, where '...' means that the VM can run
> > and submit new writes etc.:
> >
> > 1. Start
Am 11.04.2017 um 15:13 hat Max Reitz geschrieben:
> Parsing the URI is not required to give us a scheme; uri->scheme may be
> NULL.
>
> Signed-off-by: Max Reitz
Reviewed-by: Kevin Wolf
On 10.04.2017 09:54, Fam Zheng wrote:
> Since d5895fcb (iscsi: Split URL into individual options), creating
> qcow2 image on an iscsi LUN fails:
>
> qemu-img create -f qcow2 iscsi://$SERVER/$IQN/0 1G
> qemu-img: iscsi://$SERVER/$IQN/0: Could not create image: Invalid
> argument
>
On 04/11/2017 07:05 AM, Kevin Wolf wrote:
>
> Note that job completion/cancellation aren't synchronous QMP commands.
> The job works something like this, where '...' means that the VM can run
> and submit new writes etc.:
>
> 1. Start job: mirror_start
> ...
> 2. Bulk has completed:
Parsing the URI is not required to give us a scheme; uri->scheme may be
NULL.
Signed-off-by: Max Reitz
---
block/nfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/nfs.c b/block/nfs.c
index 0816678307..0c7d5619fe 100644
--- a/block/nfs.c
+++
On Tue, Apr 11, 2017 at 8:19 PM, 858585 jemmy wrote:
> On Mon, Apr 10, 2017 at 9:52 PM, Stefan Hajnoczi wrote:
>> On Sat, Apr 08, 2017 at 09:17:58PM +0800, 858585 jemmy wrote:
>>> On Fri, Apr 7, 2017 at 7:34 PM, Stefan Hajnoczi
On Mon, 04/10 17:17, Max Reitz wrote:
> > bs_options = qdict_new();
> > qdict_put(bs_options, "filename", qstring_from_str(filename));
>
> Doesn't the below change make this qdict_put() superfluous?
You are right, bdrv_iscsi.bdrv_needs_filename is false.
Fam
On 02/17/2017 08:05 AM, Fam Zheng wrote:
> On Fri, 02/17 16:36, Vladimir Sementsov-Ogievskiy wrote:
>> 17.02.2017 15:21, Fam Zheng wrote:
>>> On Fri, 02/17 13:20, Vladimir Sementsov-Ogievskiy wrote:
16.02.2017 16:48, Fam Zheng wrote:
> On Mon, 02/13 12:54, Vladimir Sementsov-Ogievskiy
On Fri 07 Apr 2017 07:10:46 PM CEST, Max Reitz wrote:
>> === Changes to the on-disk format ===
>>
>> The qcow2 on-disk format needs to change so each L2 entry has a bitmap
>> indicating the allocation status of each subcluster. There are three
>> possible states (unallocated, allocated, all
On Mon, Apr 10, 2017 at 9:52 PM, Stefan Hajnoczi wrote:
> On Sat, Apr 08, 2017 at 09:17:58PM +0800, 858585 jemmy wrote:
>> On Fri, Apr 7, 2017 at 7:34 PM, Stefan Hajnoczi wrote:
>> > On Fri, Apr 07, 2017 at 09:30:33AM +0800, 858585 jemmy wrote:
>> >> On
On 04/10/2017 09:37 PM, Philippe Mathieu-Daudé wrote:
> Hi Eric,
>
> On 04/10/2017 10:17 PM, Eric Blake wrote:
>> For the 'alloc' command, accepting an offset in bytes but a length
>> in sectors, and reporting output in sectors, is confusing. Do
>> everything in bytes, and adjust the expected
From: Lidong Chen
BLOCK_SIZE is (1 << 20), qcow2 cluster size is 65536 by default,
this maybe cause the qcow2 file size is bigger after migration.
This patch check each cluster, use blk_pwrite_zeroes for each
zero cluster.
Signed-off-by: Lidong Chen
Am 03.04.2017 um 22:29 hat John Snow geschrieben:
> On 03/24/2017 08:34 AM, Kashyap Chamarthy wrote:
> > While debugging some other issue, I happened to stumble across an old
> > libvirt commit[*] that adds support for pivot (whether QEMU should
> > switch to a target copy or not) operation as a
On Tue, 04/11 13:05, Kevin Wolf wrote:
> Am 10.04.2017 um 17:05 hat Fam Zheng geschrieben:
> > v3: Respin the unmerged changes from v2 and include one new fix:
> >
> > (Yes, it is a big series for the last -rc, and I personally prefer the
> > v2
> > approach for the 4-9 part of the
> So I think we should have another look at Sheepdog, the rest seems to be
> fine.
Sheepdog currently SEGVs and this might be the cause. I can look at it
on Thursday.
Paolo
On Tue, 04/11 12:06, Kevin Wolf wrote:
> > tests/qemu-iotests/109.out | 10 +-
>
> This one is curious. Why do we copy more data depending on how the job
> coroutine is reentered?
I did trace it and think the difference is not very important: on master, the
second iteration of the
Signed-off-by: Kevin Wolf
---
block.c | 5 -
include/block/aio.h | 9 -
include/block/block.h | 6 --
util/async.c | 7 ---
4 files changed, 27 deletions(-)
diff --git a/block.c b/block.c
index e65b906..086a12d 100644
--- a/block.c
On Tue, 04/11 11:28, Kevin Wolf wrote:
> Am 10.04.2017 um 17:05 hat Fam Zheng geschrieben:
> > They start the coroutine on the specified context.
> >
> > Signed-off-by: Fam Zheng
> > ---
> > include/block/aio.h | 18 ++
> > util/async.c| 14
Am 10.04.2017 um 17:05 hat Fam Zheng geschrieben:
> v3: Respin the unmerged changes from v2 and include one new fix:
>
> (Yes, it is a big series for the last -rc, and I personally prefer the v2
> approach for the 4-9 part of the problem, which is much more mechanical.)
>
> - 1, 2
On Mon, Apr 10, 2017 at 11:05:32PM +0800, Fam Zheng wrote:
> v3: Respin the unmerged changes from v2 and include one new fix:
>
> (Yes, it is a big series for the last -rc, and I personally prefer the v2
> approach for the 4-9 part of the problem, which is much more mechanical.)
>
>
On Tue, Apr 11, 2017 at 11:42:28AM +0200, Markus Armbruster wrote:
> Eric Blake writes:
>
> > On 04/04/2017 08:28 AM, Kashyap Chamarthy wrote:
> >
> >>> Minor or not, it is a useful viewpoint. Either way, as long as the new
> >>> way of getting a transactional non-pivot
On Mon, Apr 10, 2017 at 11:05:34PM +0800, Fam Zheng wrote:
> The fact that the bs->aio_context is changing can confuse the dataplane
> iothread, because of the now fine granularity aio context lock.
> bdrv_drain should rather be a bdrv_drained_begin/end pair, but since
> bs->aio_context is
On Mon, Apr 10, 2017 at 11:05:33PM +0800, Fam Zheng wrote:
> Signed-off-by: Fam Zheng
> ---
> block/io.c| 4 ++--
> include/block/block.h | 16
> 2 files changed, 18 insertions(+), 2 deletions(-)
Reviewed-by: Stefan Hajnoczi
Am 10.04.2017 um 17:05 hat Fam Zheng geschrieben:
> BDRV_POLL_WHILE waits for the started I/O by releasing bs's ctx then polling
> the main context, which relies on the yielded the coroutine would continue on
> bs->ctx and notify qemu_aio_context with bdrv_wakeup(). Thus, using
>
Eric Blake writes:
> On 04/04/2017 08:28 AM, Kashyap Chamarthy wrote:
>
>>> Minor or not, it is a useful viewpoint. Either way, as long as the new
>>> way of getting a transactional non-pivot successful completion is
>>> something that libvirt can learn via introspection,
>>
Am 10.04.2017 um 17:05 hat Fam Zheng geschrieben:
> They start the coroutine on the specified context.
>
> Signed-off-by: Fam Zheng
> ---
> include/block/aio.h | 18 ++
> util/async.c| 14 +-
> 2 files changed, 31 insertions(+), 1 deletion(-)
On 10/04/2017 23:05, Fam Zheng wrote:
> bdrv_inc_in_flight and bdrv_dec_in_flight are mandatory for
> BDRV_POLL_WHILE to work, even for the shortcut case where flush is
> unnecessary. Move the if block to below bdrv_dec_in_flight, and BTW fix
> the variable declaration position.
>
>
Am 10.04.2017 um 17:05 hat Fam Zheng geschrieben:
> Previously, before test_block_job_start returns, the job can already
> complete, as a result, the transactional state of other jobs added to
> the same txn later cannot be handled correctly.
>
> Move the block_job_start() calls to callers after
Am 10.04.2017 um 17:05 hat Fam Zheng geschrieben:
> The fact that the bs->aio_context is changing can confuse the dataplane
> iothread, because of the now fine granularity aio context lock.
> bdrv_drain should rather be a bdrv_drained_begin/end pair, but since
> bs->aio_context is changing, we can
Am 10.04.2017 um 17:05 hat Fam Zheng geschrieben:
> Signed-off-by: Fam Zheng
Reviewed-by: Kevin Wolf
Am 11.04.2017 um 10:49 hat Markus Armbruster geschrieben:
> Eric Blake writes:
>
> > On 01/19/2017 08:39 AM, Eric Blake wrote:
> >> On 01/19/2017 03:30 AM, Markus Armbruster wrote:
> >>> Eric Blake writes:
> >>>
> Use the preferred
Eric Blake writes:
> On 01/19/2017 08:39 AM, Eric Blake wrote:
>> On 01/19/2017 03:30 AM, Markus Armbruster wrote:
>>> Eric Blake writes:
>>>
Use the preferred blockdev-change-medium command instead.
Signed-off-by: Eric Blake
93 matches
Mail list logo