20.01.2018 03:37, John Snow wrote:
On 01/19/2018 01:08 PM, Vladimir Sementsov-Ogievskiy wrote:
18.01.2018 12:57, Vladimir Sementsov-Ogievskiy wrote:
17.01.2018 21:30, John Snow wrote:
On 12/28/2017 06:49 AM, Vladimir Sementsov-Ogievskiy wrote:
Thank you for reviewing my code!
Time for the
20.01.2018 02:43, John Snow wrote:
On 01/16/2018 07:54 AM, Vladimir Sementsov-Ogievskiy wrote:
To maintain load/store disabled bitmap there is new approach:
- deprecate @autoload flag of block-dirty-bitmap-add, make it ignored
- store enabled bitmaps as "auto" to qcow2
- store disabled b
20.01.2018 02:50, John Snow wrote:
On 01/16/2018 07:54 AM, Vladimir Sementsov-Ogievskiy wrote:
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
qapi/block-core.json | 42 ++
blockdev.c | 42 ++
2 files
20.01.2018 03:28, John Snow wrote:
On 01/17/2018 10:06 AM, Vladimir Sementsov-Ogievskiy wrote:
16.01.2018 15:54, Vladimir Sementsov-Ogievskiy wrote:
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
qapi/transaction.json | 4 +++
blockdev.c | 79
20.01.2018 02:30, John Snow wrote:
On 01/16/2018 07:54 AM, Vladimir Sementsov-Ogievskiy wrote:
Hi all.
There are three qmp commands, needed to implement external backup API.
Using these three commands, client may do all needed bitmap management by
hand:
on backup start we need to do a transa
To maintain load/store disabled bitmap there is new approach:
- deprecate @autoload flag of block-dirty-bitmap-add, make it ignored
- store enabled bitmaps as "auto" to qcow2
- store disabled bitmaps without "auto" flag to qcow2
- on qcow2 open load "auto" bitmaps as enabled and others
as d
19.01.2018 17:12, Vladimir Sementsov-Ogievskiy wrote:
18.01.2018 13:09, Paolo Bonzini wrote:
On 18/01/2018 10:55, Vladimir Sementsov-Ogievskiy wrote:
Most functions that looks at the list are "called with BQL taken".
Functions that write to the list are "called with BQL taken" and call
bdrv_dir
22.01.2018 12:20, Vladimir Sementsov-Ogievskiy wrote:
20.01.2018 02:30, John Snow wrote:
On 01/16/2018 07:54 AM, Vladimir Sementsov-Ogievskiy wrote:
Hi all.
There are three qmp commands, needed to implement external backup API.
Using these three commands, client may do all needed bitmap
man
On Tue, Jan 16, 2018 at 02:08:52PM +0800, Fam Zheng wrote:
> v6: Fix the cleaning up around nvme_init() and write cache setup in
> nvme_file_open(). [Stefan]
> Add Stefan's rev-by to the doc patch.
> Rebase on to Paolo's coroutine series for q->free_req_queue:
>
> Based-on: 20180115220
If the user specifies image format through driver-specific options, The
format probing should be prohibited and the warning message should not
be printed.
e.g.:
$ qemu-system-x86_64 ... -drive file.file.filename=disk0.raw,file.driver=raw ...
WARNING: Image format was not specified for 'disk0.raw'
On Fri, Jan 12, 2018 at 12:01:17PM +0300, Klim Kireev wrote:
> Parallels Desktop and Parallels Cloud Server uses images glued with the
> bundle description in XML format. This series contains very basic
> description of this XML files and makes preparations for actual
> implementation to be followe
blk_co_preadv and blk_co_pwritev calls bdrv_inc_in_flight and
bdrv_dec_in_flight. But they calls correspondingly bdrv_co_preadv
and bdrv_co_pwritev, which inc/dec in-flight count by themselves.
Counting in-flight requests in blk_ layer is redundant, drop it.
Signed-off-by: Vladimir Sementsov-Ogiev
Add a BlockDriverState NULL check to virtio_blk_handle_request()
to prevent a segfault if the drive is forcibly removed using HMP
'drive_del' (without performing a hotplug 'device_del' first).
Signed-off-by: Mark Kanda
Reviewed-by: Karl Heubaum
Reviewed-by: Ameya More
---
hw/block/virtio-blk.c
On 01/20/2018 09:44 AM, Max Reitz wrote:
> This is a dynamic casting macro that, given a QObject type, returns an
> object as that type or NULL if the object is of a different type (or
> NULL itself).
>
> The macro uses lower-case letters because:
> 1. There does not seem to be a hard rule on whet
On Tue 16 Jan 2018 05:57:22 PM CET, Anton Nefedov wrote:
>> -r->l2_slice_size = s->cluster_size / sizeof(uint64_t);
>> -r->l2_table_cache = qcow2_cache_create(bs, l2_cache_size);
>> -r->refcount_block_cache = qcow2_cache_create(bs, refcount_cache_size);
>> +l2_cache_size *= s->clust
On 2018-01-22 08:21, Lin Ma wrote:
> If the user specifies image format through driver-specific options, The
> format probing should be prohibited and the warning message should not
> be printed.
>
> e.g.:
> $ qemu-system-x86_64 ... -drive file.file.filename=disk0.raw,file.driver=raw
> ...
> WARN
On 2018-01-22 16:33, Eric Blake wrote:
> On 01/20/2018 09:44 AM, Max Reitz wrote:
>> This is a dynamic casting macro that, given a QObject type, returns an
>> object as that type or NULL if the object is of a different type (or
>> NULL itself).
>>
>> The macro uses lower-case letters because:
>> 1.
On 01/22/2018 07:22 AM, Vladimir Sementsov-Ogievskiy wrote:
> 22.01.2018 12:20, Vladimir Sementsov-Ogievskiy wrote:
>> 20.01.2018 02:30, John Snow wrote:
>>>
>>> On 01/16/2018 07:54 AM, Vladimir Sementsov-Ogievskiy wrote:
Hi all.
There are three qmp commands, needed to implement ex
On 01/22/2018 07:14 AM, Vladimir Sementsov-Ogievskiy wrote:
> 19.01.2018 17:12, Vladimir Sementsov-Ogievskiy wrote:
>> 18.01.2018 13:09, Paolo Bonzini wrote:
>>> On 18/01/2018 10:55, Vladimir Sementsov-Ogievskiy wrote:
> Most functions that looks at the list are "called with BQL taken".
>
On 01/22/2018 03:09 AM, Vladimir Sementsov-Ogievskiy wrote:
>>>
>> I have to admit exposing this interface still makes me nervous, but :)
>>
>> Mechanically correct, and with suggesting phrasing changes:
>>
>> Reviewed-by: John Snow
Should we go with an x- prefix for now, and let things settle f
On 01/22/2018 02:51 PM, Eric Blake wrote:
> On 01/22/2018 03:09 AM, Vladimir Sementsov-Ogievskiy wrote:
>
>>> I have to admit exposing this interface still makes me nervous, but :)
>>>
>>> Mechanically correct, and with suggesting phrasing changes:
>>>
>>> Reviewed-by: John Snow
>
> Shoul
On 01/12/2018 03:01 AM, Klim Kireev wrote:
> This patch adds main information about Parallels Disk
> format, which consists of DiskDescriptor.xml and other files.
>
> Signed-off-by: Edgar Kaziakhmedov
> Signed-off-by: Klim Kireev
> Signed-off-by: Vladimir Sementsov-Ogievskiy
> Signed-off-by: De
On 12/15/2017 06:53 AM, Alberto Garcia wrote:
> This function doesn't need any changes to support L2 slices, but since
> it's now dealing with slices intead of full tables, the l2_table
> variable is renamed for clarity.
>
> Signed-off-by: Alberto Garcia
> ---
> block/qcow2-cluster.c | 6 +++---
On 01/22/2018 02:32 PM, Eric Blake wrote:
> On 01/12/2018 03:01 AM, Klim Kireev wrote:
>> This patch adds main information about Parallels Disk
>> format, which consists of DiskDescriptor.xml and other files.
>>
>> Signed-off-by: Edgar Kaziakhmedov
>> Signed-off-by: Klim Kireev
>> Signed-off-by:
On 12/15/2017 06:53 AM, Alberto Garcia wrote:
> This function doesn't need any changes to support L2 slices, but since
> it's now dealing with slices intead of full tables, the l2_table
> variable is renamed for clarity.
>
> Signed-off-by: Alberto Garcia
> ---
> block/qcow2-cluster.c | 4 ++--
>
On 01/19/2018 06:50 AM, Anton Nefedov wrote:
> Signed-off-by: Anton Nefedov
> Reviewed-by: Vladimir Sementsov-Ogievskiy
> Reviewed-by: Alberto Garcia
> ---
> qapi/block-core.json | 29 +++--
> include/block/accounting.h | 1 +
> block/qapi.c | 6 +++
On 01/19/2018 06:50 AM, Anton Nefedov wrote:
> Signed-off-by: Anton Nefedov
> ---
> hw/ide/core.c | 13 +
> 1 file changed, 13 insertions(+)
>
> @@ -460,10 +468,15 @@ static void ide_issue_trim_cb(void *opaque, int ret)
> }
>
> if (!ide_sect_range
On 01/19/2018 06:50 AM, Anton Nefedov wrote:
> A block driver can provide a callback to report driver-specific
> statistics.
>
> file-posix driver now reports discard statistics
>
> Signed-off-by: Anton Nefedov
> Reviewed-by: Vladimir Sementsov-Ogievskiy
> ---
> +++ b/qapi/block-core.json
> @@
Draining a BDS child may lead to other children of the same parent being
detached and/or deleted. We should prepare for the former case (by
copying the children list before iterating through it) and prevent the
latter (by bdrv_ref()'ing all nodes if we are in the main loop).
Signed-off-by: Max Re
Draining a BDS (in the main loop) may cause it to go be deleted. That
is rather suboptimal if we still plan to access it afterwards, so let us
enclose the main body of the function with a bdrv_ref()/bdrv_unref()
pair.
Signed-off-by: Max Reitz
---
block/io.c | 19 +++
1 file chan
This series implements an active and synchronous mirroring mode.
Currently, the mirror block job is passive an asynchronous: Depending on
your start conditions, some part of the source disk starts as "dirty".
Then, the block job will (as a background operation) continuously copy
dirty parts to the
This patch adds two bdrv-drain tests for what happens if some BDS goes
away during the drainage.
The basic idea is that you have a parent BDS with some child nodes.
Then, you drain one of the children. Because of that, the party who
actually owns the parent decides to (A) delete it, or (B) detach
When converting mirror's I/O to coroutines, we are going to need a point
where these coroutines are created. mirror_perform() is going to be
that point.
Signed-off-by: Max Reitz
Reviewed-by: Fam Zheng
Reviewed-by: Vladimir Sementsov-Ogievskiy
---
block/mirror.c | 51 ++
This new function allows to look for a consecutively dirty area in a
dirty bitmap.
Signed-off-by: Max Reitz
---
include/block/dirty-bitmap.h | 2 ++
block/dirty-bitmap.c | 51
2 files changed, 53 insertions(+)
diff --git a/include/block/dirt
Attach a CoQueue to each in-flight operation so if we need to wait for
any we can use it to wait instead of just blindly yielding and hoping
for some operation to wake us.
A later patch will use this infrastructure to allow requests accessing
the same area of the virtual disk to specifically wait
This patch makes the mirror code differentiate between simply waiting
for any operation to complete (mirror_wait_for_free_in_flight_slot())
and specifically waiting for all operations touching a certain range of
the virtual disk to complete (mirror_wait_on_conflicts()).
Signed-off-by: Max Reitz
-
With this, the mirror_top_bs is no longer just a technically required
node in the BDS graph but actually represents the block job operation.
Also, drop MirrorBlockJob.source, as we can reach it through
mirror_top_bs->backing.
Signed-off-by: Max Reitz
---
block/mirror.c | 14 ++
1 fi
This patch implements active synchronous mirroring. In active mode, the
passive mechanism will still be in place and is used to copy all
initially dirty clusters off the source disk; but every write request
will write data both to the source and the target disk, so the source
cannot be dirtied fas
Currently, bdrv_replace_node() refuses to create loops from one BDS to
itself if the BDS to be replaced is the backing node of the BDS to
replace it: Say there is a node A and a node B. Replacing B by A means
making all references to B point to A. If B is a child of A (i.e. A has
a reference to B
Signed-off-by: Max Reitz
---
tests/qemu-iotests/151 | 114 +
tests/qemu-iotests/151.out | 5 ++
tests/qemu-iotests/group | 1 +
3 files changed, 120 insertions(+)
create mode 100755 tests/qemu-iotests/151
create mode 100644 tests/qemu-iotest
This will allow us to access the block job data when the mirror block
driver becomes more complex.
Signed-off-by: Max Reitz
---
block/mirror.c | 12
1 file changed, 12 insertions(+)
diff --git a/block/mirror.c b/block/mirror.c
index bb46f3c4e9..c1987b0230 100644
--- a/block/mirror.
In order to talk to the source BDS (and maybe in the future to the
target BDS as well) directly, we need to convert our existing AIO
requests into coroutine I/O requests.
Signed-off-by: Max Reitz
---
block/mirror.c | 154 ++---
1 file changed,
This patch allows the user to specify whether to use active or only
passive mode for mirror block jobs. Currently, this setting will remain
constant for the duration of the entire block job.
Signed-off-by: Max Reitz
---
qapi/block-core.json | 11 +--
include/block/block_int.h | 4
This new parameter allows the caller to just query the next dirty
position without moving the iterator.
Signed-off-by: Max Reitz
---
include/qemu/hbitmap.h | 5 -
block/backup.c | 2 +-
block/dirty-bitmap.c | 2 +-
tests/test-hbitmap.c | 26 +-
util/hbi
Currently, the mirror block job only knows passive operations. But once
we introduce active writes, we need to distinguish between the two; for
example, mirror_wait_for_free_in_flight_slot() should wait for a passive
operation because active writes will not use the same in-flight slots.
Signed-of
On 01/19/2018 07:57 AM, Vladimir Sementsov-Ogievskiy wrote:
> Add command for removing an export. It is needed for cases when we
> don't want to keep export after the operation on it was completed.
> The other example is temporary node, created with blockdev-add.
> If we want to delete it we should
On 01/23/2018 12:45 AM, Max Reitz wrote:
On 2018-01-22 08:21, Lin Ma wrote:
If the user specifies image format through driver-specific options, The
format probing should be prohibited and the warning message should not
be printed.
e.g.:
$ qemu-system-x86_64 ... -drive file.file.filename=disk0.
47 matches
Mail list logo