Message ID | 1563206804-396512-1-git-send-email-andrey.shinkevich@virtuozzo.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iotests: Set read-zeroes on in null block driver for Valgrind | expand |
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 <kwolf@redhat.com> > Signed-off-by: Andrey Shinkevich <andrey.shinkevich@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 > --- > 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.shinkevich@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"}} >
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 <kwolf@redhat.com> >> Signed-off-by: Andrey Shinkevich <andrey.shinkevich@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 > It can be a segmentation fault in the tests 093 and 136 after applying this series because of the known issue: Message ID: <cover.1550842915.git.berto@igalia.com> or https://lists.nongnu.org/archive/html/qemu-devel/2019-02/msg06174.html I have not got other issues when running iotests with the default Valgrind parameters. Would you please send me the command you run the iotests under the Valgrind with? 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.shinkevich@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"}} >>
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 <kwolf@redhat.com> >> Signed-off-by: Andrey Shinkevich <andrey.shinkevich@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.shinkevich@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.shinkevich@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"}} >>
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"}}
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 <kwolf@redhat.com> Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> --- 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.shinkevich@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(-)