r the Valgrind tool.
Andrey Shinkevich (7):
iotests: allow Valgrind checking all QEMU processes
iotests: amendment for benchmark output of 039 061 137
iotests: exclude killed processes from running under Valgrind
iotests: Valgrind fails to work with nonexistent directory
iotests: ext
Processes are dying harder under the Valgring. It results in counting
the dying process as a newborn one. Make it sure that old NBD job get
finished before starting a new one.
Suggested-by: Roman Kagan
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/common.nbd | 6 ++
1 file
After including the Valgrind into the QEMU processes wrappers in the
common.rc script, the output for the tests 039 061 137 has been
changed and is to be amended.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/039.out | 30 +-
tests/qemu-iotests/061.out | 12
To synchronize the time when QEMU is running longer under the Valgrind,
increase the sleeping time int the test 247.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/247 | 6 +-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/tests/qemu-iotests/247 b/tests/qemu-iotests
The Valgrind uses the exported variable TMPDIR and fails if the
directory does not exist. Let us exclude such a test case from
being run under the Valgrind.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/051 | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/qemu-iotests/051 b
With the '-valgrind' option, let all the QEMU processes be run under
the Valgrind tool. The Valgrind own parameters may be set with its
environment variable VALGRIND_OPTS, e.g.
VALGRIND_OPTS="--leak-check=yes" ./check -qcow2 -valgrind
Signed-off-by: Andrey Shinkevich
---
As the iotests run longer under the Valgrind, the QEMU_COMM_TIMEOUT is
to be increased in the test cases 028, 183 and 192 when running under
the Valgrind.
Suggested-by: Roman Kagan
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/028 | 6 +-
tests/qemu-iotests/183 | 9
The Valgrind tool fails to manage its termination when QEMU raises the
signal SIGKILL. Lets exclude such test cases from running under the
Valgrind because there is no sense to check memory issues that way.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/039 | 5 +
tests/qemu
On 10/06/2019 12:10, Daniel P. Berrangé wrote:
> On Sun, Jun 09, 2019 at 09:35:43PM +0300, Andrey Shinkevich wrote:
>> After including the Valgrind into the QEMU processes wrappers in the
>> common.rc script, the output for the tests 039 061 137 has been
>> changed and is to
On 10/06/2019 17:24, Eric Blake wrote:
> On 6/9/19 1:35 PM, Andrey Shinkevich wrote:
>> With the '-valgrind' option, let all the QEMU processes be run under
>> the Valgrind tool. The Valgrind own parameters may be set with its
>> environment variable VALGRIND_OPTS
Processes are dying harder under the Valgring. It results in counting
the dying process as a newborn one. Make it sure that old NBD job get
finished before starting a new one.
Suggested-by: Roman Kagan
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/common.nbd | 6 ++
1 file
The Valgrind uses the exported variable TMPDIR and fails if the
directory does not exist. Let us exclude such a test case from
being run under the Valgrind.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/051 | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/qemu-iotests/051 b
r the Valgrind tool.
v2:
01: The patch 2/7 of v1 was merged into the patch 1/7, suggested by Daniel.
02: Another patch 7/7 was added to introduce the Valgrind error suppression
file into the QEMU project.
Andrey Shinkevich (7):
iotests: allow Valgrind checking all QEMU processes
io
algrind checked file ./.valgrindrc or
~/.valgrindrc like
--memcheck:leak-check=no
--memcheck:track-origins=yes
After including the Valgrind into the QEMU processes wrappers in the
common.rc script, the benchmark output for the tests 039 061 137 is to
be amended.
Signed-off-by: Andrey Shinkevich
---
tests/
The Valgrind tool fails to manage its termination when QEMU raises the
signal SIGKILL. Lets exclude such test cases from running under the
Valgrind because there is no sense to check memory issues that way.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/039 | 5 +
tests/qemu
To synchronize the time when QEMU is running longer under the Valgrind,
increase the sleeping time int the test 247.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/247 | 6 +-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/tests/qemu-iotests/247 b/tests/qemu-iotests
As the iotests run longer under the Valgrind, the QEMU_COMM_TIMEOUT is
to be increased in the test cases 028, 183 and 192 when running under
the Valgrind.
Suggested-by: Roman Kagan
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/028 | 6 +-
tests/qemu-iotests/183 | 9
lgrind specific format file valgrind.supp to the QEMU
project. The file content is extendable for future needs.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/common.rc | 5 -
tests/qemu-iotests/valgrind.supp | 31 +++
2 files changed, 35 insertions
On 08/03/2019 17:00, Alberto Garcia wrote:
> On Thu 21 Feb 2019 04:26:39 PM CET, Andrey Shinkevich wrote:
>> The block-stream job needs to own the base node as the limiter
>> of the copy-on-read operation. So, the base node is included in
>> the job node list (block_job_ad
anything back
>> then (neither do they really now, but whatever, it’s better
>> than a comment))
>>
>> - Patch 4: Resolved a conflict because of the change to patch 3
>
> Thanks for the reviews, applied to my block branch:
>
> https://git.xanclic.moe/XanClic/qemu/commits/branch/block
>
> Max
>
Good
--
With the best regards,
Andrey Shinkevich
On 03/10/2019 17:58, Vladimir Sementsov-Ogievskiy wrote:
> 02.10.2019 17:22, Andrey Shinkevich wrote:
>> Add a test case to the iotest #030 that checks 'compress' option for a
>> block-stream job.
>>
>> Signed-off-by: Andrey Shinkevich
>>
Allow data compression during block-stream job for backup backing chain.
Signed-off-by: Andrey Shinkevich
---
block/stream.c | 10 --
blockdev.c | 12 +++-
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/block/stream.c b/block/stream.c
index 5562ccb..25f9324
ned-off-by: Andrey Shinkevich
---
block.c | 12 +-
block/io.c| 2 +-
block/qcow2.c | 106 ++
block/qcow2.h | 1 +
blockdev.c| 4 ++
include/block/block.h | 1 +
inc
Add a case to the iotest #030 that tests the 'compress' option for a
block-stream job.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/030 | 51 +-
tests/qemu-iotests/030.out | 4 ++--
2 files changed, 52 insertions(+), 3
Support the data compression during block-stream job over a backup
backing chain implemented in the following patch 'block-stream:
add compress option'.
Signed-off-by: Anton Nefedov
Signed-off-by: Denis V. Lunev
Signed-off-by: Andrey Shinkevich
---
block/io.c
Add the test case to the iotest #214 that checks possibility of writing
compressed data of more than one cluster size.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/214 | 35 +++
tests/qemu-iotests/214.out | 15 +++
2 files changed, 50
#x27; option has been introduced on generic block layer
as suggested by Roman Kagan. Discussed on the thread ID
<1570026166-748566-1-git-send-email-andrey.shinkev...@virtuozzo.com>
Andrey Shinkevich (5):
qcow2: Allow writing compressed data of multiple clusters
tests/qemu
Add the test case to the iotest #214 that checks possibility of writing
compressed data of more than one cluster size.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/214 | 35 +++
tests/qemu-iotests/214.out | 15 +++
2 files changed, 50
ivers, the
'compression' option has been introduced at the block generic layer
as suggested by Roman Kagan. Discussed on the email thread with ID
<1570026166-748566-1-git-send-email-andrey.shinkev...@virtuozzo.com>
Andrey Shinkevich (4):
block: support compressed write at ge
ned-off-by: Andrey Shinkevich
---
block.c | 20 +++-
block/io.c| 14 ++
block/qcow2.c | 4
blockdev.c| 9 -
include/block/block.h | 1 +
include/block/block_int.h | 2 ++
qapi/block
Signed-off-by: Andrey Shinkevich
---
block/qcow2.c | 102 ++
1 file changed, 75 insertions(+), 27 deletions(-)
diff --git a/block/qcow2.c b/block/qcow2.c
index 6b29e16..9a85d73 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -4156,10
Add a case to the iotest #030 that tests the 'compress' option for a
block-stream job.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/030 | 51 +-
tests/qemu-iotests/030.out | 4 ++--
2 files changed, 52 insertions(+), 3
056466703da7f in qcow2_co_pwritev_compressed_task
(bs=0x564669143390, offset=393216, bytes=65536, qiov=0x7f4528dddec0,
qiov_offset=196608) at block/qcow2.c:4198
#2 0x56466703dc0c in qcow2_co_pwritev_compressed_task_entry
(task=0x564669152ac0) at block/qcow2.c:4230
#3 0x5646670a69d0 in aio_task_co (opaque=0x564669152ac0) at
block/aio_task.c:45
#4 0x564667147a87 in coroutine_trampoline (i0=1762994976, i1=22086)
at util/coroutine-ucontext.c:115
Andrey
--
With the best regards,
Andrey Shinkevich
ions for many drivers, the
'compression' option has been introduced at the block generic layer
as suggested by Roman Kagan. Discussed on the email thread with ID
<1570026166-748566-1-git-send-email-andrey.shinkev...@virtuozzo.com>
Andrey Shinkevich (4):
block: support compre
Signed-off-by: Andrey Shinkevich
Reviewed-by: Vladimir Sementsov-Ogievskiy
---
block/qcow2.c | 102 ++
1 file changed, 75 insertions(+), 27 deletions(-)
diff --git a/block/qcow2.c b/block/qcow2.c
index 6b29e16..a1e7279 100644
--- a/block
Add a case to the iotest #030 that tests the 'compress' option for a
block-stream job.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/030 | 34 +-
tests/qemu-iotests/030.out | 4 ++--
2 files changed, 35 insertions(+), 3 deletions(-)
di
Add the test case to the iotest #214 that checks possibility of writing
compressed data of more than one cluster size.
Signed-off-by: Andrey Shinkevich
---
tests/qemu-iotests/214 | 45 +
tests/qemu-iotests/214.out | 14 ++
2 files
ned-off-by: Andrey Shinkevich
Reviewed-by: Vladimir Sementsov-Ogievskiy
---
block.c | 20 +++-
block/io.c| 13 +
block/qcow2.c | 4
blockdev.c| 9 -
include/block/block.h | 1 +
inc
On 22/10/2019 12:28, Max Reitz wrote:
> On 20.10.19 22:37, Andrey Shinkevich wrote:
>> To inform the block layer about writing all the data compressed, we
>> introduce the 'compress' command line option. Based on that option, the
>> written data will be aligned by
On 22/10/2019 15:56, Max Reitz wrote:
> On 22.10.19 14:23, Vladimir Sementsov-Ogievskiy wrote:
>> 22.10.2019 14:31, Max Reitz wrote:
>>> On 22.10.19 12:46, Vladimir Sementsov-Ogievskiy wrote:
>>>> 22.10.2019 13:21, Andrey Shinkevich wrote:
>>>>&g
} else {
bdrv_dirty_bitmap_enable_successor(b->bitmap);
}
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
opportunity, I would suggest the name like
"dirty_bitmap_do_clean_after_saving()"
and similar for dirty_bitmap_save_cleanup()
"dirty_bitmap_clean_after_saving()".
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
if (!migration_object_check(current_migration, &err)) {
error_report_err(err);
exit(1);
I rely on that the mutex initialization is being made in proper time.
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
aveVMHandlers savevm_dirty_bitmap_handlers = {
void dirty_bitmap_mig_init(void)
{
-QSIMPLEQ_INIT(&dirty_bitmap_mig_state.dbms_list);
-qemu_mutex_init(&finish_lock);
+QSIMPLEQ_INIT(&dbm_state.save.dbms_list);
+qemu_mutex_init(&dbm_state.load.finish_lock);
register_savevm_live("dirty-bitmap", 0, 1,
&savevm_dirty_bitmap_handlers,
- &dirty_bitmap_mig_state);
+ &dbm_state);
}
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
irty-bitmap", 0, 1,
&savevm_dirty_bitmap_handlers,
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
* must be) or on merge fail, but merge can't fail when second
- * bitmap is empty
- */
-assert(ret == s->bitmap &&
- count == bdrv_get_dirty_count(s->bitmap));
-}
-bdrv_dirty_bitmap_unlock(s->bitmap);
item; item = g_slist_next(item)) {
LoadBitmapState *b = item->data;
if (b->bitmap == s->bitmap) {
b->migrated = true;
+if (s->before_vm_start_handled) {
+ s->bitmaps = g_slist_remove(s->bitmaps, b);
+g_free(b);
+}
break;
}
}
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
lock(&s->lock);
+cancel_incoming_locked(s);
+qemu_mutex_unlock(&s->lock);
return -EINVAL;
}
do {
+qemu_mutex_lock(&s->lock);
+
ret = dirty_bitmap_load_header(f, s);
if (ret < 0) {
+cancel_incoming_locked(s);
+
critical data, and their loss never considered as
+ * something serious.
+ */
+dirty_bitmap_mig_cancel_incoming();
}
/* For outgoing */
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
ostcopy_state_get() == POSTCOPY_INCOMING_RUNNING &&
-postcopy_pause_incoming(mis)) {
+migrate_postcopy_ram() && postcopy_pause_incoming(mis)) {
/* Reset f to point to the newly created channel */
f = mis->from_src_file;
goto retry;
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
12 +-
tests/qemu-iotests/199 | 244 ++
tests/qemu-iotests/199.out | 4 +-
7 files changed, 529 insertions(+), 230 deletions(-)
--
With the best regards,
Andrey Shinkevich
;drive0', name='bitmap')
-self.assert_qmp(result, 'return/sha256', sha256);
+self.assert_qmp(result, 'return/sha256', sha256)
+
if __name__ == '__main__':
iotests.main(supported_fmts=['qcow2'], supported_cache_modes=['none'],
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
if __name__ == '__main__':
-iotests.main(supported_fmts=['qcow2'], supported_cache_modes=['none'],
- supported_protocols=['file'])
+iotests.main(supported_fmts=['qcow2'])
R
;}
1582102676.155691 DST MIGRATION {'status': 'completed'}
+if debug:
with no usage in the following patches, you can put the whole block of
relative code above under the "if debug: section
+ print('downtime:', downtime)
+print('postcopy_time:', postcopy_time)
+
+# Assert that bitmap migration is finished (check that successor bitmap
+# is removed)
result = self.vm_b.qmp('query-block')
-while len(result['return'][0]['dirty-bitmaps']) > 1:
-time.sleep(2)
-result = self.vm_b.qmp('query-block')
+assert len(result['return'][0]['dirty-bitmaps']) == 1
+# Check content of migrated (and updated by new writes) bitmap
result = self.vm_b.qmp('x-debug-block-dirty-bitmap-sha256',
node='drive0', name='bitmap')
-
self.assert_qmp(result, 'return/sha256', sha256)
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
On 18/02/2020 23:57, Eric Blake wrote:
On 2/18/20 2:02 PM, Andrey Shinkevich wrote:
qemu-iotests:$ ./check -qcow2
PASSED
(except always failed 261 and 272)
Have you reported those failures on the threads that introduced those
tests?
Not yet unfortunately. I have not investigated the
On 19/02/2020 16:36, Eric Blake wrote:
On 2/19/20 7:25 AM, Andrey Shinkevich wrote:
On 18/02/2020 23:57, Eric Blake wrote:
On 2/18/20 2:02 PM, Andrey Shinkevich wrote:
qemu-iotests:$ ./check -qcow2
PASSED
(except always failed 261 and 272)
Have you reported those failures on the
27;capability': 'dirty-bitmaps', 'state': True},
@@ -126,8 +135,8 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
self.vm_b_events.append(e_resume)
s = 0x8000
-while s < write_size:
-self.vm_b.hmp_qemu_io('drive0', 'write %d %d' % (s, chunk))
+while s < discard_size:
+self.vm_b.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
s += 0x1
match = {'data': {'status': 'completed'}}
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
e = self.vm_b.event_wait('RESUME')
self.vm_b_events.append(e_resume)
-s = 0x8000
- while s < discard_size:
-self.vm_b.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
-s += 0x1
+apply_discards(self.vm_b, discards2)
match = {'data': {'status': 'completed'}}
e_complete = self.vm_b.event_wait('MIGRATION', match=match)
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
On 19/02/2020 17:33, Andrey Shinkevich wrote:
On 17/02/2020 18:02, Vladimir Sementsov-Ogievskiy wrote:
iotest 40 works too long because of many discard opertion. On the same
operations
At the same time
time, postcopy period is very short, in spite of all these efforts.
So, let'
, name='bitmap')
-self.assert_qmp(result, 'return/sha256', sha256)
+assert len(result['return'][0]['dirty-bitmaps']) == nb_bitmaps
+
+# Check content of migrated bitmaps. Still, don't waste time checking
+# every bitmap
+for i in range(0, nb_bitmaps, 5):
+result = self.vm_b.qmp('x-debug-block-dirty-bitmap-sha256',
+ node='drive0', name='bitmap{}'.format(i))
+sha256 = discards1_sha256 if i % 2 else all_discards_sha256
+self.assert_qmp(result, 'return/sha256', sha256)
if __name__ == '__main__':
The updated test passed.
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
node='drive0', name='bitmap{}'.format(i))
- sha256 = discards1_sha256 if i % 2 else all_discards_sha256
-self.assert_qmp(result, 'return/sha256', sha256)
+sha = self.discards1_sha256 if i % 2 else self.all_discards_sha256
+self.assert_qmp(result, 'return/sha256', sha)
if __name__ == '__main__':
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
7;b').add_drive(disk_b)
+self.vm_b.launch()
check_bitmaps(self.vm_b, nb_bitmaps)
# Check content of migrated bitmaps. Still, don't waste time checking
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
-Ran 1 tests
+Ran 2 tests
OK
The updated test passed.
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
onable to number this patch the last but one, that's
right before a usage in the patch that follows.
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
sts/qemu-iotests/199.out
+++ b/tests/qemu-iotests/199.out
@@ -1,5 +1,5 @@
-.
+..
--
-Ran 1 tests
+Ran 2 tests
OK
--
With the best regards,
Andrey Shinkevich
b/tests/qemu-iotests/199.out
index fbc63e62f8..8d7e996700 100644
--- a/tests/qemu-iotests/199.out
+++ b/tests/qemu-iotests/199.out
@@ -1,5 +1,5 @@
-..
+...
--
-Ran 2 tests
+Ran 3 tests
OK
The updated test passed.
Reviewed-by: Andrey Shinkevich
--
With the best regards,
Andrey Shinkevich
On 19/02/2020 17:58, Eric Blake wrote:
On 2/19/20 7:52 AM, Andrey Shinkevich wrote:
+od: unrecognized option '--endian=big'
+Try 'od --help' for more information.
+od: invalid -N argument '--endian=big'
Yay, same problem for both tests. Fix common.rc once
Pinging...
(please)
On 02/12/2019 15:15, Andrey Shinkevich wrote:
> The compression filter driver is introduced as suggested by Max.
> A sample usage of the filter can be found in the test #214.
> Now, multiple clusters can be written compressed.
> It is useful for the backup j
check for compression support in bs->file is checked in the
compress_open().
Discussed in the email thread with the message ID
<1574056144-625164-1-git-send-email-andrey.shinkev...@virtuozzo.com>
Andrey Shinkevich (3):
block: introduce compress filter driver
qcow2: Allow writing
Add the case to the iotest #214 that checks possibility of writing
compressed data of more than one cluster size. The test case involves
the compress filter driver showing a sample usage of that.
Signed-off-by: Andrey Shinkevich
Reviewed-by: Vladimir Sementsov-Ogievskiy
---
tests/qemu-iotests
Suggested-by: Vladimir Sementsov-Ogievskiy
Signed-off-by: Andrey Shinkevich
Reviewed-by: Vladimir Sementsov-Ogievskiy
---
block/qcow2.c | 102 ++
1 file changed, 75 insertions(+), 27 deletions(-)
diff --git a/block/qcow2.c b/block/qcow2.c
index
/block/filter-compress.c
new file mode 100644
index 000..ef4b12b
--- /dev/null
+++ b/block/filter-compress.c
@@ -0,0 +1,190 @@
+/*
+ * Compress filter block driver
+ *
+ * Copyright (c) 2019 Virtuozzo International GmbH
+ *
+ * Author:
+ * Andrey Shinkevich
+ * (based on block/copy-on-read.c by
/block/filter-compress.c
new file mode 100644
index 000..4aa189b
--- /dev/null
+++ b/block/filter-compress.c
@@ -0,0 +1,166 @@
+/*
+ * Compress filter block driver
+ *
+ * Copyright (c) 2019 Virtuozzo International GmbH
+ *
+ * Author:
+ * Andrey Shinkevich
+ * (based on block/copy-on-read.c by
Add the case to the iotest #214 that checks possibility of writing
compressed data of more than one cluster size. The test case involves
the compress filter driver showing a sample usage of that.
Signed-off-by: Andrey Shinkevich
Reviewed-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Max Reitz
ndrey.shinkev...@virtuozzo.com>
Andrey Shinkevich (3):
block: introduce compress filter driver
qcow2: Allow writing compressed data of multiple clusters
tests/qemu-iotests: add case to write compressed data of multiple
clusters
block/Makefile.objs| 1 +
block/filter-com
Suggested-by: Vladimir Sementsov-Ogievskiy
Signed-off-by: Andrey Shinkevich
Reviewed-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Max Reitz
---
block/qcow2.c | 102 ++
1 file changed, 75 insertions(+), 27 deletions(-)
diff --git a/block/qcow2
On 28/11/2019 17:37, Vladimir Sementsov-Ogievskiy wrote:
> 28.11.2019 12:36, Andrey Shinkevich wrote:
>> Allow writing all the data compressed through the filter driver.
>> The written data will be aligned by the cluster size.
>> Based on the QEMU current implementation, tha
Suggested-by: Vladimir Sementsov-Ogievskiy
Signed-off-by: Andrey Shinkevich
Reviewed-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Max Reitz
---
block/qcow2.c | 102 ++
1 file changed, 75 insertions(+), 27 deletions(-)
diff --git a/block/qcow2
the error message on failure of opening the compression
driver as suggested by Vladimir.
Andrey Shinkevich (3):
block: introduce compress filter driver
qcow2: Allow writing compressed data of multiple clusters
tests/qemu-iotests: add case to write compressed data of multiple
clusters
/block/filter-compress.c
new file mode 100644
index 000..3e89249
--- /dev/null
+++ b/block/filter-compress.c
@@ -0,0 +1,168 @@
+/*
+ * Compress filter block driver
+ *
+ * Copyright (c) 2019 Virtuozzo International GmbH
+ *
+ * Author:
+ * Andrey Shinkevich
+ * (based on block/copy-on-read.c by
Add the case to the iotest #214 that checks possibility of writing
compressed data of more than one cluster size. The test case involves
the compress filter driver showing a sample usage of that.
Signed-off-by: Andrey Shinkevich
Reviewed-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Max Reitz
Add the case to the iotest #214 that checks possibility of writing
compressed data of more than one cluster size. The test case involves
the compress filter driver showing a sample usage of that.
Signed-off-by: Andrey Shinkevich
Reviewed-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Max Reitz
_status_from_backing to _status_from_file (noticed by
Vladimir).
Andrey Shinkevich (3):
block: introduce compress filter driver
qcow2: Allow writing compressed data of multiple clusters
tests/qemu-iotests: add case to write compressed data of multiple
clusters
block/Makefile.objs
Allow writing all the data compressed through the filter driver.
The written data will be aligned by the cluster size.
Based on the QEMU current implementation, that data can be written to
unallocated clusters only. May be used for a backup job.
Suggested-by: Max Reitz
Signed-off-by: Andrey
Suggested-by: Vladimir Sementsov-Ogievskiy
Signed-off-by: Andrey Shinkevich
Reviewed-by: Vladimir Sementsov-Ogievskiy
Reviewed-by: Max Reitz
---
block/qcow2.c | 102 ++
1 file changed, 75 insertions(+), 27 deletions(-)
diff --git a/block/qcow2
8b8191308 in main_loop_should_exit () at vl.c:1885
#16 0x5558b819140d in main_loop () at vl.c:1924
#17 0x5558b8198c84 in main (argc=18, argv=0x7ffc355df3f8,
envp=0x7ffc355df490) at vl.c:4665
This patch adds a lock to protect tcp_chr_disconnect() and
socket_reconnect_timeout()
Signed-o
This fixes a race condition in which the tcp_chr_read() ioc handler
can close a connection that is being written to from another thread.
v4:
The functions qemu_idle_add() and tcp_chr_be_event_closed() were removed
because the callback is invoked after the call to object_property_del_all()
From: Alberto Garcia
After g_source_attach() the GMainContext holds a reference to the
GSource, so the caller does not need to keep it.
qio_task_thread_worker() is not releasing its reference so the GSource
is being leaked since a17536c594bfed94d05667b419f747b692f5fc7f.
Signed-off-by: Alberto G
On 13/08/2019 11:46, Thomas Huth wrote:
> On 7/30/19 3:23 PM, Andrey Shinkevich wrote:
>>
>>
>> On 30/07/2019 15:59, Thomas Huth wrote:
>>> On 30/07/2019 14.52, Thomas Huth wrote:
>>>> On 29/07/2019 14.46, Andrey Shinkevich wrote:
>>>>&
PINGING...
On 30/07/2019 19:01, Andrey Shinkevich wrote:
> Running unit tests under the Valgrind may help to detect QEMU memory issues
> (suggested by Denis V. Lunev). Some of the Valgrind reports relate to the
> unit test code itself. Let's eliminate the detected memory issues to e
PINGING...
On 30/07/2019 13:13, Andrey Shinkevich wrote:
> Not all the paths in the functions, such as f16ToFloatX(), initialize
> the member 'exp' of the structure floatX.
>
> Signed-off-by: Andrey Shinkevich
> ---
> source/slowfloat.c | 4
> 1 file cha
On 13/08/2019 15:05, Paolo Bonzini wrote:
> On 13/08/19 14:02, Andrey Shinkevich wrote:
>> PINGING...
>
> I thought I had already said I queued the series?
>
> Paolo
>
Thank you Paolo.
I am clear now.
Andrey
>> On 30/07/2019 19:01, Andrey Shinkevich wrote:
&g
On 20/08/2019 12:58, Daniel P. Berrangé wrote:
> On Mon, Aug 12, 2019 at 06:58:29PM +0300, Andrey Shinkevich wrote:
>> From: Alberto Garcia
>>
>> There's a race condition in which the tcp_chr_read() ioc handler can
>> close a connection that is bein
This patch is to reduce the number of Valgrind report messages about
using uninitialized memory with the null-co driver. It helps to filter
real memory issues and is the same work done for the iotests with the
commit ID a6862418fec4072.
Suggested-by: Kevin Wolf
Signed-off-by: Andrey Shinkevich
Not all the paths in the functions, such as f16ToFloatX(), initialize
the member 'exp' of the structure floatX.
Signed-off-by: Andrey Shinkevich
---
source/slowfloat.c | 4
1 file changed, 4 insertions(+)
diff --git a/tests/fp/berkeley-testfloat-3/source/slowfloat.c
b/tests/f
On 30/07/2019 15:59, Thomas Huth wrote:
> On 30/07/2019 14.52, Thomas Huth wrote:
>> On 29/07/2019 14.46, Andrey Shinkevich wrote:
>>> This patch is to reduce the number of Valgrind report messages about
>>> using uninitialized memory with the null-co driver. It help
Running unit tests under the Valgrind may help to detect QEMU memory issues
(suggested by Denis V. Lunev). Some of the Valgrind reports relate to the
unit test code itself. Let's eliminate the detected memory issues to ease
locating critical ones.
Andrey Shinkevich (3):
test-throttle
Not the whole structure is initialized before passing it to the KVM.
Reduce the number of Valgrind reports.
Signed-off-by: Andrey Shinkevich
---
target/i386/kvm.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/target/i386/kvm.c b/target/i386/kvm.c
index dbbb137..ed57e31 100644
--- a
ThrottleState::cfg of the static variable 'ts' is reassigned with the
local one in the do_test_accounting() and then is passed to the
throttle_account() with uninitialized member LeakyBucket::burst_length.
Signed-off-by: Andrey Shinkevich
---
tests/test-throttle.c | 2 ++
1 file
One byte in the local buffer stays uninitialized, at least with the
first iteration, because of the double decrement in the
test_visitor_in_fuzz(). This is what Valgrind does not like and not
critical for the test itself. So, reduce the number of the memory
issues reports.
Signed-off-by: Andrey
1 - 100 of 890 matches
Mail list logo