From nobody Sun Oct 5 13:58:15 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=1748017933; cv=none; d=zohomail.com; s=zohoarc; b=KHjj+7t6jrk1VLk6t6s7qwxuo2J4jx9O0A4KBjfBIEjZJDWItAwu8dK+o0iEnYtupR7vqM2e54uhzSIhKC+uleILWJrnXGsCfQqdXKdfhycj2BB4mtqb0IDwZKIuGulOUzBXSXIwzcdps+rA9/Ljpqfj4AQqf0dOi0YvVReNy3Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748017933; 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=xc4MNGCz+qLfUpbR5g4u4R/nndWYGQ0Gsx9J4+LS2kc=; b=JMtCK4MLNxcbHH17gZH31jeAGc8oWQCw8AZ2g18mgfC3didk56BMxbxkNmGz8wbcCBjL08dv6caodZ0JY3iev81x4DBtiYFd2gr9H4qkJiffUIzrf7EDVgDsPnBah5kB9d2tEiQ0nvK28ps1LUZ/G8EcjFXn/Uavjd+lqIwTT3A= 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 1748017933940490.9903480061421; Fri, 23 May 2025 09:32:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uIVIZ-0001Q0-Gt; Fri, 23 May 2025 12:31:07 -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 1uIVIN-0001Nx-RT for qemu-devel@nongnu.org; Fri, 23 May 2025 12:30:55 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uIVIM-0006Wz-8H for qemu-devel@nongnu.org; Fri, 23 May 2025 12:30:55 -0400 Received: from mx-prod-mc-08.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-348-at1alANoOeGgFNnDGTm7cg-1; Fri, 23 May 2025 12:30:49 -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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id BC3F918004A7; Fri, 23 May 2025 16:30:48 +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 4C530195608F; Fri, 23 May 2025 16:30:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1748017853; 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=xc4MNGCz+qLfUpbR5g4u4R/nndWYGQ0Gsx9J4+LS2kc=; b=dVzyMts7w2E9oR65ntZSdiaztPZ8TaE/fwaeJG1hu6r02T3Ly0c3ADsmxrw/LALFV7bTDf kdsjXT69oU4+f5yiYH0R5PS1vWmljAg0Tx2n2G/wIbpaE/rLa3pbl7dE28IPxCso2ZDHdO pk8MizH+Jsy1HffUsO7p1bO/4xwBxSY= X-MC-Unique: at1alANoOeGgFNnDGTm7cg-1 X-Mimecast-MFC-AGG-ID: at1alANoOeGgFNnDGTm7cg_1748017849 From: Eric Blake To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, f.ebner@proxmox.com, Kevin Wolf , Hanna Reitz Subject: [PATCH v2 1/3] iotests: Use disk_usage in more places Date: Fri, 23 May 2025 11:27:21 -0500 Message-ID: <20250523163041.2548675-6-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.133.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: 1748017936475116600 Content-Type: text/plain; charset="utf-8" Commit be9bac07 added a utility disk_usage function, but there are a couple of other tests that could also use it. Signed-off-by: Eric Blake Reviewed-by: Fiona Ebner Tested-by: Fiona Ebner --- tests/qemu-iotests/125 | 2 +- tests/qemu-iotests/308 | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/qemu-iotests/125 b/tests/qemu-iotests/125 index 46279d6b382..708e7c5ba21 100755 --- a/tests/qemu-iotests/125 +++ b/tests/qemu-iotests/125 @@ -35,7 +35,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 get_image_size_on_host() { - echo $(($(stat -c '%b * %B' "$TEST_IMG_FILE"))) + disk_usage "$TEST_IMG_FILE" } # get standard environment and filters diff --git a/tests/qemu-iotests/308 b/tests/qemu-iotests/308 index ea81dc496a0..437a9014da5 100755 --- a/tests/qemu-iotests/308 +++ b/tests/qemu-iotests/308 @@ -290,7 +290,7 @@ echo '--- Try growing non-growable export ---' # Get the current size so we can write beyond the EOF orig_len=3D$(get_proto_len "$EXT_MP" "$TEST_IMG") -orig_disk_usage=3D$(stat -c '%b' "$TEST_IMG") +orig_disk_usage=3D$(disk_usage "$TEST_IMG") # Should fail (exports are non-growable by default) # (Note that qemu-io can never write beyond the EOF, so we have to use @@ -312,7 +312,7 @@ else echo 'OK: Post-truncate image size is as expected' fi -new_disk_usage=3D$(stat -c '%b' "$TEST_IMG") +new_disk_usage=3D$(disk_usage "$TEST_IMG") if [ "$new_disk_usage" -gt "$orig_disk_usage" ]; then echo 'OK: Disk usage grew with fallocate' else --=20 2.49.0 From nobody Sun Oct 5 13:58:15 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=SnlaIlwTnq6xsqSk1Aud1amXD4HTfV1GrV90hHGo5bjP4/bzEK/5yB0K2F/ZnqOr4ODFxN/Am5ubzys0geytLi7jblQL4YIUTVFmcxB13U+2gckB1FFtinsewVr/xke+/aONMwmusYI7HLyKXTOCGVq52QMLVyhuJ7tG5V/ZMbg= 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=EiRD1Rvo5qlgffSZ3bR6VrSUTKIKB+PJh+sKyKvmYj4=; b=W5zTPJv9OPuiWPlb4S4Z0zPZ/F035ZzKiPRRI2nvjHvTYBlQ8z6TB9121HrSNz8qEMm9Vb1YPvAr2MhbQCZjZJTVBvO0gUprGQcP1Nu7CU8e4abQXRYwLLGmgFCmURXP8DuT7LJjChUVluuL+hDN50S5EiMxKfbRkGfGhJ61N6w= 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 1748017916142679.9684347411575; 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 1uIVIa-0001Qi-AX; Fri, 23 May 2025 12:31:08 -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 1uIVIP-0001OA-Oz for qemu-devel@nongnu.org; Fri, 23 May 2025 12:30:58 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uIVIN-0006XL-TK for qemu-devel@nongnu.org; Fri, 23 May 2025 12:30:57 -0400 Received: from mx-prod-mc-08.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-504-60n3V470Nfq7QS-vedKF5A-1; Fri, 23 May 2025 12:30:52 -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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id CE58918004A7; Fri, 23 May 2025 16:30:50 +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 5BE92195608F; Fri, 23 May 2025 16:30:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1748017855; 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=EiRD1Rvo5qlgffSZ3bR6VrSUTKIKB+PJh+sKyKvmYj4=; b=JoPsf/gJvMD+AZntpr/U11OGhVwiMPodrMHEER26u1qP3ixbicpYs0YQcETnbdSonhKL+t PUWLpBBlXkmQmcJ5iYTspYCz0Xt4OkuCrYWoROgan9hRakfZOql9gaihu/Zv6GKhHj1ELD C9fmnz/+67TUCbVYiH5rmi+CmT1TqA0= X-MC-Unique: 60n3V470Nfq7QS-vedKF5A-1 X-Mimecast-MFC-AGG-ID: 60n3V470Nfq7QS-vedKF5A_1748017851 From: Eric Blake To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, f.ebner@proxmox.com, Kevin Wolf , Hanna Reitz Subject: [PATCH v2 2/3] iotests: Improve mirror-sparse on ext4 Date: Fri, 23 May 2025 11:27:22 -0500 Message-ID: <20250523163041.2548675-7-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.133.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: 1748017918655116600 Content-Type: text/plain; charset="utf-8" Fiona reported that an ext4 filesystem on top of LVM can sometimes report over-allocation to du (based on the hueristics the filesystem is making while observing the contents being mirrored); even though the contents and actual size matched, about 50% of the time the size reported by disk_usage was too large by 4k, failing the test. In auditing other iotests, this is a common problem we've had to deal with. Reported-by: Fiona Ebner Fixes: c0ddcb2c ("tests: Add iotest mirror-sparse for recent patches") Signed-off-by: Eric Blake Reviewed-by: Fiona Ebner Tested-by: Fiona Ebner --- v2: Drop sync for ZFS --- tests/qemu-iotests/tests/mirror-sparse | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/qemu-iotests/tests/mirror-sparse b/tests/qemu-iotests/te= sts/mirror-sparse index 8c52a4e2448..338d6cfbb35 100755 --- a/tests/qemu-iotests/tests/mirror-sparse +++ b/tests/qemu-iotests/tests/mirror-sparse @@ -96,10 +96,12 @@ _send_qemu_cmd $h1 '{"execute": "blockdev-del", "argume= nts": {"node-name": "dst"}}' 'return' \ | _filter_block_job_offset | _filter_block_job_len $QEMU_IMG compare -U -f $IMGFMT -F raw $TEST_IMG.base $TEST_IMG +# Some filesystems can fudge allocations for various reasons; rather +# than expecting precise 2M and 20M images, it is better to allow for slop. result=3D$(disk_usage $TEST_IMG) if test $result -lt $((3*1024*1024)); then actual=3Dsparse -elif test $result =3D $((20*1024*1024)); then +elif test $result -gt $((19*1024*1024)); then actual=3Dfull else actual=3Dunknown --=20 2.49.0 From nobody Sun Oct 5 13:58:15 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