On 19/07/2019 03:14, John Snow wrote: > > > On 7/15/19 12:06 PM, Andrey Shinkevich wrote: >> The Valgrind tool reports about the uninitialised buffer 'buf' >> instantiated on the stack of the function guess_disk_lchs(). >> Pass 'read-zeroes=on' to the null block driver to make it deterministic. >> The output of the tests 051, 186 and 227 now includes the parameter >> 'read-zeroes'. So, the benchmark output files are being changed too. >> >> Suggested-by: Kevin Wolf <kw...@redhat.com> >> Signed-off-by: Andrey Shinkevich <andrey.shinkev...@virtuozzo.com> > > CC qemu-block; > > Do you have a list of which tests pass cleanly via valgrind and which do > not? At the moment when I try I get a lot of errors from loaded > libraries, so it's hard to sift through. > > --js >
The iotests 045, 118, 147 (as well as the mentioned 093 and 136) can fail because of the race condition in the char-socket. A "quick" patch can be found with the Message ID <1562959033-223586-1-git-send-email-andrey.shinkev...@virtuozzo.com> "chardev: race condition with tcp_chr_disconnect" by July, 12 of 2019. I have got no problem with the rest of the tests running them as $./check -nbd -valgrind $./check -qcow2 -valgrind Other issues can appear when running the Valgrind with parameters other than default ones. That's why we need such a tool. Andrey >> --- >> Note: >> The change in the tests 093 and 136 reveals the race condition in chardev. >> The patch "chardev: race condition with tcp_chr_disconnect" has been emailed >> to qemu-devel@nongnu.org on July, 12 of 2019 with the Message ID >> <1562959033-223586-1-git-send-email-andrey.shinkev...@virtuozzo.com> >> >> tests/qemu-iotests/051 | 10 +-- >> tests/qemu-iotests/051.pc.out | 10 +-- >> tests/qemu-iotests/093 | 9 +-- >> tests/qemu-iotests/136 | 1 + >> tests/qemu-iotests/186 | 20 +++--- >> tests/qemu-iotests/186.out | 152 >> +++++++++++++++++++++--------------------- >> tests/qemu-iotests/227 | 4 +- >> tests/qemu-iotests/227.out | 4 +- >> tests/qemu-iotests/238 | 2 +- >> tests/qemu-iotests/240 | 8 +-- >> 10 files changed, 111 insertions(+), 109 deletions(-) >> >> diff --git a/tests/qemu-iotests/051 b/tests/qemu-iotests/051 >> index 200660f..ce942a5 100755 >> --- a/tests/qemu-iotests/051 >> +++ b/tests/qemu-iotests/051 >> @@ -251,11 +251,11 @@ echo >> # Cannot use the test image because cache=none might not work on the host >> FS >> # Use cdrom so that we won't get errors about missing media >> >> -run_qemu -drive driver=null-co,cache=none >> -run_qemu -drive driver=null-co,cache=directsync >> -run_qemu -drive driver=null-co,cache=writeback >> -run_qemu -drive driver=null-co,cache=writethrough >> -run_qemu -drive driver=null-co,cache=unsafe >> +run_qemu -drive driver=null-co,read-zeroes=on,cache=none >> +run_qemu -drive driver=null-co,read-zeroes=on,cache=directsync >> +run_qemu -drive driver=null-co,read-zeroes=on,cache=writeback >> +run_qemu -drive driver=null-co,read-zeroes=on,cache=writethrough >> +run_qemu -drive driver=null-co,read-zeroes=on,cache=unsafe >> run_qemu -drive driver=null-co,cache=invalid_value >> >> # Can't test direct=on here because O_DIRECT might not be supported on >> this FS >> diff --git a/tests/qemu-iotests/051.pc.out b/tests/qemu-iotests/051.pc.out >> index 2d811c1..000557c 100644 >> --- a/tests/qemu-iotests/051.pc.out >> +++ b/tests/qemu-iotests/051.pc.out >> @@ -245,23 +245,23 @@ QEMU X.Y.Z monitor - type 'help' for more information >> >> === Cache modes === >> >> -Testing: -drive driver=null-co,cache=none >> +Testing: -drive driver=null-co,read-zeroes=on,cache=none >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) quit >> >> -Testing: -drive driver=null-co,cache=directsync >> +Testing: -drive driver=null-co,read-zeroes=on,cache=directsync >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) quit >> >> -Testing: -drive driver=null-co,cache=writeback >> +Testing: -drive driver=null-co,read-zeroes=on,cache=writeback >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) quit >> >> -Testing: -drive driver=null-co,cache=writethrough >> +Testing: -drive driver=null-co,read-zeroes=on,cache=writethrough >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) quit >> >> -Testing: -drive driver=null-co,cache=unsafe >> +Testing: -drive driver=null-co,read-zeroes=on,cache=unsafe >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) quit >> >> diff --git a/tests/qemu-iotests/093 b/tests/qemu-iotests/093 >> index d88fbc1..4b2cac1 100755 >> --- a/tests/qemu-iotests/093 >> +++ b/tests/qemu-iotests/093 >> @@ -38,7 +38,7 @@ class ThrottleTestCase(iotests.QMPTestCase): >> def setUp(self): >> self.vm = iotests.VM() >> for i in range(0, self.max_drives): >> - self.vm.add_drive(self.test_img) >> + self.vm.add_drive(self.test_img, "file.read-zeroes=on") >> self.vm.launch() >> >> def tearDown(self): >> @@ -273,7 +273,8 @@ class ThrottleTestGroupNames(iotests.QMPTestCase): >> def setUp(self): >> self.vm = iotests.VM() >> for i in range(0, self.max_drives): >> - self.vm.add_drive(self.test_img, "throttling.iops-total=100") >> + self.vm.add_drive(self.test_img, >> + >> "throttling.iops-total=100,file.read-zeroes=on") >> self.vm.launch() >> >> def tearDown(self): >> @@ -378,10 +379,10 @@ class ThrottleTestRemovableMedia(iotests.QMPTestCase): >> def test_removable_media(self): >> # Add a couple of dummy nodes named cd0 and cd1 >> result = self.vm.qmp("blockdev-add", driver="null-aio", >> - node_name="cd0") >> + read_zeroes=True, node_name="cd0") >> self.assert_qmp(result, 'return', {}) >> result = self.vm.qmp("blockdev-add", driver="null-aio", >> - node_name="cd1") >> + read_zeroes=True, node_name="cd1") >> self.assert_qmp(result, 'return', {}) >> >> # Attach a CD drive with cd0 inserted >> diff --git a/tests/qemu-iotests/136 b/tests/qemu-iotests/136 >> index af7ffa4..a46a7b7 100755 >> --- a/tests/qemu-iotests/136 >> +++ b/tests/qemu-iotests/136 >> @@ -74,6 +74,7 @@ sector = "%d" >> (self.account_invalid and "on" or "off")) >> drive_args.append("stats-account-failed=%s" % >> (self.account_failed and "on" or "off")) >> + drive_args.append("file.image.read-zeroes=on") >> self.create_blkdebug_file() >> self.vm = iotests.VM().add_drive('blkdebug:%s:%s' % >> (blkdebug_file, self.test_img), >> diff --git a/tests/qemu-iotests/186 b/tests/qemu-iotests/186 >> index 7e7d45b..5f6b18c 100755 >> --- a/tests/qemu-iotests/186 >> +++ b/tests/qemu-iotests/186 >> @@ -86,8 +86,8 @@ echo "=== -blockdev/-device=<node-name> ===" >> echo >> >> for dev in $fixed $removable; do >> - check_info_block -blockdev driver=null-co,node-name=null -device >> $dev,drive=null >> - check_info_block -blockdev driver=null-co,node-name=null -device >> $dev,drive=null,id=qdev_id >> + check_info_block -blockdev driver=null-co,read-zeroes=on,node-name=null >> -device $dev,drive=null >> + check_info_block -blockdev driver=null-co,read-zeroes=on,node-name=null >> -device $dev,drive=null,id=qdev_id >> done >> >> echo >> @@ -97,7 +97,7 @@ echo >> # This creates two BlockBackends that will show up in 'info block'! >> # A monitor-owned one from -drive, and anonymous one from -device >> for dev in $fixed $removable; do >> - check_info_block -drive if=none,driver=null-co,node-name=null -device >> $dev,drive=null,id=qdev_id >> + check_info_block -drive >> if=none,driver=null-co,read-zeroes=on,node-name=null -device >> $dev,drive=null,id=qdev_id >> done >> >> echo >> @@ -105,8 +105,8 @@ echo "=== -drive if=none/-device=<bb-name> (with medium) >> ===" >> echo >> >> for dev in $fixed $removable; do >> - check_info_block -drive if=none,driver=null-co,node-name=null -device >> $dev,drive=none0 >> - check_info_block -drive if=none,driver=null-co,node-name=null -device >> $dev,drive=none0,id=qdev_id >> + check_info_block -drive >> if=none,driver=null-co,read-zeroes=on,node-name=null -device $dev,drive=none0 >> + check_info_block -drive >> if=none,driver=null-co,read-zeroes=on,node-name=null -device >> $dev,drive=none0,id=qdev_id >> done >> >> echo >> @@ -125,15 +125,15 @@ echo "=== -drive if=... ===" >> echo >> >> check_info_block -drive if=floppy >> -check_info_block -drive if=floppy,driver=null-co >> +check_info_block -drive if=floppy,driver=null-co,read-zeroes=on >> >> -check_info_block -drive if=ide,driver=null-co >> +check_info_block -drive if=ide,driver=null-co,read-zeroes=on >> check_info_block -drive if=ide,media=cdrom >> -check_info_block -drive if=ide,driver=null-co,media=cdrom >> +check_info_block -drive if=ide,driver=null-co,read-zeroes=on,media=cdrom >> >> -check_info_block -drive if=virtio,driver=null-co >> +check_info_block -drive if=virtio,driver=null-co,read-zeroes=on >> >> -check_info_block -drive if=pflash,driver=null-co,size=1M >> +check_info_block -drive if=pflash,driver=null-co,read-zeroes=on,size=1M >> >> # success, all done >> echo "*** done" >> diff --git a/tests/qemu-iotests/186.out b/tests/qemu-iotests/186.out >> index 716b01a..5b35040 100644 >> --- a/tests/qemu-iotests/186.out >> +++ b/tests/qemu-iotests/186.out >> @@ -54,103 +54,103 @@ qdev_id: [not inserted] >> >> === -blockdev/-device=<node-name> === >> >> -Testing: -blockdev driver=null-co,node-name=null -device ide-hd,drive=null >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> ide-hd,drive=null >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -blockdev driver=null-co,node-name=null -device >> ide-hd,drive=null,id=qdev_id >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> ide-hd,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -blockdev driver=null-co,node-name=null -device scsi-hd,drive=null >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> scsi-hd,drive=null >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -blockdev driver=null-co,node-name=null -device >> scsi-hd,drive=null,id=qdev_id >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> scsi-hd,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -blockdev driver=null-co,node-name=null -device >> virtio-blk-pci,drive=null >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> virtio-blk-pci,drive=null >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -blockdev driver=null-co,node-name=null -device >> virtio-blk-pci,drive=null,id=qdev_id >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> virtio-blk-pci,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -blockdev driver=null-co,node-name=null -device floppy,drive=null >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> floppy,drive=null >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: PATH >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -blockdev driver=null-co,node-name=null -device >> floppy,drive=null,id=qdev_id >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> floppy,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -blockdev driver=null-co,node-name=null -device ide-cd,drive=null >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> ide-cd,drive=null >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: PATH >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -blockdev driver=null-co,node-name=null -device >> ide-cd,drive=null,id=qdev_id >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> ide-cd,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -blockdev driver=null-co,node-name=null -device scsi-cd,drive=null >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> scsi-cd,drive=null >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: PATH >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -blockdev driver=null-co,node-name=null -device >> scsi-cd,drive=null,id=qdev_id >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> scsi-cd,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Removable device: not locked, tray closed >> Cache mode: writeback >> @@ -159,76 +159,76 @@ null: null-co:// (null-co) >> >> === -drive if=none/-device=<node-name> === >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> ide-hd,drive=null,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device ide-hd,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Removable device: not locked, tray closed >> Cache mode: writeback >> >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> scsi-hd,drive=null,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device scsi-hd,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Removable device: not locked, tray closed >> Cache mode: writeback >> >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> virtio-blk-pci,drive=null,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device virtio-blk-pci,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Removable device: not locked, tray closed >> Cache mode: writeback >> >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> floppy,drive=null,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device floppy,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Removable device: not locked, tray closed >> Cache mode: writeback >> >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> ide-cd,drive=null,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device ide-cd,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Removable device: not locked, tray closed >> Cache mode: writeback >> >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> scsi-cd,drive=null,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device scsi-cd,drive=null,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Removable device: not locked, tray closed >> Cache mode: writeback >> >> -null: null-co:// (null-co) >> +null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Removable device: not locked, tray closed >> Cache mode: writeback >> @@ -237,103 +237,103 @@ null: null-co:// (null-co) >> >> === -drive if=none/-device=<bb-name> (with medium) === >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> ide-hd,drive=none0 >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device ide-hd,drive=none0 >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> ide-hd,drive=none0,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device ide-hd,drive=none0,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> scsi-hd,drive=none0 >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device scsi-hd,drive=none0 >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> scsi-hd,drive=none0,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device scsi-hd,drive=none0,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> virtio-blk-pci,drive=none0 >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device virtio-blk-pci,drive=none0 >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> virtio-blk-pci,drive=none0,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device virtio-blk-pci,drive=none0,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> floppy,drive=none0 >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device floppy,drive=none0 >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: PATH >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> floppy,drive=none0,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device floppy,drive=none0,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> ide-cd,drive=none0 >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device ide-cd,drive=none0 >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: PATH >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> ide-cd,drive=none0,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device ide-cd,drive=none0,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> scsi-cd,drive=none0 >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device scsi-cd,drive=none0 >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: PATH >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=none,driver=null-co,node-name=null -device >> scsi-cd,drive=none0,id=qdev_id >> +Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null >> -device scsi-cd,drive=none0,id=qdev_id >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -none0 (null): null-co:// (null-co) >> +none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) >> Attached to: qdev_id >> Removable device: not locked, tray closed >> Cache mode: writeback >> @@ -408,19 +408,19 @@ floppy0: [not inserted] >> Removable device: not locked, tray closed >> (qemu) quit >> >> -Testing: -drive if=floppy,driver=null-co >> +Testing: -drive if=floppy,driver=null-co,read-zeroes=on >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -floppy0 (NODE_NAME): null-co:// (null-co) >> +floppy0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} >> (null-co) >> Attached to: PATH >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=ide,driver=null-co >> +Testing: -drive if=ide,driver=null-co,read-zeroes=on >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -ide0-hd0 (NODE_NAME): null-co:// (null-co) >> +ide0-hd0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} >> (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> @@ -433,27 +433,27 @@ ide0-cd0: [not inserted] >> Removable device: not locked, tray closed >> (qemu) quit >> >> -Testing: -drive if=ide,driver=null-co,media=cdrom >> +Testing: -drive if=ide,driver=null-co,read-zeroes=on,media=cdrom >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -ide0-cd0 (NODE_NAME): null-co:// (null-co, read-only) >> +ide0-cd0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} >> (null-co, read-only) >> Attached to: PATH >> Removable device: not locked, tray closed >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=virtio,driver=null-co >> +Testing: -drive if=virtio,driver=null-co,read-zeroes=on >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -virtio0 (NODE_NAME): null-co:// (null-co) >> +virtio0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} >> (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> >> -Testing: -drive if=pflash,driver=null-co,size=1M >> +Testing: -drive if=pflash,driver=null-co,read-zeroes=on,size=1M >> QEMU X.Y.Z monitor - type 'help' for more information >> (qemu) info block >> -pflash0 (NODE_NAME): json:{"driver": "null-co", "size": "1M"} (null-co) >> +pflash0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co", >> "size": "1M"} (null-co) >> Attached to: PATH >> Cache mode: writeback >> (qemu) quit >> diff --git a/tests/qemu-iotests/227 b/tests/qemu-iotests/227 >> index bdd727a..637d7c3 100755 >> --- a/tests/qemu-iotests/227 >> +++ b/tests/qemu-iotests/227 >> @@ -57,7 +57,7 @@ echo >> echo '=== blockstats with -drive if=virtio ===' >> echo >> >> -run_qemu -drive driver=null-co,if=virtio <<EOF >> +run_qemu -drive driver=null-co,read-zeroes=on,if=virtio <<EOF >> { "execute": "qmp_capabilities" } >> { "execute": "query-blockstats"} >> { "execute": "quit" } >> @@ -87,7 +87,7 @@ echo >> echo '=== blockstats with -blockdev and -device ===' >> echo >> >> -run_qemu -blockdev driver=null-co,node-name=null -device >> virtio-blk,drive=null,id=virtio0 <<EOF >> +run_qemu -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> virtio-blk,drive=null,id=virtio0 <<EOF >> { "execute": "qmp_capabilities" } >> { "execute": "query-blockstats"} >> { "execute": "quit" } >> diff --git a/tests/qemu-iotests/227.out b/tests/qemu-iotests/227.out >> index e77efaf..3dd3ca5 100644 >> --- a/tests/qemu-iotests/227.out >> +++ b/tests/qemu-iotests/227.out >> @@ -2,7 +2,7 @@ QA output created by 227 >> >> === blockstats with -drive if=virtio === >> >> -Testing: -drive driver=null-co,if=virtio >> +Testing: -drive driver=null-co,read-zeroes=on,if=virtio >> { >> QMP_VERSION >> } >> @@ -150,7 +150,7 @@ Testing: -blockdev driver=null-co,node-name=null >> >> === blockstats with -blockdev and -device === >> >> -Testing: -blockdev driver=null-co,node-name=null -device >> virtio-blk,drive=null,id=virtio0 >> +Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device >> virtio-blk,drive=null,id=virtio0 >> { >> QMP_VERSION >> } >> diff --git a/tests/qemu-iotests/238 b/tests/qemu-iotests/238 >> index 1c0a46f..08bc7e6 100755 >> --- a/tests/qemu-iotests/238 >> +++ b/tests/qemu-iotests/238 >> @@ -31,7 +31,7 @@ else: >> vm = iotests.VM() >> vm.launch() >> >> -log(vm.qmp('blockdev-add', node_name='hd0', driver='null-co')) >> +log(vm.qmp('blockdev-add', node_name='hd0', driver='null-co', >> read_zeroes=True)) >> log(vm.qmp('object-add', qom_type='iothread', id='iothread0')) >> log(vm.qmp('device_add', id='scsi0', driver=virtio_scsi_device, >> iothread='iothread0')) >> log(vm.qmp('device_add', id='scsi-hd0', driver='scsi-hd', drive='hd0')) >> diff --git a/tests/qemu-iotests/240 b/tests/qemu-iotests/240 >> index 5be6b9c..f73bc07 100755 >> --- a/tests/qemu-iotests/240 >> +++ b/tests/qemu-iotests/240 >> @@ -76,7 +76,7 @@ echo >> >> run_qemu <<EOF >> { "execute": "qmp_capabilities" } >> -{ "execute": "blockdev-add", "arguments": {"driver": "null-co", >> "node-name": "hd0"}} >> +{ "execute": "blockdev-add", "arguments": {"driver": "null-co", >> "read-zeroes": true, "node-name": "hd0"}} >> { "execute": "object-add", "arguments": {"qom-type": "iothread", "id": >> "iothread0"}} >> { "execute": "device_add", "arguments": {"id": "scsi0", "driver": >> "${virtio_scsi}", "iothread": "iothread0"}} >> { "execute": "device_add", "arguments": {"id": "scsi-hd0", "driver": >> "scsi-hd", "drive": "hd0"}} >> @@ -94,7 +94,7 @@ echo >> >> run_qemu <<EOF >> { "execute": "qmp_capabilities" } >> -{ "execute": "blockdev-add", "arguments": {"driver": "null-co", >> "node-name": "hd0", "read-only": true}} >> +{ "execute": "blockdev-add", "arguments": {"driver": "null-co", >> "read-zeroes": true, "node-name": "hd0", "read-only": true}} >> { "execute": "object-add", "arguments": {"qom-type": "iothread", "id": >> "iothread0"}} >> { "execute": "device_add", "arguments": {"id": "scsi0", "driver": >> "${virtio_scsi}", "iothread": "iothread0"}} >> { "execute": "device_add", "arguments": {"id": "scsi-hd0", "driver": >> "scsi-hd", "drive": "hd0"}} >> @@ -112,7 +112,7 @@ echo >> >> run_qemu <<EOF >> { "execute": "qmp_capabilities" } >> -{ "execute": "blockdev-add", "arguments": {"driver": "null-co", >> "node-name": "hd0", "read-only": true}} >> +{ "execute": "blockdev-add", "arguments": {"driver": "null-co", >> "read-zeroes": true, "node-name": "hd0", "read-only": true}} >> { "execute": "object-add", "arguments": {"qom-type": "iothread", "id": >> "iothread0"}} >> { "execute": "object-add", "arguments": {"qom-type": "iothread", "id": >> "iothread1"}} >> { "execute": "device_add", "arguments": {"id": "scsi0", "driver": >> "${virtio_scsi}", "iothread": "iothread0"}} >> @@ -134,7 +134,7 @@ echo >> >> run_qemu <<EOF >> { "execute": "qmp_capabilities" } >> -{ "execute": "blockdev-add", "arguments": {"driver": "null-co", >> "node-name": "hd0", "read-only": true}} >> +{ "execute": "blockdev-add", "arguments": {"driver": "null-co", >> "read-zeroes": true, "node-name": "hd0", "read-only": true}} >> { "execute": "nbd-server-start", "arguments": >> {"addr":{"type":"unix","data":{"path":"$TEST_DIR/nbd"}}}} >> { "execute": "nbd-server-add", "arguments": {"device":"hd0"}} >> { "execute": "object-add", "arguments": {"qom-type": "iothread", "id": >> "iothread0"}} >> -- With the best regards, Andrey Shinkevich