Add bitmap table information to the QCOW2 metadata dump.
It extends the output of the test case #291
Bitmap name bitmap-1
...
Bitmap table typeoffset size
0 serialized 4718592 65536
1 serialized
Implementation of dumping QCOW2 image metadata.
The sample output:
{
"Header_extensions": [
{
"name": "Feature table",
"magic": 1745090647,
"length": 192,
"data_str": ""
},
{
"name": "Bitmaps",
The cluster size of an image is the QcowHeader class member and may be
obtained by dependent extension structures such as Qcow2BitmapExt for
further bitmap table details print.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/qcow2_format.py | 19 ++-
1 file changed, 14
Make the capitalization of the hexadecimal numbers consistent for the
QCOW2 header extension constants in docs/interop/qcow2.txt.
Suggested-by: Eric Blake
Signed-off-by: Andrey Shinkevich
---
block/qcow2.c | 2 +-
docs/interop/qcow2.txt | 2 +-
2 files changed, 2 insertions(+), 2
This issue was introduced in the earlier patch:
"qcow2_format: refactor QcowHeaderExtension as a subclass of
Qcow2Struct".
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/291.out | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tests/qemu-iotests/291.out
Note: based on the Vladimir's series
[v5 00/13] iotests: Dump QCOW2 dirty bitmaps metadata
Add dirty bitmap information to QCOW2 metadata dump in the qcow2_format.py.
v7:
01: Fix for magic hexadecimal output in 291
02: Bitmap table output format improvement.
03: Incremental change in
Add the command key to the qcow2.py arguments list to dump QCOW2
metadata in JSON format. Here is the suggested way to do that. The
implementation of the dump in JSON format is in the patch that follows.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/qcow2.py| 20
Read and dump entries from the bitmap directory of QCOW2 image.
It extends the output in the test case #291.
Header extension:
magic 0x23852875 (Bitmaps)
...
Bitmap name bitmap-1
flag auto
table size8 (bytes)
As __dict__ is being extended with class members we do not want to
print in JSON format dump, make a light copy of the initial __dict__
and extend the copy by adding lists we have to print in the JSON
output.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/qcow2_format.py | 5 -
1
Let us differ binary data type from string one for the extension data
variable and keep the string as the QcowHeaderExtension class member.
Signed-off-by: Andrey Shinkevich
Reviewed-by: Eric Blake
Reviewed-by: Vladimir Sementsov-Ogievskiy
---
tests/qemu-iotests/qcow2_format.py | 14
On 6/11/20 4:19 PM, Andrey Shinkevich wrote:
Make the capitalization of the hexadecimal numbers consistent for the
QCOW2 header extension constants in docs/interop/qcow2.txt.
Suggested-by: Eric Blake
Signed-off-by: Andrey Shinkevich
---
block/qcow2.c | 2 +-
docs/interop/qcow2.txt
Add the command key to the qcow2.py arguments list to dump QCOW2
metadata in JSON format. Here is the suggested way to do that. The
implementation of the dump in JSON format is in the patch that follows.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/qcow2.py| 20
Make the capitalization of the hexadecimal numbers consistent for the
QCOW2 header extension constants in docs/interop/qcow2.txt.
Suggested-by: Eric Blake
Signed-off-by: Andrey Shinkevich
---
block/qcow2.c | 2 +-
docs/interop/qcow2.txt | 2 +-
2 files changed, 2 insertions(+), 2
Let us differ binary data type from string one for the extension data
variable and keep the string as the QcowHeaderExtension class member.
Signed-off-by: Andrey Shinkevich
Reviewed-by: Eric Blake
Reviewed-by: Vladimir Sementsov-Ogievskiy
---
tests/qemu-iotests/qcow2_format.py | 14
Read and dump entries from the bitmap directory of QCOW2 image with the
script qcow2.py.
Header extension:
magic 0x23852875 (Bitmaps)
...
Bitmap name bitmap-1
flag auto
table size8 (bytes)
bitmap_table_offset 0x9
The cluster size of an image is the QcowHeader class member and may be
obtained by dependent extension structures such as Qcow2BitmapExt for
further bitmap table details print.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/qcow2_format.py | 19 ++-
1 file changed, 14
Note: based on the Vladimir's series
[v5 00/13] iotests: Dump QCOW2 dirty bitmaps metadata
Add dirty bitmap information to QCOW2 metadata dump in the qcow2_format.py.
v6:
01: Fixing capitalization of header extension constant.
(Suggested by Eric)
02: The cluster size global
Implementation of dumping QCOW2 image metadata.
The sample output:
{
"Header_extensions": [
{
"name": "Feature table",
"magic": 1745090647,
"length": 192,
"data_str": ""
},
{
"name": "Bitmaps",
Add bitmap table information to the QCOW2 metadata dump.
Bitmap name bitmap-1
...
Bitmap tabletypeoffset size
0 serialized 0xa 65536
1 all-zeroes 0x0 65536
2 all-zeroes 0x0
As __dict__ is being extended with class members we do not want to
print in JSON format dump, make a light copy of the initial __dict__
and extend the copy by adding lists we have to print in the JSON
output.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/qcow2_format.py | 5 -
1
On 6/11/20 8:16 PM, Denis V. Lunev wrote:
> Nowaday SCSI drivers in guests are able to align UNMAP requests before
> sending to the device. Right now QEMU provides an ability to set
> this via "discard_granularity" property of the block device which could
> be used by management layer.
>
> Though,
Nowaday SCSI drivers in guests are able to align UNMAP requests before
sending to the device. Right now QEMU provides an ability to set
this via "discard_granularity" property of the block device which could
be used by management layer.
Though, in particular, from the point of QEMU, there is
Nowaday SCSI drivers in guests are able to align UNMAP requests before
sending to the device. Right now QEMU provides an ability to set
this via "discard_granularity" property of the block device which could
be used by management layer.
Though, in particular, from the point of QEMU, there is
Default discard granularity is set to -2 now.
Signed-off-by: Denis V. Lunev
CC: Kevin Wolf
CC: Max Reitz
CC: Eduardo Habkost
CC: Marcel Apfelbaum
CC: John Snow
CC: Paolo Bonzini
CC: Fam Zheng
---
tests/qemu-iotests/172.out | 106 ++---
1 file changed, 53
This series do standard basic things:
- it creates intermediate buffer for all writes from QEMU migration code
to QCOW2 image,
- this buffer is sent to disk asynchronously, allowing several writes to
run in parallel.
In general, migration code is fantastically inefficent (by observation),
qemu_fclose() could return error, f.e. if bdrv_co_flush() will return
the error.
This validation will become more important once we will start waiting of
asynchronous IO operations, started from bdrv_write_vmstate(), which are
coming soon.
Signed-off-by: Denis V. Lunev
CC: Kevin Wolf
CC: Max
Right now bdrv_fclose() is just calling bdrv_flush().
The problem is that migration code is working inefficently from black
layer terms and are frequently called for very small pieces of not
properly aligned data. Block layer is capable to work this way, but
this is very slow.
This patch is a
From: Vladimir Sementsov-Ogievskiy
Currently, aio task pool assumes that there is a main coroutine, which
creates tasks and wait for them. Let's remove the restriction by using
CoQueue. Code becomes clearer, interface more obvious.
Signed-off-by: Vladimir Sementsov-Ogievskiy
Signed-off-by:
This patch does 2 standard basic things:
- it creates intermediate buffer for all writes from QEMU migration code
to block driver,
- this buffer is sent to disk asynchronously, allowing several writes to
run in parallel.
Thus bdrv_vmstate_write() is becoming asynchronous. All pending
When BDRV_REQ_NO_FALLBACK is supported, the NBD driver supports a
larger request size. Add code to try large zero requests with a
NO_FALLBACK request prior to having to split a request into chunks
according to max_pwrite_zeroes.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/io.c | 19
The NBD spec was recently updated to clarify that max_block doesn't
relate to NBD_CMD_WRITE_ZEROES with NBD_CMD_FLAG_FAST_ZERO (which
mirrors Qemu flag BDRV_REQ_NO_FALLBACK).
bs->bl.max_write_zero_fast is zero by default which means using
max_pwrite_zeroes. Update nbd driver to allow larger
The NBD spec was recently updated to clarify that max_block doesn't
relate to NBD_CMD_WRITE_ZEROES with NBD_CMD_FLAG_FAST_ZERO (which
mirrors Qemu flag BDRV_REQ_NO_FALLBACK). To drop the restriction we
need new max_pwrite_zeroes_fast.
Default value of new max_pwrite_zeroes_fast is zero and it
On Fri, Jun 05, 2020 at 07:35:37AM +0800, Coiby Xu wrote:
> +static void coroutine_fn vu_block_virtio_process_req(void *opaque)
> +{
> +struct req_data *data = opaque;
> +VuServer *server = data->server;
> +VuVirtq *vq = data->vq;
> +VuVirtqElement *elem = data->elem;
> +
On 6/11/20 8:24 AM, Alberto Garcia wrote:
On Wed 10 Jun 2020 09:43:53 PM CEST, Eric Blake wrote:
On 6/10/20 10:03 AM, Alberto Garcia wrote:
This function is only used by qcow2_expand_zero_clusters() to
downgrade a qcow2 image to a previous version. It is however not
possible to downgrade an
On Wed, Jun 10, 2020 at 7:31 PM Kevin Wolf wrote:
> Am 10.06.2020 um 17:26 hat Sam Eiderman geschrieben:
> > Thanks for the clarification Kevin,
> >
> > Well first I want to discuss unallocated blocks.
> > From my understanding operating systems do not rely on disks to be
> > zero initialized,
On Wed 10 Jun 2020 09:43:53 PM CEST, Eric Blake wrote:
> On 6/10/20 10:03 AM, Alberto Garcia wrote:
>> This function is only used by qcow2_expand_zero_clusters() to
>> downgrade a qcow2 image to a previous version. It is however not
>> possible to downgrade an image with extended L2 entries
11.06.2020 15:31, Denis V. Lunev wrote:
On 6/11/20 10:36 AM, Vladimir Sementsov-Ogievskiy wrote:
Currently, aio task pool assumes that there is a main coroutine, which
creates tasks and wait for them. Let's remove the restriction by using
CoQueue. Code becomes clearer, interface more obvious.
On 6/11/20 10:36 AM, Vladimir Sementsov-Ogievskiy wrote:
> Currently, aio task pool assumes that there is a main coroutine, which
> creates tasks and wait for them. Let's remove the restriction by using
> CoQueue. Code becomes clearer, interface more obvious.
>
> Signed-off-by: Vladimir
On Wed, 10 Jun 2020 17:53:46 +0200
Gerd Hoffmann wrote:
> On Wed, Jun 10, 2020 at 10:54:26AM -0400, Michael S. Tsirkin wrote:
> > On Wed, Jun 10, 2020 at 01:40:02PM +0200, Igor Mammedov wrote:
> > > On Wed, 10 Jun 2020 11:41:22 +0200
> > > Gerd Hoffmann wrote:
> > >
> > > > First batch of
On Wednesday, 2020-06-10 at 11:21:27 -05, Eric Blake wrote:
> On 6/10/20 10:57 AM, David Edmondson wrote:
>> On Wednesday, 2020-06-10 at 10:48:52 -05, Eric Blake wrote:
>>
>>> On 6/10/20 10:42 AM, David Edmondson wrote:
On Wednesday, 2020-06-10 at 18:29:33 +03, Sam Eiderman wrote:
On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
> The _SB.PCI0.PX13.P13C opregion (holds isa device enable bits)
> is not used any more, remove it from DSDT.
Maybe:
"is not used any more (see previous commit), remove it from DSDT."
(if Michael can do the change when applying if you agree).
On 6/11/20 11:12 AM, Michael S. Tsirkin wrote:
> On Thu, Jun 11, 2020 at 10:31:01AM +0200, Philippe Mathieu-Daudé wrote:
>> On 6/11/20 10:27 AM, Philippe Mathieu-Daudé wrote:
>>> Hi Gerd,
>>>
>>> On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
Seems to be unused.
Signed-off-by: Gerd
On Thu, Jun 11, 2020 at 09:29:10AM +0200, Gerd Hoffmann wrote:
> Signed-off-by: Gerd Hoffmann
OK, thanks! What is still missing is resulting ASL
differences in the expected files for reviewers.
See ./tests/qtest/bios-tables-test.c step 7.
I'm working on a tool that will show the changes
more
On Thu, Jun 11, 2020 at 10:31:01AM +0200, Philippe Mathieu-Daudé wrote:
> On 6/11/20 10:27 AM, Philippe Mathieu-Daudé wrote:
> > Hi Gerd,
> >
> > On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
> >> Seems to be unused.
> >>
> >> Signed-off-by: Gerd Hoffmann
> >> Reviewed-by: Igor Mammedov
> >> ---
>
11.06.2020 11:25, Denis V. Lunev wrote:
On 6/11/20 11:04 AM, Vladimir Sementsov-Ogievskiy wrote:
10.06.2020 22:00, Denis V. Lunev wrote:
This patch does 2 standard basic things:
- it creates intermediate buffer for all writes from QEMU migration code
to QCOW2 image,
- this buffer is sent
On Tue, Jun 09, 2020 at 03:59:44PM -0500, Eric Blake wrote:
> The file qcow2.py was originally contributed in 2012 by Kevin Wolf,
> but was not given traditional boilerplate headers at the time. The
> missing license was just rectified (commit 16306a7b39) using the
> project-default GPLv2+, but
On 6/11/20 10:27 AM, Philippe Mathieu-Daudé wrote:
> Hi Gerd,
>
> On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
>> Seems to be unused.
>>
>> Signed-off-by: Gerd Hoffmann
>> Reviewed-by: Igor Mammedov
>> ---
>> hw/i386/acpi-build.c | 11 ---
>> 1 file changed, 11 deletions(-)
>>
>> diff
Hi Gerd,
On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
> Seems to be unused.
>
> Signed-off-by: Gerd Hoffmann
> Reviewed-by: Igor Mammedov
> ---
> hw/i386/acpi-build.c | 11 ---
> 1 file changed, 11 deletions(-)
>
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index
On 6/11/20 11:04 AM, Vladimir Sementsov-Ogievskiy wrote:
> 10.06.2020 22:00, Denis V. Lunev wrote:
>> This patch does 2 standard basic things:
>> - it creates intermediate buffer for all writes from QEMU migration code
>> to QCOW2 image,
>> - this buffer is sent to disk asynchronously, allowing
On 6/11/20 9:29 AM, Gerd Hoffmann wrote:
> Signed-off-by: Gerd Hoffmann
> Reviewed-by: Igor Mammedov
Reviewed-by: Philippe Mathieu-Daudé
> ---
> hw/block/fdc.c | 83
> hw/i386/acpi-build.c | 83
>
10.06.2020 22:00, Denis V. Lunev wrote:
This patch does 2 standard basic things:
- it creates intermediate buffer for all writes from QEMU migration code
to QCOW2 image,
- this buffer is sent to disk asynchronously, allowing several writes to
run in parallel.
In general, migration code is
Currently, aio task pool assumes that there is a main coroutine, which
creates tasks and wait for them. Let's remove the restriction by using
CoQueue. Code becomes clearer, interface more obvious.
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
Hi! Here is my counter-propasal for
"[PATCH 1/2]
Seems to be unused.
Signed-off-by: Gerd Hoffmann
Reviewed-by: Igor Mammedov
---
hw/i386/acpi-build.c | 11 ---
1 file changed, 11 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 02cf4199c2e9..d93ea40c58b9 100644
--- a/hw/i386/acpi-build.c
+++
Signed-off-by: Gerd Hoffmann
Reviewed-by: Igor Mammedov
---
hw/block/fdc.c | 83
hw/i386/acpi-build.c | 83
stubs/cmos.c | 7
stubs/Makefile.objs | 1 +
4 files changed, 91
The _SB.PCI0.PX13.P13C opregion (holds isa device enable bits)
is not used any more, remove it from DSDT.
Signed-off-by: Gerd Hoffmann
Reviewed-by: Igor Mammedow
---
hw/i386/acpi-build.c | 16
1 file changed, 16 deletions(-)
diff --git a/hw/i386/acpi-build.c
Add helper function to add fw_cfg device,
also move code to hw/i386/fw_cfg.c.
Signed-off-by: Gerd Hoffmann
Reviewed-by: Philippe Mathieu-Daudé
Reviewed-by: Igor Mammedov
---
hw/i386/fw_cfg.h | 1 +
hw/i386/acpi-build.c | 24 +---
hw/i386/fw_cfg.c | 28
First batch of microvm patches, some generic acpi stuff.
Split the acpi-build.c monster, specifically split the
pc and q35 and pci bits into a separate file which we
can skip building at some point in the future.
v2 changes: leave acpi-build.c largely as-is, move useful
bits to other places to
x86 machines can have a single ISA bus only.
Signed-off-by: Gerd Hoffmann
Reviewed-by: Igor Mammedov
Reviewed-by: Philippe Mathieu-Daudé
---
hw/i386/acpi-build.c | 15 +--
1 file changed, 5 insertions(+), 10 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
Signed-off-by: Gerd Hoffmann
Reviewed-by: Philippe Mathieu-Daudé
Acked-by: John Snow
---
include/hw/block/fdc.h | 1 +
include/hw/i386/pc.h | 1 -
hw/block/fdc.c | 26 +-
hw/i386/pc.c | 25 -
4 files changed, 26
The _STA methods for COM+LPT used to reference them,
but that isn't the case any more.
Signed-off-by: Gerd Hoffmann
Reviewed-by: Igor Mammedov
---
hw/i386/acpi-build.c | 23 ---
1 file changed, 23 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index
Signed-off-by: Gerd Hoffmann
Reviewed-by: Philippe Mathieu-Daudé
Reviewed-by: Igor Mammedov
---
hw/i386/acpi-build.c | 39 ---
hw/input/pckbd.c | 31 +++
2 files changed, 31 insertions(+), 39 deletions(-)
diff --git
acpi aml generator needs this, but it is in floppy code now
so we can make the function static.
Signed-off-by: Gerd Hoffmann
Reviewed-by: Igor Mammedov
Reviewed-by: Philippe Mathieu-Daudé
Acked-by: John Snow
---
include/hw/block/fdc.h | 2 --
hw/block/fdc.c | 4 ++--
2 files changed,
Signed-off-by: Gerd Hoffmann
---
tests/qtest/bios-tables-test-allowed-diff.h | 17 +
1 file changed, 17 insertions(+)
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h
b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8bf4..6a052c50447a 100644
---
63 matches
Mail list logo