On Wed 21 Feb 2018 11:10:07 PM CET, Eric Blake wrote:
>> This patch fixes several mistakes in the documentation of the
>> compressed cluster descriptor:
>
> More things to consider, as followup patches:
>
> Note that both the L1 table, and the standard L2 descriptors, have a cap
> on bit 55 as
On Thu 22 Feb 2018 12:39:52 AM CET, Eric Blake wrote:
> free_in_cluster = s->cluster_size - offset_into_cluster(s, offset);
> do {
> if (!offset || free_in_cluster < size) {
> -int64_t new_cluster = alloc_clusters_noref(bs, s->cluster_size);
> +int64_t
Hi,
I stumbled across the MAX_INFLIGHT_IO field that was introduced in 2015 and was
curious what was the reason
to choose 512MB as readahead? The question is that I found that the source VM
gets very unresponsive I/O wise
while the initial 512MB are read and furthermore seems to stay
On Thu 22 Feb 2018 12:39:53 AM CET, Eric Blake wrote:
> +assert(!!s->cluster_data == !!s->cluster_cache);
> +assert(csize < 2 * s->cluster_size + 512);
> if (!s->cluster_data) {
> -/* one more sector for decompressed data alignment */
> -
Am 20.02.2018 um 22:54 hat Paolo Bonzini geschrieben:
> On 20/02/2018 18:04, Peter Lieven wrote:
> > Hi,
> >
> > I remember we discussed a long time ago to limit the stack usage of all
> > functions that are executed in a coroutine
> > context to a very low value to be able to safely limit the
Am 22.02.2018 um 11:57 schrieb Kevin Wolf:
> Am 20.02.2018 um 22:54 hat Paolo Bonzini geschrieben:
>> On 20/02/2018 18:04, Peter Lieven wrote:
>>> Hi,
>>>
>>> I remember we discussed a long time ago to limit the stack usage of all
>>> functions that are executed in a coroutine
>>> context to a
On Wed 21 Feb 2018 07:33:55 PM CET, Kevin Wolf wrote:
[docs/qcow2-cache.txt]
> While reviewing this, I read the whole document and stumbled across
> these paragraphs:
>
>> The reason for this 1/4 ratio is to ensure that both caches cover the
>> same amount of disk space. Note however that this
This issue occurred at a very low probability, If we inject delays in
address_space_write_continue like this, the issue occurred inevitably:
###
diff --git a/exec.c b/exec.c
index e8d7b33..b9779e0 100644
---
Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
> If the backing file is overridden, this most probably does change the
> guest-visible data of a BDS. Therefore, we will need to consider this in
> bdrv_refresh_filename().
>
> Adding a new field to the BDS is not nice, but it is very simple and
ping
On Thu 15 Feb 2018 02:10:08 PM CET, Alberto Garcia wrote:
> The align_offset() function is equivalent to the ROUND_UP() macro so
> there's no need to use the former. The ROUND_UP() name is also a bit
> more explicit.
>
> This patch uses ROUND_UP() instead of the slower QEMU_ALIGN_UP()
>
On Wed 21 Feb 2018 05:59:58 PM CET, Eric Blake wrote:
> But as Berto has convinced me that an externally produced image can
> convince us to read up to 4M (even though we don't need that much to
> decompress),
A (harmless but funny) consequence of the way this works is that for any
valid
Am 22.02.2018 um 12:01 hat Peter Lieven geschrieben:
> Am 22.02.2018 um 11:57 schrieb Kevin Wolf:
> > Am 20.02.2018 um 22:54 hat Paolo Bonzini geschrieben:
> >> On 20/02/2018 18:04, Peter Lieven wrote:
> >>> Hi,
> >>>
> >>> I remember we discussed a long time ago to limit the stack usage of all
>
Am 22.02.2018 um 13:03 schrieb Daniel P. Berrangé:
> On Thu, Feb 22, 2018 at 01:02:05PM +0100, Peter Lieven wrote:
>> Am 22.02.2018 um 13:00 schrieb Daniel P. Berrangé:
>>> On Thu, Feb 22, 2018 at 12:51:58PM +0100, Peter Lieven wrote:
Am 22.02.2018 um 12:40 schrieb Daniel P. Berrangé:
>
Am 22.02.2018 um 13:06 hat Peter Lieven geschrieben:
> Am 22.02.2018 um 13:03 schrieb Daniel P. Berrangé:
> > On Thu, Feb 22, 2018 at 01:02:05PM +0100, Peter Lieven wrote:
> >> Am 22.02.2018 um 13:00 schrieb Daniel P. Berrangé:
> >>> On Thu, Feb 22, 2018 at 12:51:58PM +0100, Peter Lieven wrote:
>
Am 22.02.2018 um 12:32 schrieb Kevin Wolf:
> Am 22.02.2018 um 12:01 hat Peter Lieven geschrieben:
>> Am 22.02.2018 um 11:57 schrieb Kevin Wolf:
>>> Am 20.02.2018 um 22:54 hat Paolo Bonzini geschrieben:
On 20/02/2018 18:04, Peter Lieven wrote:
> Hi,
>
> I remember we discussed a
Am 22.02.2018 um 12:40 schrieb Daniel P. Berrangé:
> On Thu, Feb 22, 2018 at 12:32:04PM +0100, Kevin Wolf wrote:
>> Am 22.02.2018 um 12:01 hat Peter Lieven geschrieben:
>>> Am 22.02.2018 um 11:57 schrieb Kevin Wolf:
Am 20.02.2018 um 22:54 hat Paolo Bonzini geschrieben:
> On 20/02/2018
On Thu, Feb 22, 2018 at 01:02:05PM +0100, Peter Lieven wrote:
> Am 22.02.2018 um 13:00 schrieb Daniel P. Berrangé:
> > On Thu, Feb 22, 2018 at 12:51:58PM +0100, Peter Lieven wrote:
> >> Am 22.02.2018 um 12:40 schrieb Daniel P. Berrangé:
> >>> On Thu, Feb 22, 2018 at 12:32:04PM +0100, Kevin Wolf
On Thu, Feb 22, 2018 at 01:06:33PM +0100, Peter Lieven wrote:
> Am 22.02.2018 um 13:03 schrieb Daniel P. Berrangé:
> > On Thu, Feb 22, 2018 at 01:02:05PM +0100, Peter Lieven wrote:
> >> Am 22.02.2018 um 13:00 schrieb Daniel P. Berrangé:
> >>> On Thu, Feb 22, 2018 at 12:51:58PM +0100, Peter Lieven
Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
> When invoking drive-mirror in absolute-paths mode, the target's backing
> BDS is assigned to it in mirror_exit(). The current logic only does so
> if the target does not have that backing BDS already; but it actually
> cannot have a backing BDS
On Thu, Feb 22, 2018 at 12:32:04PM +0100, Kevin Wolf wrote:
> Am 22.02.2018 um 12:01 hat Peter Lieven geschrieben:
> > Am 22.02.2018 um 11:57 schrieb Kevin Wolf:
> > > Am 20.02.2018 um 22:54 hat Paolo Bonzini geschrieben:
> > >> On 20/02/2018 18:04, Peter Lieven wrote:
> > >>> Hi,
> > >>>
> > >>>
Am 22.02.2018 um 13:00 schrieb Daniel P. Berrangé:
> On Thu, Feb 22, 2018 at 12:51:58PM +0100, Peter Lieven wrote:
>> Am 22.02.2018 um 12:40 schrieb Daniel P. Berrangé:
>>> On Thu, Feb 22, 2018 at 12:32:04PM +0100, Kevin Wolf wrote:
Am 22.02.2018 um 12:01 hat Peter Lieven geschrieben:
>
On Thu, Feb 22, 2018 at 12:51:58PM +0100, Peter Lieven wrote:
> Am 22.02.2018 um 12:40 schrieb Daniel P. Berrangé:
> > On Thu, Feb 22, 2018 at 12:32:04PM +0100, Kevin Wolf wrote:
> >> Am 22.02.2018 um 12:01 hat Peter Lieven geschrieben:
> >>> Am 22.02.2018 um 11:57 schrieb Kevin Wolf:
> Am
Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
> bdrv_refresh_filename() should invoke itself recursively on all
> children, not just on file.
>
> With that change, we can remove the manual invocations in blkverify,
> quorum, commit, and mirror.
>
> Signed-off-by: Max Reitz
L2 entries for compressed clusters have a field that indicates the
number of sectors used to store the data in the image.
That's however not the size of the compressed data itself, just the
number of sectors where that data is located. The actual data size is
usually not a multiple of the sector
Since v2:
- new patch 2, spec changes based on list followup
- tweak patch 3 to use MIN() and stop open-coding a calculation [Berto]
- tweak patch 4 to stop overallocating by a sector [Berto]
Eric Blake (4):
qcow2: Prefer byte-based calls into bs->file
qcow2: Document some maximum size
We had only three sector-based stragglers left; convert them to use
our preferred byte-based accesses.
Signed-off-by: Eric Blake
Reviewed-by: Alberto Garcia
---
v2: indentation fix
---
block/qcow2-cluster.c | 5 ++---
block/qcow2-refcount.c | 6 +++---
2
On 2018-02-22 17:21, Kevin Wolf wrote:
> Am 22.02.2018 um 16:17 hat Max Reitz geschrieben:
>> On 2018-02-22 16:12, Kevin Wolf wrote:
>>> Am 22.02.2018 um 15:55 hat Max Reitz geschrieben:
On 2018-02-22 14:39, Kevin Wolf wrote:
> Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
>> If
Our code was already checking that we did not attempt to
allocate more clusters than what would fit in an INT64 (the
physical maximimum if we can access a full off_t's worth of
data). But this does not catch smaller limits enforced by
various spots in the qcow2 image description: L1 and normal
On Thu 22 Feb 2018 03:17:57 PM CET, Kevin Wolf wrote:
>> > While we're at it, would l2-cache-entry-size = MIN(cluster_size,
>> > 64k) make sense as a default?
>>
>> Any reason why you choose 64k, or is it because it's the default
>> cluster size?
>>
>> In general I'd be cautious to reduce the
On 02/22/2018 05:57 AM, Kevin Wolf wrote:
> Am 20.02.2018 um 22:54 hat Paolo Bonzini geschrieben:
>> On 20/02/2018 18:04, Peter Lieven wrote:
>>> Hi,
>>>
>>> I remember we discussed a long time ago to limit the stack usage of all
>>> functions that are executed in a coroutine
>>> context to a
When reading a compressed image, we were allocating s->cluster_data
to 32*cluster_size + 512 (possibly over 64 megabytes, for an image
with 2M clusters). Let's check out the history:
Back when qcow2 was first written, we used s->cluster_data for
everything, including copy_sectors() and
Although off_t permits up to 63 bits (8EB) of file offsets, in
practice, we're going to hit other limits first. Document some
of those limits in the qcow2 spec, and how choice of cluster size
can influence some of the limits.
While at it, notice that since we cannot map any virtual cluster
to
Am 22.02.2018 um 16:17 hat Max Reitz geschrieben:
> On 2018-02-22 16:12, Kevin Wolf wrote:
> > Am 22.02.2018 um 15:55 hat Max Reitz geschrieben:
> >> On 2018-02-22 14:39, Kevin Wolf wrote:
> >>> Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
> If the backing file is overridden, this most
On Thu 22 Feb 2018 04:19:45 PM CET, Max Reitz wrote:
> On 2018-02-06 16:23, Alberto Garcia wrote:
>> On Mon 05 Feb 2018 04:18:27 PM CET, Max Reitz wrote:
>>> --- a/block/blkdebug.c
>>> +++ b/block/blkdebug.c
>>> @@ -886,6 +886,21 @@ static int blkdebug_reopen_prepare(BDRVReopenState
>>>
On Thu 22 Feb 2018 04:59:22 PM CET, Eric Blake wrote:
> sector_offset = coffset & 511;
> csize = nb_csectors * 512 - sector_offset;
[...]
> +assert(csize < 2 * s->cluster_size);
I think it should be <=
If sector_offset is 0 and nb_csector is the maximum
On 02/22/2018 10:23 AM, Alberto Garcia wrote:
On Thu 22 Feb 2018 04:59:22 PM CET, Eric Blake wrote:
sector_offset = coffset & 511;
csize = nb_csectors * 512 - sector_offset;
[...]
+assert(csize < 2 * s->cluster_size);
I think it should be <=
If
On 02/22/2018 10:18 AM, Alberto Garcia wrote:
L2 entries for compressed clusters have a field that indicates the
number of sectors used to store the data in the image.
That's however not the size of the compressed data itself, just the
number of sectors where that data is located. The actual
Hi,
This series failed build test on ppcbe host. Please find the details below.
Type: series
Message-id: 1518702707-7077-1-git-send-email-vsement...@virtuozzo.com
Subject: [Qemu-devel] [PATCH 0/9] nbd block status base:allocation
=== TEST SCRIPT BEGIN ===
#!/bin/bash
# Testing script will be
On 2018-02-21 14:53, Kevin Wolf wrote:
> Signed-off-by: Kevin Wolf
> ---
> tests/test-qemu-opts.c | 125
> +
> 1 file changed, 125 insertions(+)
Reviewed-by: Max Reitz
signature.asc
Description: OpenPGP
On 2018-02-21 14:53, Kevin Wolf wrote:
> If we want to include the invalid option name in the error message, we
> can't free the string earlier than that.
>
> Signed-off-by: Kevin Wolf
> ---
> block/rbd.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
Reviewed-by:
On 2018-02-21 14:53, Kevin Wolf wrote:
> The code to establish an RBD connection is duplicated between open and
> create. In order to be able to share the code, factor out the code from
> qemu_rbd_open() as a first step.
>
> Signed-off-by: Kevin Wolf
> ---
> block/rbd.c | 100
On 2018-02-21 14:53, Kevin Wolf wrote:
> Instead of the QemuOpts in qemu_rbd_connect(), we want to use QAPI
> objects. As a preparation, fetch those options directly from the QDict
> that .bdrv_open() supports in the rbd driver and that are not in the
> schema.
>
> Signed-off-by: Kevin Wolf
On 02/21/2018 07:53 AM, Kevin Wolf wrote:
A few block drivers will need to rename .bdrv_create options for their
QAPIfication, so let's have a helper function for that.
Signed-off-by: Kevin Wolf
---
include/qapi/qmp/qdict.h | 6 +++
qobject/qdict.c | 34
On 2018-02-21 14:53, Kevin Wolf wrote:
> This is almost exactly the same code. The differences are that
> qemu_rbd_connect() supports BlockdevOptionsRbd.server and that the cache
> mode is set explicitly.
>
> Supporting 'server' is a welcome new feature for image creation.
> Caching is disabled
On 2018-02-21 14:53, Kevin Wolf wrote:
> A few block drivers will need to rename .bdrv_create options for their
> QAPIfication, so let's have a helper function for that.
>
> Signed-off-by: Kevin Wolf
> ---
> include/qapi/qmp/qdict.h | 6 +++
> qobject/qdict.c | 34
On 2018-02-21 14:53, Kevin Wolf wrote:
> This adds the .bdrv_co_create driver callback to gluster, which enables
> image creation over QMP.
>
> Signed-off-by: Kevin Wolf
> ---
> qapi/block-core.json | 18 ++-
> block/gluster.c | 135
>
I suppose the first word after the colon in your subject is supposed to
be "assign" and not what it currently is (which is something I am not
going to repeat!). :-)
On 2018-02-21 14:53, Kevin Wolf wrote:
> Now that the options are already available in qemu_rbd_open() and not
> only parsed in
On 02/21/2018 07:54 AM, Kevin Wolf wrote:
Most callers have their own checks, but something like this should also
be checked centrally. As it happens, x-blockdev-create can pass negative
image sizes to format drivers (because there is no QAPI type that would
reject negative numbers) and triggers
On 2018-02-21 14:53, Kevin Wolf wrote:
> The "redundacy" option for Sheepdog image creation is currently a string
> that can encode one or two integers depending on its format, which at
> the same time implicitly selects a mode.
>
> This patch turns it into a QAPI union and converts the string
On 2018-02-21 14:53, Kevin Wolf wrote:
> We'll use a separate source file for image creation, and we need to
> check there whether the requested driver is whitelisted.
>
> Signed-off-by: Kevin Wolf
> ---
> include/block/block.h | 1 +
> block.c | 2 +-
> 2 files
On 02/21/2018 07:53 AM, Kevin Wolf wrote:
This adds the .bdrv_co_create driver callback to file, which enables
image creation over QMP.
Signed-off-by: Kevin Wolf
Reviewed-by: Max Reitz
---
qapi/block-core.json | 20 +-
block/file-posix.c |
On 2018-02-21 14:53, Kevin Wolf wrote:
> This adds the .bdrv_co_create driver callback to sheepdog, which enables
> image creation over QMP.
>
> Signed-off-by: Kevin Wolf
> ---
> qapi/block-core.json | 24 +-
> block/sheepdog.c | 240
>
On 2018-02-21 14:53, Kevin Wolf wrote:
> This allows, given a QemuOpts for a QemuOptsList that was merged from
> multiple QemuOptsList, to only consider those options that exist in one
> specific list. Block drivers need this to separate format-layer create
> options from protocol-level options.
>
On 2018-02-21 14:53, Kevin Wolf wrote:
> This adds a synchronous x-blockdev-create QMP command that can create
> qcow2 images on a given node name.
>
> We don't want to block while creating an image, so this is not the final
> interface in all aspects, but BlockdevCreateOptionsQcow2 and
>
On 2018-02-23 00:13, Max Reitz wrote:
> On 2018-02-21 14:53, Kevin Wolf wrote:
>> Instead of the QemuOpts in qemu_rbd_connect(), we want to use QAPI
>> objects. As a preparation, fetch those options directly from the QDict
>> that .bdrv_open() supports in the rbd driver and that are not in the
>>
On 2018-02-21 14:53, Kevin Wolf wrote:
> With the conversion to a QAPI options object, the function is now
> prepared to be used in a .bdrv_co_create implementation.
>
> Signed-off-by: Kevin Wolf
> ---
> block/rbd.c | 102
>
On 2018-02-21 14:53, Kevin Wolf wrote:
> This adds the .bdrv_co_create driver callback to rbd, which enables
> image creation over QMP.
>
> Signed-off-by: Kevin Wolf
> ---
> qapi/block-core.json | 19 ++-
> block/rbd.c | 146
>
On 2018-02-21 14:53, Kevin Wolf wrote:
> Basic test for merging two QemuOptsLists.
>
> Signed-off-by: Kevin Wolf
> ---
> tests/test-qemu-opts.c | 128
> +
> 1 file changed, 128 insertions(+)
Reviewed-by: Max Reitz
On 2018-02-22 14:39, Kevin Wolf wrote:
> Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
>> If the backing file is overridden, this most probably does change the
>> guest-visible data of a BDS. Therefore, we will need to consider this in
>> bdrv_refresh_filename().
>>
>> Adding a new field to
Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
> Besides being safe for arbitrary path lengths, after some follow-up
> patches all callers will want a freshly allocated buffer anyway.
>
> In the meantime, path_combine_deprecated() is added which has the same
> interface as path_combine() had
On 2018-02-22 15:34, Kevin Wolf wrote:
> Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
>> Overriding the backing image should result in a json:{} pseudo-filename.
>> Then, you can no longer use the commit block job with filename
>> parameters. Therefore, do not explicitly add the base and
Am 22.02.2018 um 15:55 hat Max Reitz geschrieben:
> On 2018-02-22 14:39, Kevin Wolf wrote:
> > Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
> >> If the backing file is overridden, this most probably does change the
> >> guest-visible data of a BDS. Therefore, we will need to consider this in
On 2018-02-22 16:12, Kevin Wolf wrote:
> Am 22.02.2018 um 15:55 hat Max Reitz geschrieben:
>> On 2018-02-22 14:39, Kevin Wolf wrote:
>>> Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
If the backing file is overridden, this most probably does change the
guest-visible data of a BDS.
On 2018-02-06 16:23, Alberto Garcia wrote:
> On Mon 05 Feb 2018 04:18:27 PM CET, Max Reitz wrote:
>> --- a/block/blkdebug.c
>> +++ b/block/blkdebug.c
>> @@ -886,6 +886,21 @@ static int blkdebug_reopen_prepare(BDRVReopenState
>> *reopen_state,
>> return 0;
>> }
>>
>> +static const char
Am 22.02.2018 um 14:06 hat Alberto Garcia geschrieben:
> On Wed 21 Feb 2018 07:33:55 PM CET, Kevin Wolf wrote:
>
> [docs/qcow2-cache.txt]
> > While reviewing this, I read the whole document and stumbled across
> > these paragraphs:
> >
> >> The reason for this 1/4 ratio is to ensure that both
On 2018-02-22 13:27, Kevin Wolf wrote:
> Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
>> When invoking drive-mirror in absolute-paths mode, the target's backing
>> BDS is assigned to it in mirror_exit(). The current logic only does so
>> if the target does not have that backing BDS already;
On 02/22/2018 04:29 AM, Alberto Garcia wrote:
On Thu 22 Feb 2018 12:39:52 AM CET, Eric Blake wrote:
free_in_cluster = s->cluster_size - offset_into_cluster(s, offset);
do {
if (!offset || free_in_cluster < size) {
-int64_t new_cluster = alloc_clusters_noref(bs,
On 02/22/2018 04:50 AM, Alberto Garcia wrote:
On Thu 22 Feb 2018 12:39:53 AM CET, Eric Blake wrote:
+assert(!!s->cluster_data == !!s->cluster_cache);
+assert(csize < 2 * s->cluster_size + 512);
if (!s->cluster_data) {
-/* one more sector for decompressed
Am 05.02.2018 um 16:18 hat Max Reitz geschrieben:
> Overriding the backing image should result in a json:{} pseudo-filename.
> Then, you can no longer use the commit block job with filename
> parameters. Therefore, do not explicitly add the base and override the
> middle image in iotest 191,
69 matches
Mail list logo