Message ID | 20230126201401.348845-5-stefanha@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | block: fix detect-zeroes= with BDRV_REQ_REGISTERED_BUF | expand |
On Thu, Jan 26, 2023 at 03:14:01PM -0500, Stefan Hajnoczi wrote: > This regression test demonstrates that detect-zeroes works with > registered buffers. Bug details: > https://gitlab.com/qemu-project/qemu/-/issues/1404 > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> > --- > .../tests/detect-zeroes-registered-buf | 58 +++++++++++++++++++ > .../tests/detect-zeroes-registered-buf.out | 7 +++ > 2 files changed, 65 insertions(+) > create mode 100755 tests/qemu-iotests/tests/detect-zeroes-registered-buf > create mode 100644 tests/qemu-iotests/tests/detect-zeroes-registered-buf.out > > diff --git a/tests/qemu-iotests/tests/detect-zeroes-registered-buf b/tests/qemu-iotests/tests/detect-zeroes-registered-buf > new file mode 100755 > index 0000000000..edb5f2cee5 > --- /dev/null > +++ b/tests/qemu-iotests/tests/detect-zeroes-registered-buf > @@ -0,0 +1,58 @@ > +#!/usr/bin/env bash > +# group: rw auto quick > +# > +# Check that detect-zeroes=unmap works on writes with registered I/O buffers. > +# This is a regression test for > +# https://gitlab.com/qemu-project/qemu/-/issues/1404 where I/O requests failed > +# unexpectedly. > +# > +# Copyright Red Hat Do you need a year or a (C) or similar? Otherwise, Reviewed-by: Eric Blake <eblake@redhat.com>
On Fri, Jan 27, 2023 at 05:25:48PM -0600, Eric Blake wrote: > On Thu, Jan 26, 2023 at 03:14:01PM -0500, Stefan Hajnoczi wrote: > > This regression test demonstrates that detect-zeroes works with > > registered buffers. Bug details: > > https://gitlab.com/qemu-project/qemu/-/issues/1404 > > > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> > > --- > > .../tests/detect-zeroes-registered-buf | 58 +++++++++++++++++++ > > .../tests/detect-zeroes-registered-buf.out | 7 +++ > > 2 files changed, 65 insertions(+) > > create mode 100755 tests/qemu-iotests/tests/detect-zeroes-registered-buf > > create mode 100644 tests/qemu-iotests/tests/detect-zeroes-registered-buf.out > > > > diff --git a/tests/qemu-iotests/tests/detect-zeroes-registered-buf b/tests/qemu-iotests/tests/detect-zeroes-registered-buf > > new file mode 100755 > > index 0000000000..edb5f2cee5 > > --- /dev/null > > +++ b/tests/qemu-iotests/tests/detect-zeroes-registered-buf > > @@ -0,0 +1,58 @@ > > +#!/usr/bin/env bash > > +# group: rw auto quick > > +# > > +# Check that detect-zeroes=unmap works on writes with registered I/O buffers. > > +# This is a regression test for > > +# https://gitlab.com/qemu-project/qemu/-/issues/1404 where I/O requests failed > > +# unexpectedly. > > +# > > +# Copyright Red Hat > > Do you need a year or a (C) or similar? No, this is the cool new copyright style that Red Hat legal recommends! :) I'll send you the details in a separate email. Stefan
diff --git a/tests/qemu-iotests/tests/detect-zeroes-registered-buf b/tests/qemu-iotests/tests/detect-zeroes-registered-buf new file mode 100755 index 0000000000..edb5f2cee5 --- /dev/null +++ b/tests/qemu-iotests/tests/detect-zeroes-registered-buf @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +# group: rw auto quick +# +# Check that detect-zeroes=unmap works on writes with registered I/O buffers. +# This is a regression test for +# https://gitlab.com/qemu-project/qemu/-/issues/1404 where I/O requests failed +# unexpectedly. +# +# Copyright Red Hat +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +# creator +owner=stefanha@redhat.com + +seq=`basename $0` +echo "QA output created by $seq" + +status=1 # failure is the default! + +_cleanup() +{ + _cleanup_test_img +} +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +cd .. +. ./common.rc +. ./common.filter + +_supported_fmt qcow2 +_supported_proto generic + +size=128M +_make_test_img $size +IMGSPEC="driver=$IMGFMT,file.filename=$TEST_IMG,discard=unmap,detect-zeroes=unmap" + +echo +echo "== writing zero buffer to image ==" +QEMU_IO_OPTIONS="$QEMU_IO_OPTIONS_NO_FMT" $QEMU_IO -c "write -r -P 0 0 4k" --image-opts "$IMGSPEC" | _filter_qemu_io + +# success, all done +echo "*** done" +rm -f $seq.full +status=0 diff --git a/tests/qemu-iotests/tests/detect-zeroes-registered-buf.out b/tests/qemu-iotests/tests/detect-zeroes-registered-buf.out new file mode 100644 index 0000000000..42c56fcc8d --- /dev/null +++ b/tests/qemu-iotests/tests/detect-zeroes-registered-buf.out @@ -0,0 +1,7 @@ +QA output created by detect-zeroes-registered-buf +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 + +== writing zero buffer to image == +wrote 4096/4096 bytes at offset 0 +4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +*** done
This regression test demonstrates that detect-zeroes works with registered buffers. Bug details: https://gitlab.com/qemu-project/qemu/-/issues/1404 Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- .../tests/detect-zeroes-registered-buf | 58 +++++++++++++++++++ .../tests/detect-zeroes-registered-buf.out | 7 +++ 2 files changed, 65 insertions(+) create mode 100755 tests/qemu-iotests/tests/detect-zeroes-registered-buf create mode 100644 tests/qemu-iotests/tests/detect-zeroes-registered-buf.out