From nobody Sun Oct 5 17:20:37 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1748017916; cv=none; d=zohomail.com; s=zohoarc; b=dE3BLMaYwedcv9tNeXiLxsrw8rygithBMImOk8lZGLwLc1PW3j8lbvjL//yIV6r6sGCgcwo6t410vNbEPaZ3Zhj+2zHl1vvOs/+u3/54QjE3gDAvlGti8hI4SVnU0Mz7fgKIfORckFXK5ZG7erOTtWcDC68o/XbcVJjSGrPlPN4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748017916; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=yoUc7S9ZxW1OXHM9W64yjUiO4aEYPNW0PaKNrb+pmJE=; b=TPfrwvhEN4yNr+awrD5oYtIXaIg5ejduF9sQ1KE74RSCPAU3bIfx2/eGtGg6WxtYYAbmq852hpKTPNMHKeAhI3soUo5SQAXRCPn8X7B4EY8hJAYO7+/YMQvUO+4Vwn3Gh5p+nwX41buamEoudRTXcxL2NA5gzJrwMYK4xfDiejs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1748017916785857.3491914215508; Fri, 23 May 2025 09:31:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uIVIb-0001R4-8o; Fri, 23 May 2025 12:31:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uIVIR-0001Ov-Sa for qemu-devel@nongnu.org; Fri, 23 May 2025 12:31:01 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uIVIQ-0006Xf-1s for qemu-devel@nongnu.org; Fri, 23 May 2025 12:30:59 -0400 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-39-qWMerglCPWCABqEu9iuypw-1; Fri, 23 May 2025 12:30:53 -0400 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id B9D401800446; Fri, 23 May 2025 16:30:52 +0000 (UTC) Received: from green.redhat.com (unknown [10.2.16.201]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 7BC06195608F; Fri, 23 May 2025 16:30:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1748017857; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yoUc7S9ZxW1OXHM9W64yjUiO4aEYPNW0PaKNrb+pmJE=; b=i0n+moES+Lpp0dup+cccTeXZiJX4i3gp/HrdLTmhgHGP4xg/icShdof+1/CouAwaLA8NoL WBKs3G+g+7KC29jkTsl/nlReCkTuBc2iVlpj4RUMiBBMnNDy+CAgRJEMcYUxsk/UwWTQyc 4K4IihNQPUbf3dvxU+9J/nycjszUJ2E= X-MC-Unique: qWMerglCPWCABqEu9iuypw-1 X-Mimecast-MFC-AGG-ID: qWMerglCPWCABqEu9iuypw_1748017852 From: Eric Blake To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, f.ebner@proxmox.com, Kevin Wolf , Hanna Reitz Subject: [PATCH v2 3/3] iotests: Filter out ZFS in several tests Date: Fri, 23 May 2025 11:27:23 -0500 Message-ID: <20250523163041.2548675-8-eblake@redhat.com> In-Reply-To: <20250523163041.2548675-5-eblake@redhat.com> References: <20250523163041.2548675-5-eblake@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=eblake@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.287, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1748017918776116600 Content-Type: text/plain; charset="utf-8" Fiona reported that ZFS makes sparse file testing awkward, since: - it has asynchronous allocation (not even 'fsync $file' makes du see the desired size; it takes the slower 'fsync -f $file' which is not appropriate for the tests) - for tests of fully allocated files, ZFS with compression enabled still reports smaller disk usage Add a new _require_sparse_file that quickly probes whether an attempt to create a sparse 5M file shows as less than 1M usage, while the same file with -o preallocation=3Dfull shows as more than 4M usage without sync, which should filter out ZFS behavior. Then use it in various affected tests. This does not add the new filter on all tests that Fiona is seeing ZFS failures on, but only those where I could quickly spot that there is at least one place where the test depends on the output of 'du -b' or 'stat -c %b'. Reported-by: Fiona Ebner Signed-off-by: Eric Blake Reviewed-by: Fiona Ebner Tested-by: Fiona Ebner --- tests/qemu-iotests/common.rc | 30 +++++++++++++++++++++ tests/qemu-iotests/106 | 1 + tests/qemu-iotests/175 | 1 + tests/qemu-iotests/221 | 1 + tests/qemu-iotests/253 | 1 + tests/qemu-iotests/308 | 1 + tests/qemu-iotests/tests/mirror-sparse | 1 + tests/qemu-iotests/tests/write-zeroes-unmap | 1 + 8 files changed, 37 insertions(+) diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc index 237f746af88..e977cb4eb61 100644 --- a/tests/qemu-iotests/common.rc +++ b/tests/qemu-iotests/common.rc @@ -996,6 +996,36 @@ _require_large_file() rm "$FILENAME" } +# Check whether disk_usage can be reliably used. +_require_disk_usage() +{ + local unusable=3Dfalse + # ZFS triggers known failures on this front; it does not immediately + # allocate files, and then aggressively compresses writes even when fu= ll + # allocation was requested. + if [ -z "$TEST_IMG_FILE" ]; then + FILENAME=3D"$TEST_IMG" + else + FILENAME=3D"$TEST_IMG_FILE" + fi + if [ -e "FILENAME" ]; then + echo "unwilling to overwrite existing file" + exit 1 + fi + $QEMU_IMG create -f raw "$FILENAME" 5M > /dev/null + if [ $(disk_usage "$FILENAME") -gt $((1024*1024)) ]; then + unusable=3Dtrue + fi + $QEMU_IMG create -f raw -o preallocation=3Dfull "$FILENAME" 5M > /dev/= null + if [ $(disk_usage "$FILENAME") -lt $((4*1024*1024)) ]; then + unusable=3Dtrue + fi + rm -f "$FILENAME" + if $unusable; then + _notrun "file system on $TEST_DIR does not handle sparse files nic= ely" + fi +} + # Check that a set of devices is available in the QEMU binary # _require_devices() diff --git a/tests/qemu-iotests/106 b/tests/qemu-iotests/106 index ae0fc466910..55548439aad 100755 --- a/tests/qemu-iotests/106 +++ b/tests/qemu-iotests/106 @@ -40,6 +40,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 _supported_fmt raw _supported_proto file fuse _supported_os Linux +_require_disk_usage # in kB CREATION_SIZE=3D128 diff --git a/tests/qemu-iotests/175 b/tests/qemu-iotests/175 index f74f053b719..bbbf550a5af 100755 --- a/tests/qemu-iotests/175 +++ b/tests/qemu-iotests/175 @@ -77,6 +77,7 @@ _supported_os Linux _default_cache_mode none _supported_cache_modes none directsync +_require_disk_usage size=3D$((1 * 1024 * 1024)) diff --git a/tests/qemu-iotests/221 b/tests/qemu-iotests/221 index c463fd4b113..eba00b80adb 100755 --- a/tests/qemu-iotests/221 +++ b/tests/qemu-iotests/221 @@ -41,6 +41,7 @@ _supported_os Linux _default_cache_mode writeback _supported_cache_modes writeback writethrough unsafe +_require_disk_usage echo echo "=3D=3D=3D Check mapping of unaligned raw image =3D=3D=3D" diff --git a/tests/qemu-iotests/253 b/tests/qemu-iotests/253 index 35039d20a89..6da85e6a113 100755 --- a/tests/qemu-iotests/253 +++ b/tests/qemu-iotests/253 @@ -41,6 +41,7 @@ _supported_os Linux _default_cache_mode none _supported_cache_modes none directsync +_require_disk_usage echo echo "=3D=3D=3D Check mapping of unaligned raw image =3D=3D=3D" diff --git a/tests/qemu-iotests/308 b/tests/qemu-iotests/308 index 437a9014da5..6eced3aefb9 100755 --- a/tests/qemu-iotests/308 +++ b/tests/qemu-iotests/308 @@ -51,6 +51,7 @@ _unsupported_fmt vpc _supported_proto file # We create the FUSE export manually _supported_os Linux # We need /dev/urandom +_require_disk_usage # $1: Export ID # $2: Options (beyond the node-name and ID) diff --git a/tests/qemu-iotests/tests/mirror-sparse b/tests/qemu-iotests/te= sts/mirror-sparse index 338d6cfbb35..39e3196c811 100755 --- a/tests/qemu-iotests/tests/mirror-sparse +++ b/tests/qemu-iotests/tests/mirror-sparse @@ -40,6 +40,7 @@ cd .. _supported_fmt qcow2 raw # Format of the source. dst is always raw file _supported_proto file _supported_os Linux +_require_disk_usage echo echo "=3D=3D=3D Initial image setup =3D=3D=3D" diff --git a/tests/qemu-iotests/tests/write-zeroes-unmap b/tests/qemu-iotes= ts/tests/write-zeroes-unmap index 7cfeeaf8391..f90fb8e8d27 100755 --- a/tests/qemu-iotests/tests/write-zeroes-unmap +++ b/tests/qemu-iotests/tests/write-zeroes-unmap @@ -32,6 +32,7 @@ cd .. _supported_fmt raw _supported_proto file _supported_os Linux +_require_disk_usage create_test_image() { _make_test_img -f $IMGFMT 1m --=20 2.49.0