On 29 March 2016 at 16:08, Kevin Wolf wrote:
> The following changes since commit b68a80139e37e806f004237e55311ebc42151434:
>
> Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20160324' into
> staging (2016-03-24 16:24:02 +)
>
> are available in the git repository
On 29 March 2016 at 03:49, Jeff Cody wrote:
> The following changes since commit b68a80139e37e806f004237e55311ebc42151434:
>
> Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20160324' into
> staging (2016-03-24 16:24:02 +)
>
> are available in the git repository
On 22.03.2016 20:36, Kevin Wolf wrote:
> This patch removes the remaining users of bs->blk, which will allow us
> to have multiple BBs on top of a single BDS. All checks that are
> currently in place to prevent the user from creating such setups.
I think this sentence is missing a word or two.
>
On 22.03.2016 20:36, Kevin Wolf wrote:
> query-named-block-nodes should not return information that is related
> to the attached BlockBackend rather than the node itself, so throttling
> information needs to be removed from it.
>
> Signed-off-by: Kevin Wolf
> ---
>
On 22.03.2016 20:36, Kevin Wolf wrote:
> We need to introduce a separate BdrvNextIterator struct that can keep
> more state than just the current BDS in order to avoid using the bs->blk
> pointer.
>
> Signed-off-by: Kevin Wolf
> ---
> block.c| 34
On 22.03.2016 20:36, Kevin Wolf wrote:
> bdrv_move_feature_fields() and swap_feature_fields() are empty now, they
> can be removed.
>
> Signed-off-by: Kevin Wolf
> ---
> block.c | 30 --
> 1 file changed, 30 deletions(-)
Nice. :-)
Reviewed-by: Max
On 22.03.2016 20:36, Kevin Wolf wrote:
> We just want to know whether a BDS has at least one BB attached in order
> to avoid enumerating it twice. This doesn't depend on the exact BB that
> is attached and is still a valid question when more than one BB can be
> attached, so just answer it by
On 22.03.2016 20:36, Kevin Wolf wrote:
> Since virtio-blk implements request merging itself these days, the only
> remaining users are test cases for the function. That doesn't make the
> function exactly useful any more.
>
> Signed-off-by: Kevin Wolf
> ---
>
On 22.03.2016 20:36, Kevin Wolf wrote:
> In order to get rid of bs->blk for bdrv_get_device_name() and
> bdrv_get_device_or_node_name(), ask all parents for their name and
> simply pick the first one.
>
> Signed-off-by: Kevin Wolf
> ---
> block.c | 22
* Max Reitz (mre...@redhat.com) wrote:
> On 29.03.2016 18:03, Dr. David Alan Gilbert wrote:
> > * Max Reitz (mre...@redhat.com) wrote:
> >> On 29.03.2016 17:54, Dr. David Alan Gilbert wrote:
> >>> * Max Reitz (mre...@redhat.com) wrote:
> On 29.03.2016 17:50, Dr. David Alan Gilbert wrote:
>
The actual on-disk size of a file does not only depend on factors qemu
can control. Thus, we should not depend on this to determine whether a
file has indeed been fully allocated. Instead, use qemu-img map and hope
that if an area is referenced, it is indeed allocated, too.
Also, limit the
Am 24.03.2016 um 23:33 hat Max Reitz geschrieben:
> Using -S 0 is supposed to allocate everything in the output image; or at
> least it is supposed to always explicitly write zeros even if the area
> in question is known to only contain zeros. That doesn't always work
> right now, so this series
On 29.03.2016 18:09, Kevin Wolf wrote:
> Am 29.03.2016 um 17:56 hat Max Reitz geschrieben:
>> On 29.03.2016 17:51, Kevin Wolf wrote:
>>> Am 24.03.2016 um 20:07 hat Max Reitz geschrieben:
As I responded to:
- http://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg04464.html
-
On 29.03.2016 18:03, Dr. David Alan Gilbert wrote:
> * Max Reitz (mre...@redhat.com) wrote:
>> On 29.03.2016 17:54, Dr. David Alan Gilbert wrote:
>>> * Max Reitz (mre...@redhat.com) wrote:
On 29.03.2016 17:50, Dr. David Alan Gilbert wrote:
> * Eric Blake (ebl...@redhat.com) wrote:
>>
Am 29.03.2016 um 17:56 hat Max Reitz geschrieben:
> On 29.03.2016 17:51, Kevin Wolf wrote:
> > Am 24.03.2016 um 20:07 hat Max Reitz geschrieben:
> >> As I responded to:
> >> - http://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg04464.html
> >> -
* Max Reitz (mre...@redhat.com) wrote:
> On 29.03.2016 17:54, Dr. David Alan Gilbert wrote:
> > * Max Reitz (mre...@redhat.com) wrote:
> >> On 29.03.2016 17:50, Dr. David Alan Gilbert wrote:
> >>> * Eric Blake (ebl...@redhat.com) wrote:
> On 03/29/2016 09:38 AM, Max Reitz wrote:
> > On
On 29.03.2016 17:54, Dr. David Alan Gilbert wrote:
> * Max Reitz (mre...@redhat.com) wrote:
>> On 29.03.2016 17:50, Dr. David Alan Gilbert wrote:
>>> * Eric Blake (ebl...@redhat.com) wrote:
On 03/29/2016 09:38 AM, Max Reitz wrote:
> On 17.03.2016 10:56, Wen Congyang wrote:
>> On
On 29.03.2016 17:51, Kevin Wolf wrote:
> Am 24.03.2016 um 20:07 hat Max Reitz geschrieben:
>> As I responded to:
>> - http://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg04464.html
>> - http://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg05680.html
>>
>> I think a general solution
* Max Reitz (mre...@redhat.com) wrote:
> On 29.03.2016 17:50, Dr. David Alan Gilbert wrote:
> > * Eric Blake (ebl...@redhat.com) wrote:
> >> On 03/29/2016 09:38 AM, Max Reitz wrote:
> >>> On 17.03.2016 10:56, Wen Congyang wrote:
> On 03/17/2016 05:48 PM, Dr. David Alan Gilbert wrote:
> >>>
>
On 29.03.2016 17:50, Dr. David Alan Gilbert wrote:
> * Eric Blake (ebl...@redhat.com) wrote:
>> On 03/29/2016 09:38 AM, Max Reitz wrote:
>>> On 17.03.2016 10:56, Wen Congyang wrote:
On 03/17/2016 05:48 PM, Dr. David Alan Gilbert wrote:
>>>
>>> [...]
>>>
> The children.0 notation is really
On 29.03.2016 17:44, Eric Blake wrote:
> On 03/29/2016 09:38 AM, Max Reitz wrote:
>> On 17.03.2016 10:56, Wen Congyang wrote:
>>> On 03/17/2016 05:48 PM, Dr. David Alan Gilbert wrote:
>>
>> [...]
>>
The children.0 notation is really confusing in the way that Berto
describes; I hit this a
Am 24.03.2016 um 20:07 hat Max Reitz geschrieben:
> As I responded to:
> - http://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg04464.html
> - http://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg05680.html
>
> I think a general solution for querying the block node tree would be
>
* Eric Blake (ebl...@redhat.com) wrote:
> On 03/29/2016 09:38 AM, Max Reitz wrote:
> > On 17.03.2016 10:56, Wen Congyang wrote:
> >> On 03/17/2016 05:48 PM, Dr. David Alan Gilbert wrote:
> >
> > [...]
> >
> >>> The children.0 notation is really confusing in the way that Berto
> >>> describes; I
On 03/29/2016 09:38 AM, Max Reitz wrote:
> On 17.03.2016 10:56, Wen Congyang wrote:
>> On 03/17/2016 05:48 PM, Dr. David Alan Gilbert wrote:
>
> [...]
>
>>> The children.0 notation is really confusing in the way that Berto
>>> describes; I hit this a couple of months ago and it really doesn't
On 29.03.2016 17:39, Eric Blake wrote:
> On 03/29/2016 09:29 AM, Max Reitz wrote:
>
>>
>> In my opinion, the way the order is explicitly represented is through
>> every child's role. For quorum, "children.${i}" comes before
>> "children.${i+1}".
>>
>> The general block layer does not care about
On 17.03.2016 10:56, Wen Congyang wrote:
> On 03/17/2016 05:48 PM, Dr. David Alan Gilbert wrote:
[...]
>> The children.0 notation is really confusing in the way that Berto
>> describes; I hit this a couple of months ago and it really doesn't
>> make sense.
>
> Do you mean: read from children.1
On 28.03.2016 17:25, Eric Blake wrote:
> On 03/26/2016 10:33 AM, Max Reitz wrote:
>
>>> We insert the new child to the head, not the tail...
>>
>> Well, the idea is that the order of children doesn't really matter; The
>> only thing that describes the behavior of a child is its role. For
>>
On 03/29/2016 09:29 AM, Max Reitz wrote:
>
> In my opinion, the way the order is explicitly represented is through
> every child's role. For quorum, "children.${i}" comes before
> "children.${i+1}".
>
> The general block layer does not care about these generic children, it
> only cares about
The only remaining users were block jobs (mirror and backup) which
unconditionally enabled WCE on the BlockBackend of the target image. As
these block jobs don't go through BlockBackend for their I/O requests,
they aren't affected by this setting anyway but always get a writeback
mode, so that
The NBD server already used to send a FUA flag when the writethrough
mode was set. This code was a remnant from the times where protocol
drivers actually had to implement writethrough modes. Since nowadays the
block layer sends flushes in writethrough mode and non-root nodes are
always writeback,
This replaces the existing hack in the iscsi driver that sent the FUA
bit in writethrough mode and ignored the following flush in order to
optimise the number of roundtrips (see commit 73b5394e).
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
From: Max Reitz
Signed-off-by: Max Reitz
Acked-by: Fam Zheng
Signed-off-by: Kevin Wolf
---
block/null.c | 22 ++
1 file changed, 22 insertions(+)
diff --git a/block/null.c b/block/null.c
index
Signed-off-by: Kevin Wolf
Acked-by: Stefano Stabellini
Reviewed-by: Max Reitz
---
hw/block/xen_disk.c | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c
index
We don't want to silently ignore a flush error.
Also, there is little point in avoiding the flush for writethrough modes
and once WCE is moved to the BB layer, we definitely need the flush here
because bdrv_pwrite() won't involve one any more.
Signed-off-by: Kevin Wolf
From: Pavel Dovgalyuk
This patch fixes scheduling of bottom halves when record/replay is enabled.
Now BH are not added to replay queue when asynchronous events are disabled.
This may happen in startup and loadvm/savevm phases of execution.
Signed-off-by: Pavel
From: Max Reitz
When passing -S 0 to qemu-img convert, the target image is supposed to
be fully allocated. Right now, this is not the case if the source image
contains areas which bdrv_get_block_status() reports as being zero.
This patch changes a zeroed area's status from
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
qemu-nbd.c | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/qemu-nbd.c b/qemu-nbd.c
index f3528c8..b11bc41 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -507,6 +507,7 @@ int main(int
All users are converted to bdrv_parse_cache_mode() now.
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
block.c | 29 +++--
include/block/block.h | 1 -
2 files changed, 7 insertions(+), 23 deletions(-)
diff
From: Max Reitz
Passing -S 0 to qemu-img convert should result in all source data being
copied to the output, even if that source data is known to be 0. The
output image should therefore have exactly the same size on disk as an
image which we explicitly filled with data.
From: Max Reitz
This is optional so that it does not impede the null block driver's
performance unless this behavior is desired.
Signed-off-by: Max Reitz
Reviewed-by: Eric Blake
Acked-by: Fam Zheng
Signed-off-by: Kevin
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
blockdev.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index 27c9b59..c2dd584 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -897,8 +897,9 @@ DriveInfo
This function will allow drivers to implement BDRV_REQ_FUA natively
instead of sending a separate flush after the write.
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
block/io.c| 9 -
include/block/block_int.h | 5 +
2
From: "Daniel P. Berrange"
It is important that the QEMU luks implementation retains 100%
compatibility with the reference implementation provided by
the combination of the linux kernel dm-crypt module and cryptsetup
userspace tools.
There is a matrix of tests to be
Now that WCE is handled on the BlockBackend level, the flag is
meaningless for BDSes. As the schema requires us to fill the field,
we return an enabled write cache for them.
Note that this means that querying the BlockBackend name may return
writethrough as the cache information, whereas querying
Pass through the FUA flag to the lower layer so that the separate flush
can be saved in practically relevant cases where a (raw) format driver
sits on top of the protocol driver.
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
block/raw_bsd.c | 17
It always only set the BDRV_O_CACHE_WB flag, which is going to go away.
In order to make the next changes more local for better reviewability
this patches expands the macro.
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
qemu-img.c | 23
Whether a write cache is used or not is a decision that concerns the
user (e.g. the guest device) rather than the backend. It was already
logically part of the BB level as bdrv_move_feature_fields() always kept
it on top of the BDS tree; with this patch, the core of it (the actual
flag and the
From: Pavel Dovgalyuk
This patch introduces block driver that implement recording
and replaying of block devices' operations.
All block completion operations are added to the queue.
Queue is flushed at checkpoints and information about processed requests
is recorded to
We must forbid changing the WCE flag in bdrv_reopen() in the same patch,
as otherwise the behaviour would change so that the flag takes
precedence over the explicitly specified option.
The correct value of the WCE flag depends on the BlockBackend user (e.g.
guest device) and isn't a decision that
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
qemu-io.c | 21 +
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/qemu-io.c b/qemu-io.c
index 1bd1158..21492d0 100644
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -50,7 +50,7 @@
From: Pavel Dovgalyuk
This patch adds callback for flush request. This callback is responsible
for flushing whole block devices stack. bdrv_flush function does not
proceed to underlying devices. It should be performed by this callback
function, if needed.
It's like bdrv_parse_cache_flags(), except that writethrough mode isn't
included in the flags, but returned as a separate bool.
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
block.c | 17 +
include/block/block.h | 1 +
From: "Daniel P. Berrange"
For a couple of releases we have been warning
Encrypted images are deprecated
Support for them will be removed in a future release.
You can use 'qemu-img convert' to convert your image to an unencrypted one.
This warning was issued by
From: "Daniel P. Berrange"
The iotests.py helper provides a main() method for running
tests via the python unit test framework. Not all tests
will want to use this, so refactor it to split the testing
of compatible formats and platforms into separate helper
methods
From: "Daniel P. Berrange"
Add a block driver that is capable of supporting any full disk
encryption format. This utilizes the previously added block
encryption code, and at this time supports the LUKS format.
The driver code is capable of supporting any format supported
by
From: "Daniel P. Berrange"
When opening an image it is useful to know whether the caller
intends to perform I/O on the image or not. In the case of
encrypted images this will allow the block driver to avoid
having to prompt for decryption keys when we merely want to
query
From: "Daniel P. Berrange"
The qemu-img/qemu-io tools prompt for disk encryption passwords
regardless of whether any are actually required. Adding a check
on bdrv_key_required() avoids this prompt for disk formats which
have been converted to the QCryptoSecret APIs.
This is
The function is unused since commit f21d96d0 ('block: Use BdrvChild in
BlockBackend').
Signed-off-by: Kevin Wolf
Reviewed-by: Eric Blake
---
block/block-backend.c | 17 -
include/block/block_int.h | 2 --
2 files changed, 19
From: Max Reitz
bdrv_query_blk_stats() does not need access to all of BlockStats,
BlockDeviceStats is enough and is what this function is actually
supposed to fill.
Signed-off-by: Max Reitz
Signed-off-by: Kevin Wolf
---
block/qapi.c |
From: "Daniel P. Berrange"
The python I/O tests helper for running qemu-img/qemu-io
setup stdout to be captured to a pipe, but left stderr
untouched. As a result, if something failed in qemu-img/
qemu-io, data written to stderr would get output directly
and not line up with
From: Pavel Dovgalyuk
This patch fixes error message in saving loop of the asynchronous events queue.
Signed-off-by: Pavel Dovgalyuk
[ kwolf: Fixed format string to use PRId64 instead of %d ]
Signed-off-by: Kevin Wolf
---
From: "Daniel P. Berrange"
Add a 'log' method to iotests.py which prints messages to
stdout, with optional filtering of data. Port over some
standard filters already present in the shell common.filter
code to be usable in python too.
Reviewed-by: Eric Blake
Writethrough mode is going to become a BlockBackend feature rather than
a BDS one, so forbid it in places where we won't be able to support it
when the code finally matches the envisioned design.
We only allowed setting the cache mode of non-root nodes after the 2.5
release, so we're still free
From: Max Reitz
This is the only instance of bdrv_query_blk_stats() accessing anything
in the BlockStats structure other than s->stats, so let us move it to
its caller (where it makes just as much sense) allowing us to make
bdrv_query_blk_stats() take a pointer to the
From: Peter Xu
Using heap instead of stack for better safety.
Signed-off-by: Peter Xu
Reviewed-by: Eric Blake
Reviewed-by: Markus Armbruster
Signed-off-by: Kevin Wolf
---
block/qapi.c | 3 ++-
1
From: Peter Xu
Fix two places to use literal printf format when possible.
Signed-off-by: Peter Xu
Reviewed-by: Eric Blake
Reviewed-by: Markus Armbruster
Signed-off-by: Kevin Wolf
---
block/qapi.c
The WCE bit is a frontend property and should not be part of the backend
configuration. This is especially important because the same BDS can be
used by different users with different WCE requirements.
Signed-off-by: Kevin Wolf
---
qapi/block-core.json | 4 +---
1 file
Ever since we first introduced bdrv_append() in commit 8802d1fd ('qapi:
Introduce blockdev-group-snapshot-sync command'), the copy-on-read flag
was moved to the new top layer when taking a snapshot. The only problem
is that it doesn't make a whole lot of sense.
The use case for manually enabled
The call in hmp_drive_del() is dead code because blk_remove_bs() is
called a few lines above. The only other remaining user is
bdrv_delete(), which only abuses bdrv_make_anon() to remove it from the
named nodes list. This path inlines the list entry removal into
bdrv_delete() and removes
First of all, we're generally not writing to backing files, but when we
do, it's in the context of block jobs which know very well when to flush
the image.
Signed-off-by: Kevin Wolf
Reviewed-by: Eric Blake
---
block.c| 5 +++--
The following changes since commit b68a80139e37e806f004237e55311ebc42151434:
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20160324' into
staging (2016-03-24 16:24:02 +)
are available in the git repository at:
git://repo.or.cz/qemu/kevin.git tags/for-upstream
for you to
This patch changes dirty bitmaps from following a BlockBackend in graph
changes to sticking with the node they were created at. For the full
discussion, read the following mailing list thread:
[Qemu-block] block: Dirty bitmaps and COR in bdrv_move_feature_fields()
This is optional so that it does not impede the null block driver's
performance unless this behavior is desired.
Signed-off-by: Max Reitz
Reviewed-by: Eric Blake
Acked-by: Fam Zheng
---
block/null.c | 20
1 file
Signed-off-by: Max Reitz
Acked-by: Fam Zheng
---
block/null.c | 22 ++
1 file changed, 22 insertions(+)
diff --git a/block/null.c b/block/null.c
index a7df386..f4b3bba 100644
--- a/block/null.c
+++ b/block/null.c
@@ -204,6 +204,24 @@
When passing -S 0 to qemu-img convert, the target image is supposed to
be fully allocated. Right now, this is not the case if the source image
contains areas which bdrv_get_block_status() reports as being zero.
This patch changes a zeroed area's status from BLK_ZERO to BLK_DATA
before invoking
Using -S 0 is supposed to allocate everything in the output image; or at
least it is supposed to always explicitly write zeros even if the area
in question is known to only contain zeros. That doesn't always work
right now, so this series fixes it (patch 1, to be specific).
I only noticed after I
Passing -S 0 to qemu-img convert should result in all source data being
copied to the output, even if that source data is known to be 0.
Signed-off-by: Max Reitz
---
tests/qemu-iotests/150 | 74 ++
tests/qemu-iotests/150.out |
On 29/03/2016 16:09, Michael S. Tsirkin wrote:
>> > Another small comment, this can be written simply as
>> >
>> > if (s->dataplane) {
>> > virtio_blk_data_plane_start(s->dataplane);
>
> True, it's best not to poke at dataplane_started.
>
> > } else {
> >
On 29/03/2016 16:14, Alberto Garcia wrote:
> On Thu 24 Mar 2016 05:39:22 PM CET, Paolo Bonzini wrote:
>> @@ -335,6 +346,11 @@ void throttle_group_config(BlockDriverState *bs,
>> ThrottleConfig *cfg)
>> }
>> throttle_config(ts, tt, cfg);
>> qemu_mutex_unlock(>lock);
>> +
>> +
On Thu 24 Mar 2016 05:39:22 PM CET, Paolo Bonzini wrote:
> @@ -335,6 +346,11 @@ void throttle_group_config(BlockDriverState *bs,
> ThrottleConfig *cfg)
> }
> throttle_config(ts, tt, cfg);
> qemu_mutex_unlock(>lock);
> +
> +aio_context_acquire(bdrv_get_aio_context(bs));
> +
On 29/03/2016 15:42, Michael S. Tsirkin wrote:
> +if (s->dataplane) {
> +/* Some guests kick before setting VIRTIO_CONFIG_S_DRIVER_OK so start
> + * dataplane here instead of waiting for .set_status().
> + */
> +if (!s->dataplane_started) {
> +
On Tue, Mar 29, 2016 at 04:05:46PM +0200, Paolo Bonzini wrote:
>
>
> On 29/03/2016 15:42, Michael S. Tsirkin wrote:
> > +if (s->dataplane) {
> > +/* Some guests kick before setting VIRTIO_CONFIG_S_DRIVER_OK so
> > start
> > + * dataplane here instead of waiting for
On Thu 24 Mar 2016 05:39:21 PM CET, Paolo Bonzini wrote:
> The return value is unused and I am not sure why it would be useful.
Yeah, this is not needed since 0b06ef3bdd177.
Reviewed-by: Alberto Garcia
> while (qemu_co_enter_next(>throttled_reqs[i])) {
> -
On 29/03/2016 15:58, Michael S. Tsirkin wrote:
> In that case, we'll have to also change scsi to use the new API.
> A bit more work, to be sure.
> Does scsi have the same problem as blk?
Yes. The bug is in the virtio core.
Paolo
On Tue, Mar 29, 2016 at 03:56:18PM +0200, Paolo Bonzini wrote:
>
>
> On 29/03/2016 15:42, Michael S. Tsirkin wrote:
> > @@ -262,6 +274,7 @@ void virtio_blk_data_plane_stop(VirtIOBlockDataPlane *s)
> >
> > /* Stop notifications for new requests from guest */
> >
On 29.03.2016 15:30, Kevin Wolf wrote:
> This replaces the existing hack in the iscsi driver that sent the FUA
> bit in writethrough mode and ignored the following flush in order to
> optimise the number of roundtrips (see commit 73b5394e).
>
> Signed-off-by: Kevin Wolf
> ---
>
On 29.03.2016 15:30, Kevin Wolf wrote:
> Pass through the FUA flag to the lower layer so that the separate flush
> can be saved in practically relevant cases where a (raw) format driver
> sits on top of the protocol driver.
>
> Signed-off-by: Kevin Wolf
> ---
> block/raw_bsd.c
On 29.03.2016 15:30, Kevin Wolf wrote:
> We must forbid changing the WCE flag in bdrv_reopen() in the same patch,
> as otherwise the behaviour would change so that the flag takes
> precedence over the explicitly specified option.
>
> The correct value of the WCE flag depends on the BlockBackend
In addition to handling IO in vcpu thread and
in io thread, blk dataplane introduces yet another mode:
handling it by aio.
This reuses the same handler as previous modes,
which triggers races as these were not designed to be reentrant.
As a temporary fix, use a separate handler just for aio, and
On 29.03.2016 15:30, Kevin Wolf wrote:
> The NBD server already used to send a FUA flag when the writethrough
> mode was set. This code was a remnant from the times where protocol
> drivers actually had to implement writethrough modes. Since nowadays the
> block layer sends flushes in writethrough
All users are converted to bdrv_parse_cache_mode() now.
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
block.c | 29 +++--
include/block/block.h | 1 -
2 files changed, 7 insertions(+), 23 deletions(-)
diff
This function will allow drivers to implement BDRV_REQ_FUA natively
instead of sending a separate flush after the write.
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
block/io.c| 9 -
include/block/block_int.h | 5 +
2
We must forbid changing the WCE flag in bdrv_reopen() in the same patch,
as otherwise the behaviour would change so that the flag takes
precedence over the explicitly specified option.
The correct value of the WCE flag depends on the BlockBackend user (e.g.
guest device) and isn't a decision that
The previous patches have successively made blk->enable_write_cache the
true source for the information whether a writethrough mode must be
implemented. The corresponding BDRV_O_CACHE_WB is only useless baggage
we're carrying around, so now's the time to remove it.
At the same time, we remove the
Pass through the FUA flag to the lower layer so that the separate flush
can be saved in practically relevant cases where a (raw) format driver
sits on top of the protocol driver.
Signed-off-by: Kevin Wolf
---
block/raw_bsd.c | 17 ++---
1 file changed, 14
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
blockdev.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index 27c9b59..c2dd584 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -897,8 +897,9 @@ DriveInfo
Signed-off-by: Kevin Wolf
Acked-by: Stefano Stabellini
Reviewed-by: Max Reitz
---
hw/block/xen_disk.c | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c
index
Whether a write cache is used or not is a decision that concerns the
user (e.g. the guest device) rather than the backend. It was already
logically part of the BB level as bdrv_move_feature_fields() always kept
it on top of the BDS tree; with this patch, the core of it (the actual
flag and the
The NBD server already used to send a FUA flag when the writethrough
mode was set. This code was a remnant from the times where protocol
drivers actually had to implement writethrough modes. Since nowadays the
block layer sends flushes in writethrough mode and non-root nodes are
always writeback,
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
qemu-nbd.c | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/qemu-nbd.c b/qemu-nbd.c
index f3528c8..b11bc41 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -507,6 +507,7 @@ int main(int
1 - 100 of 113 matches
Mail list logo