On 24.07.19 09:30, Andrey Shinkevich wrote:
>
>
> On 24/07/2019 10:18, Christian Borntraeger wrote:
>>
>> On 19.07.19 15:43, Kevin Wolf wrote:
>>> From: Andrey Shinkevich <andrey.shinkev...@virtuozzo.com>
>>>
>>> The Valgrind tool reports about the uninitialised buffer 'buf'
>>> instantiated on the stack of the function guess_disk_lchs().
>>> Pass 'read-zeroes=on' to the null block driver to make it deterministic.
>>> The output of the tests 051, 186 and 227 now includes the parameter
>>> 'read-zeroes'. So, the benchmark output files are being changed too.
>>>
>>> Suggested-by: Kevin Wolf <kw...@redhat.com>
>>> Signed-off-by: Andrey Shinkevich <andrey.shinkev...@virtuozzo.com>
>>> Signed-off-by: Kevin Wolf <kw...@redhat.com>
>>> ---
>>> tests/qemu-iotests/051 | 10 +--
>>> tests/qemu-iotests/051.pc.out | 10 +--
>>> tests/qemu-iotests/093 | 9 +-
>> [...9
>>
>>
>> I now get the following on s390.
>> Seems that you only fixed 051.pc.out but not 051.out
>>
>> 051 ... [09:01:49] ... 051
>> [1m[31mfail [0m [09:01:49] [09:01:50] output
>> mismatch (see 051.out.bad)
>> --- tests/qemu-iotests/051.out 2019-07-09 18:34:26.734654933 +0200
>> +++ build/tests/qemu-iotests/051.out.bad 2019-07-24
>> 09:01:50.015024901 +0200
>> @@ -149,23 +149,23 @@
>>
>> === 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
>>
>>
>
> Thank you Christian for your report.
> Would you please send the command line you ran the 051 test with?
just calling check with -qcow2 and 051 on an s390 system:
./check -qcow2 051
QEMU --
"/home/cborntra/REPOS/qemu/build/tests/qemu-iotests/../../s390x-softmmu/qemu-system-s390x"
-nodefaults -machine accel=qtest
QEMU_IMG --
"/home/cborntra/REPOS/qemu/build/tests/qemu-iotests/../../qemu-img"
QEMU_IO --
"/home/cborntra/REPOS/qemu/build/tests/qemu-iotests/../../qemu-io" --cache
writeback -f qcow2
QEMU_NBD --
"/home/cborntra/REPOS/qemu/build/tests/qemu-iotests/../../qemu-nbd"
IMGFMT -- qcow2 (compat=1.1)
IMGPROTO -- file
PLATFORM -- Linux/s390x s38lp08 5.2.0+
TEST_DIR -- /home/cborntra/REPOS/qemu/build/tests/qemu-iotests/scratch
SOCKET_SCM_HELPER --
/home/cborntra/REPOS/qemu/build/tests/qemu-iotests/socket_scm_helper
051 fail [09:32:20] [09:32:30] output mismatch
(see 051.out.bad)
--- /home/cborntra/REPOS/qemu/tests/qemu-iotests/051.out 2019-07-11
18:31:29.440732461 +0200
+++ /home/cborntra/REPOS/qemu/build/tests/qemu-iotests/051.out.bad
2019-07-24 09:32:30.390620548 +0200
@@ -149,23 +149,23 @@
=== 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
Failures: 051
Failed 1 of 1 tests
>
> Kevin,
> How do add the 051.out file to the patch? New version?
You would need a fixup patch as the original patch is already merged.
>
> Andrey
>
>>>
>>> diff --git a/tests/qemu-iotests/051 b/tests/qemu-iotests/051
>>> index 200660f977..ce942a5444 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 2d811c166c..000557c7c8 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 d88fbc182e..4b2cac1d0c 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 af7ffa4540..a46a7b7630 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 7e7d45babc..5f6b18c150 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 716b01ac3d..5b3504042a 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 bdd727a721..637d7c3726 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 e77efaf4cf..3dd3ca5708 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 1c0a46fa90..08bc7e6b4b 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 5be6b9c0f7..f73bc07d80 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"}}
>>>
>>
>