[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 11/15] iotests: add 298 to test new preallocate filter dri
From: |
Max Reitz |
Subject: |
Re: [PATCH v6 11/15] iotests: add 298 to test new preallocate filter driver |
Date: |
Fri, 25 Sep 2020 10:26:42 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
On 18.09.20 20:19, Vladimir Sementsov-Ogievskiy wrote:
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
> tests/qemu-iotests/298 | 186 +++++++++++++++++++++++++++++++++++++
> tests/qemu-iotests/298.out | 5 +
> tests/qemu-iotests/group | 1 +
> 3 files changed, 192 insertions(+)
> create mode 100644 tests/qemu-iotests/298
> create mode 100644 tests/qemu-iotests/298.out
>
> diff --git a/tests/qemu-iotests/298 b/tests/qemu-iotests/298
> new file mode 100644
> index 0000000000..fef10f6a7a
> --- /dev/null
> +++ b/tests/qemu-iotests/298
[...]
> +class TestPreallocateBase(iotests.QMPTestCase):
Perhaps a
@iotests.skip_if_unsupported(['preallocate'])
here?
> + def setUp(self):
> + iotests.qemu_img_create('-f', iotests.imgfmt, disk, str(10 * MiB))
[...]
> +class TestTruncate(iotests.QMPTestCase):
The same decorator could be placed here, although this class doesn’t
start a VM, and so is unaffected by the allowlist. Still may be
relevant in case of block modules, I don’t know.
> + def setUp(self):
> + iotests.qemu_img_create('-f', iotests.imgfmt, disk, str(10 * MiB))
> + iotests.qemu_img_create('-f', iotests.imgfmt, refdisk, str(10 * MiB))
> +
> + def tearDown(self):
> + os.remove(disk)
> + os.remove(refdisk)
> +
> + def do_test(self, prealloc_mode, new_size):
> + ret = iotests.qemu_io_silent('--image-opts', '-c', 'write 0 10M',
> '-c',
> + f'truncate -m {prealloc_mode}
> {new_size}',
> + drive_opts)
> + self.assertEqual(ret, 0)
> +
> + ret = iotests.qemu_io_silent('-f', iotests.imgfmt, '-c', 'write 0
> 10M',
> + '-c',
> + f'truncate -m {prealloc_mode}
> {new_size}',
> + refdisk)
> + self.assertEqual(ret, 0)
> +
> + stat = os.stat(disk)
> + refstat = os.stat(refdisk)
> +
> + # Probably we'll want preallocate filter to keep align to cluster
> when
> + # shrink preallocation, so, ignore small differece
> + self.assertLess(abs(stat.st_size - refstat.st_size), 64 * 1024)
> +
> + # Preallocate filter may leak some internal clusters (for example, if
> + # guest write far over EOF, skipping some clusters - they will remain
> + # fallocated, preallocate filter don't care about such leaks, it
> drops
> + # only trailing preallocation.
True, but that isn’t what’s happening here. (We only write 10M at 0, so
there are no gaps.) Why do we need this 1M margin?
> + self.assertLess(abs(stat.st_blocks - refstat.st_blocks) * 512,
> + 1024 * 1024)
[...]
> diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
> index ff59cfd2d4..15d5f9619b 100644
> --- a/tests/qemu-iotests/group
> +++ b/tests/qemu-iotests/group
> @@ -307,6 +307,7 @@
> 295 rw
> 296 rw
> 297 meta
> +298 auto quick
I wouldn’t mark it as quick, there is at least one preallocate=full of
140M, and one of 40M, plus multiple 10M data writes and falloc
preallocations.
Also, since you mark it as “auto”, have you run this test on all
CI-relevant hosts? (Among other things I can’t predict) I wonder how
preallocation behaves on macOS. Just because that one was always a bit
weird about not-really-data areas.
Max
signature.asc
Description: OpenPGP digital signature
- [PATCH v6 06/15] block: introduce BDRV_REQ_NO_WAIT flag, (continued)
- [PATCH v6 06/15] block: introduce BDRV_REQ_NO_WAIT flag, Vladimir Sementsov-Ogievskiy, 2020/09/18
- [PATCH v6 07/15] block: bdrv_check_perm(): process children anyway, Vladimir Sementsov-Ogievskiy, 2020/09/18
- [PATCH v6 09/15] qemu-io: add preallocate mode parameter for truncate command, Vladimir Sementsov-Ogievskiy, 2020/09/18
- [PATCH v6 08/15] block: introduce preallocate filter, Vladimir Sementsov-Ogievskiy, 2020/09/18
- [PATCH v6 11/15] iotests: add 298 to test new preallocate filter driver, Vladimir Sementsov-Ogievskiy, 2020/09/18
- Re: [PATCH v6 11/15] iotests: add 298 to test new preallocate filter driver,
Max Reitz <=
[PATCH v6 10/15] iotests: qemu_io_silent: support --image-opts, Vladimir Sementsov-Ogievskiy, 2020/09/18
[PATCH v6 13/15] scripts/simplebench: improve view of ascii table, Vladimir Sementsov-Ogievskiy, 2020/09/18
[PATCH v6 15/15] scripts/simplebench: add bench_prealloc.py, Vladimir Sementsov-Ogievskiy, 2020/09/18