From nobody Sat Nov 15 17:49:59 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; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1748434281; cv=pass; d=zohomail.com; s=zohoarc; b=RVmxK2hKMerZY9UyWmzNNv0GtqIwmDBQbvg4XNS32bmXYusAFTBZUTmDVAhNQpm4cR524cCBw9rq+/sZVp3xHWf7B+9uCRv81eYjrl+lFpHp0LojaKPud4KD7WQuSHzkUJv5S7MvFmyxe6i549TaTPMjk6pUYPOFfJ/xAdFgfJE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748434281; 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=oXHoMgYU/1N+SeUYzJ3iVtezLtziMQieijRGjFdhiNI=; b=FSn/oHSYBa1SsNJOI/w5oQaInCbJd/4A0vfKhUiKEylR5jEq4P59X9xsFSQc3OTBIkDuLM+yt1JnGBGtSwlN6Nc1M9ofyz7DOA032zJ/rRM7MtWorw53kQKkl9y34YD0ZGZcMQ8JZphMzv54qHex2b9bF3XFZY27FdUSHaX94MU= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); 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 1748434281935758.8063857714757; Wed, 28 May 2025 05:11:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uKFc7-0000Qx-8p; Wed, 28 May 2025 08:10:31 -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 1uKFZu-0007Jr-SN; Wed, 28 May 2025 08:08:22 -0400 Received: from mail-francecentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20a::7] helo=PA4PR04CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uKFZq-0002pA-Jx; Wed, 28 May 2025 08:08:13 -0400 Received: from AM8PR08MB5732.eurprd08.prod.outlook.com (2603:10a6:20b:1d4::16) by GV2PR08MB9277.eurprd08.prod.outlook.com (2603:10a6:150:d5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.26; Wed, 28 May 2025 12:07:51 +0000 Received: from AM8PR08MB5732.eurprd08.prod.outlook.com ([fe80::e543:a83c:a260:602b]) by AM8PR08MB5732.eurprd08.prod.outlook.com ([fe80::e543:a83c:a260:602b%5]) with mapi id 15.20.8769.025; Wed, 28 May 2025 12:07:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HIVJHhJR3rr80h4oPrgXpN7vseh513BkdfFgGtK/j9XgZWDWGqK9QB1sVAy8Eohuxr/a+nqGyrnfvLIVEUpc3HpfIHFuuFV/BfVwOqt4ZyiRG2dXmbVOQlEetRHqbYAOGcv08okxsIgo0xt+q12Z6KDogtCim/R5gSRtrldzhVSgYX8f/2KjPdG0CIWbG0chHIrU7cuPBm27zX4p0DiSDA8pEfnkPLWdSAf78SjYQwI8pj5EHp3iTPMe29zQkFWRYaQf2KZtGmjnk+leJPY/0pCGXzwTF55iu2nnDSeHAZ602iCoOgogHqBLqgUgRkBMorYE2l3uc/JuYapyzHxKZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=oXHoMgYU/1N+SeUYzJ3iVtezLtziMQieijRGjFdhiNI=; b=TK5QVtyxapSBwU13uo+7P40C9hmMwPDN5393w2JhvVSrMtVyThag+VeCiFTCtut0GatZVYC9GVskO9mpJeeuexjHdcD8SnZ4vA2QIn8SsYcVwE9wuzeBc10zqGdbXocLzO1CUN5DxqWQXOx2i7JcYMbq6/dJOBad20KlK960QRe63fDLHYKsHX0LwujJNDgAn1wWGEz0RemIRaBaLycjkJV5Mw6BO5bMoQbO5NebuEZ3dwJvsynBFKlMG7PlixA5SYR7ckgS0oOdj4Cfc6yDu/46gC95bHEESPJTgjuzhB/cT7AxQijLAfalhmzyGtPHSTWN2O/AFbGcaEWpuP3QCw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oXHoMgYU/1N+SeUYzJ3iVtezLtziMQieijRGjFdhiNI=; b=DVodF/KkFqiK9/de9lt6p4/nm/IRQ2sWu3VMpPOXy/vZU68LFzD9Hx1CN8J/Ho+7KWs/uk1ORGMlOQXc6R6nEWxNXzBM8k3zmsuOOF4wEhMdyL4PRVHQKTj0E5lnkvdbKizNRTVH8BOIIoKCg+zEZ+xXoAorDCRAHtEx3CHsPhR0V/1t9fgaxcpcsHYiCjWPy+fDdPLr2QhEZB0j7L8FpY6EQXPwzZA6l7pOBlleGKtQfxpRlar7tGSl07ihGORDwCbmXCVfyJZ+iy6vMmid8jvBL5Jo/iDL0iehuThUD2LKJH183y+fWr28SsMMHx2uAQXNoNSY6L+G8ZtkawUzNg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Andrey Zhadchenko To: vsementsov@yandex-team.ru, eblake@redhat.com Cc: qemu-block@nongnu.org, jsnow@redhat.com, kwolf@redhat.com, hreitz@redhat.com, qemu-devel@nongnu.org, andrey.drobyshev@virtuozzo.com, den@virtuozzo.com Subject: [PATCH v2 1/4] hbitmap: drop meta bitmap leftovers Date: Wed, 28 May 2025 14:07:28 +0200 Message-ID: <20250528120732.2247150-2-andrey.zhadchenko@virtuozzo.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250528120732.2247150-1-andrey.zhadchenko@virtuozzo.com> References: <20250528120732.2247150-1-andrey.zhadchenko@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0173.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9f::8) To AM8PR08MB5732.eurprd08.prod.outlook.com (2603:10a6:20b:1d4::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM8PR08MB5732:EE_|GV2PR08MB9277:EE_ X-MS-Office365-Filtering-Correlation-Id: 041e1826-4adf-485c-7aa4-08dd9de04502 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?hVnJybEo5M8k1yOhJoFEvXwDOFpqfrAQ4uVJ63HCec9JJZqh6wMOqfbv2x/P?= =?us-ascii?Q?T9x77BRYj+HryiSWEzwNZZX/Ukv/MmKQyinbPOjAPZj8UKM9ehIiAzZEJfoo?= =?us-ascii?Q?lITPaF6cMKPXO3El8sVXR1udXAa0VdiWMLHOvZeBnAFUofI2iZHK7y6XciAf?= =?us-ascii?Q?T66OHSe/T1Z53cY1yp74V19fmJNaGHVn2Fklo2QQiHWKh7gDZ/MSxXEY9Syu?= =?us-ascii?Q?jr5uxNm8durVPXxncjEM5eEgtWRZ3cYI8WOG35jp6OHLOlW4EYqV5oqjNMkC?= =?us-ascii?Q?lHKTtH/5g+BC64nDVa0bBKD3w66umtunkFVbDz1LifuHbJ5Nn6UZG0s39isj?= =?us-ascii?Q?pkV82Cd6x+s9Fh1tsN1kYbCP/uKG3k7WviJ86wssLMElRZ/zYIU/Oo0T3stN?= =?us-ascii?Q?4a8wLxbdFXWQSaOB3mcYQ3LeFeLUZ5b8F1FDvL2w3SVrMLT707dqNkq/DZJw?= =?us-ascii?Q?29M3EvgQxsJ5qc3GUqChdaR7YYwTrPZiBjmbZPxKppexCHmxUGgHguAWE7OV?= =?us-ascii?Q?9k4b2abBmj93WvXePGKn0ppjmDEl0bMb7mEhGcCr4C+/8oqJYPAvdha3zD33?= =?us-ascii?Q?1d1bZjW7La1Jwm/SUssrfCIuYQze4RuotSNTyYVWA3CClIxf9kdDy5/u61c5?= =?us-ascii?Q?Yg3z/OmsyXYjQ1Rjn33TUXrwWJHZTaS2WCsUWXbjA0RKyQMw5/YD9cL5HsQA?= =?us-ascii?Q?8VWtu4r5lIPYbPI3HafhgL6+GDrc2oiJR+01NRp5sP0HX4gBqKKRlIzVjRq1?= =?us-ascii?Q?xM+zoK8flPo4mioJEPi1jZM9aPWHAHbdoolWIc7UrVVAMdVUwGvQPm75A92T?= =?us-ascii?Q?7FyQF5/VoU7xyZwSgpWNy6EXsuYCI9Dfh0d7vQHAAO1tD0L9rxvr1U+7C5GZ?= =?us-ascii?Q?34ajINNsxci+cQYo568SSc0cJ0MFUsh700IrZ7YIhoZNT0Ku7RTKzM0gjw3c?= =?us-ascii?Q?Dtx3vEycen0XciTvv8oJWqpeKbf68FccSEQuZ2RpgeRen5w+6h93W7YTHj6p?= =?us-ascii?Q?ypmd7n/91TnXNX3aBb5zzGmhLZMWl3srnEqnvxUloqYhCjZvAQKjZo1G50mi?= =?us-ascii?Q?z+Dn7cNWxxKO/F56uBIHU8BbxzOuS+5FDEWe0Ca6ZBvDphzaY0XKqoGYjE8c?= =?us-ascii?Q?XRRiuFj37PlltN0Tnzob7LqBjPR0jP8iC1ZlN7FXafFecOPHx34wa8zAtnf7?= =?us-ascii?Q?kLD8s8ZALPr9qlm6r569/2duJFdvvu6QuvHN+0/pkuQgKqhmEfQgxxMqQ0dW?= =?us-ascii?Q?yVvLEC3Gz4hnAbgAZLu2zwyYouT1pB5VUHqIOetRmMrMspW8LClUyVAtx+Dq?= =?us-ascii?Q?Zi9X9VBocLgeWHIHzVeeNY0mkMYb3BW/KvmQwNcOejGAK6ZV9/0x1msiuLvR?= =?us-ascii?Q?STKjEHazBqJsTxdcL+3VLsTMhnAoJZLarILPILmwuQg9L+4eretB9DPuW6LW?= =?us-ascii?Q?YSy6ZD1SYK8UQtM0H5xX6ckDKobSVWL8yTRMt6z+46a/SCW4mCfbDA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR08MB5732.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XnrezfRbI79qU8ahLmvXb5Xditlqe2y43T8VCtOEk7uqI6LshZLrzrrCRu4e?= =?us-ascii?Q?A4TSGmZEyKpqb4X6hFsQ4xYVtSu1OAaPGtAIo/uLG8MJkfOsygvJsrg8Crp4?= =?us-ascii?Q?T5amvl9Siq7AKtx6q9f37p7xmpozLyB+6OqABKin2rp5d4PUX3ZiOY+TjpHl?= =?us-ascii?Q?SifNjnajv1QDLgey5mL9AoqnYDRK47yko+9YuUmZ2zdutKAnUu3aQC2NkSn3?= =?us-ascii?Q?n287KZ/TCxd2NI/LYzC09/oJN4GdYMbYQkk6Wlj8mEyfs5mjtqMevU/82zQz?= =?us-ascii?Q?MCfk22wN3m8MP+xXKbWbjYftR2le80cqtSLzKsqKlFVG88ioG5fTuPwaZz2C?= =?us-ascii?Q?OjXzH/NaYiP6+9skitN/oL44zoBsg9C9u25egZOde+YI6W+2UyT16pQClUbA?= =?us-ascii?Q?4BM+v16vcYOsw/OLMlQGdBEEI/kmwvfl0LHKvFdIJPrQm9WxcjlynkJOu+3i?= =?us-ascii?Q?1WzkUTnzjRvNZY9mQBpS4hyQCtyamyzBpdm0PMKDKLcLnZ8K/dPFci+CRn+x?= =?us-ascii?Q?Gwjxv4zUKl68Sf85IN+qRPk4HDyz/eGERW8kKQogJZVBFRDCP1XxmQvzk3z2?= =?us-ascii?Q?E4pJ33VuFAzGR0mXPRH4KCaZbqRMFq/uMfKP8RQre+ENqhKN2k0rIYG/ze5G?= =?us-ascii?Q?EmRCqTXdnSvo0Vikb9xkFBvhiZa23WBFpgJwDpTQWqcv+jjr+iYDdd90rpE2?= =?us-ascii?Q?gNECT8xg5Yvb1LPTijoUwzcUDFb1jQsGN3jURFOP8MIwh7bFa9MInZvV1YNo?= =?us-ascii?Q?7VUw0JOj60QQYY5412U9TF3PdrsR6cJ5sw3vp6EcwfCp6HTyH3piYTO2TRNE?= =?us-ascii?Q?Q2ONcuexQFhkDCqucM9T/79UnR1B+OQY2LeQcGzhz5ZraKdWkpcStdldE6/q?= =?us-ascii?Q?UTIvelVl95n75C0e4Jjsv/OJu46Vq7RxAdFHFLY3qcdd7UF/i8VRCzb6+VKx?= =?us-ascii?Q?+0Vmj4tpjfXnoSvoRh7mI0Mg59y/PNinjJ5v5J8v0fqh4dklQHqZ1gS6KNj4?= =?us-ascii?Q?w4a0zPTqZEs6UR8NucZBDjy4BeseZ553JPI3Ool1If1YAxcOPIi0bSGO5CKA?= =?us-ascii?Q?ACLNxMORd5ngWws1nVEgv3lkbn9SQoh52Z3S8OtCOJhkyzAlEUlqpLpKV9Qu?= =?us-ascii?Q?dOGk0CDDcmKNaTcVmBFIn/8cGcqI8I1UeYULKCgJurrPvsFNA8m0huERsJXF?= =?us-ascii?Q?Xn/cOprGeFCkdCAQ4RDdwHOg/F+58TW9fTUBzgyn1OoDs86rIl/pd8/qfnY3?= =?us-ascii?Q?fWRKv4k+Gqmjd2POF8pHisOPfx4ePXhTRGemJ5Qr/sbLq9xv5rHuaNIOI8s7?= =?us-ascii?Q?9s+kmxFcPGIOxNmhpaPpn710ljOksShW+Chj4XJgKuJYCqAW9B7Nzm+8KmPf?= =?us-ascii?Q?Kq0WC6GwUs6Qjlg4IqB5c7EJ4YKPYr8zHsZK/WT9ANFptZ/AK4k6qUAhlb8h?= =?us-ascii?Q?RmJ3C8bpihyCoJfvcktJMLaf1gpc9P1jkSlSgZ93AL8M2FLdSqvPpcuIQGjG?= =?us-ascii?Q?SDZcnvJh687TuyKlUGslMFuDWH7jkIVqQ6b8a1GgqSzk/SJI+sKCr84YtrZK?= =?us-ascii?Q?qrLi9nWqnjXgOJFY4ZqILnGVrOl2WZ4ZaEnP60znTULfDf8Bz3FGh7g9fgUJ?= =?us-ascii?Q?jA=3D=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 041e1826-4adf-485c-7aa4-08dd9de04502 X-MS-Exchange-CrossTenant-AuthSource: AM8PR08MB5732.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2025 12:07:51.4292 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: YVWGDj/xExYHn09lVwoGXxLyUaREAUQF2DMsTUcmFGVfDLQ0e3G+ClYvUN3SBnTJfKAniwUtcOx9Np38qJXbmPmZsoNAx0pXrhJ0bfjmRG4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9277 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=2a01:111:f403:c20a::7; envelope-from=andrey.zhadchenko@virtuozzo.com; helo=PA4PR04CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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 @virtuozzo.com) X-ZM-MESSAGEID: 1748434283924116600 Content-Type: text/plain; charset="utf-8" API to manipulate meta bitmap was removed with commit 0c88f1970c76 Signed-off-by: Andrey Zhadchenko Reviewed-by: Eric Blake Reviewed-by: Vladimir Sementsov-Ogievskiy --- util/hbitmap.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/util/hbitmap.c b/util/hbitmap.c index d9a1dabc63..16674f33e4 100644 --- a/util/hbitmap.c +++ b/util/hbitmap.c @@ -84,9 +84,6 @@ struct HBitmap { */ int granularity; =20 - /* A meta dirty bitmap to track the dirtiness of bits in this HBitmap.= */ - HBitmap *meta; - /* A number of progressively less coarse bitmaps (i.e. level 0 is the * coarsest). Each bit in level N represents a word in level N+1 that * has a set bit, except the last level where each bit represents the @@ -480,10 +477,7 @@ void hbitmap_set(HBitmap *hb, uint64_t start, uint64_t= count) n =3D last - first + 1; =20 hb->count +=3D n - hb_count_between(hb, first, last); - if (hb_set_between(hb, HBITMAP_LEVELS - 1, first, last) && - hb->meta) { - hbitmap_set(hb->meta, start, count); - } + hb_set_between(hb, HBITMAP_LEVELS - 1, first, last); } =20 /* Resetting works the other way round: propagate up if the new @@ -577,10 +571,7 @@ void hbitmap_reset(HBitmap *hb, uint64_t start, uint64= _t count) assert(last < hb->size); =20 hb->count -=3D hb_count_between(hb, first, last); - if (hb_reset_between(hb, HBITMAP_LEVELS - 1, first, last) && - hb->meta) { - hbitmap_set(hb->meta, start, count); - } + hb_reset_between(hb, HBITMAP_LEVELS - 1, first, last); } =20 void hbitmap_reset_all(HBitmap *hb) @@ -784,7 +775,6 @@ void hbitmap_deserialize_finish(HBitmap *bitmap) void hbitmap_free(HBitmap *hb) { unsigned i; - assert(!hb->meta); for (i =3D HBITMAP_LEVELS; i-- > 0; ) { g_free(hb->levels[i]); } @@ -868,9 +858,6 @@ void hbitmap_truncate(HBitmap *hb, uint64_t size) (size - old) * sizeof(*hb->levels[i])); } } - if (hb->meta) { - hbitmap_truncate(hb->meta, hb->size << hb->granularity); - } } =20 /** --=20 2.43.0 From nobody Sat Nov 15 17:49:59 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; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1748434168; cv=pass; d=zohomail.com; s=zohoarc; b=gcRV+b4iJj2quF6bf3HxSAVESVEPjX8ADHbUgb5+cL6IswHH/qmm9sjJBL4pYiK9Y7OECZTcdj7HZ53k/q3L8pExeE1EES6lgXFhKJ4WL0HnkKIlPGNW/ohaw4gGEx20cJ9yrTI3dXZocBIcN3CaHcwX6xgFnq9lHUo6cOOqxDE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748434168; 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=kNA5xcG5R4h9hgBBEowVZpjrvEajtKUdoxsg4jnRibc=; b=EF/5C+eOnPgagtgKdat0zI7dIA6A6C1kXOoe1Hha/alPeHuAmSVPqgEjYx8JxgduKcOhahma8bB+v0t+vB6U31lp+6ZDtyYv3dcoH1ZPans8otG80/RkpgdQmfyVXK5GezZx/Aq4M4P4FxRwU+Kuf7dZQ0jwwrgsM8mi8c19Cc0= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); 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 1748434168486353.74394346903387; Wed, 28 May 2025 05:09:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uKFal-0007p2-3j; Wed, 28 May 2025 08:09:11 -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 1uKFa0-0007Nb-9E; Wed, 28 May 2025 08:08:24 -0400 Received: from mail-francecentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20a::7] helo=PA4PR04CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uKFZx-0002pA-3P; Wed, 28 May 2025 08:08:18 -0400 Received: from AM8PR08MB5732.eurprd08.prod.outlook.com (2603:10a6:20b:1d4::16) by GV2PR08MB9277.eurprd08.prod.outlook.com (2603:10a6:150:d5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.26; Wed, 28 May 2025 12:07:53 +0000 Received: from AM8PR08MB5732.eurprd08.prod.outlook.com ([fe80::e543:a83c:a260:602b]) by AM8PR08MB5732.eurprd08.prod.outlook.com ([fe80::e543:a83c:a260:602b%5]) with mapi id 15.20.8769.025; Wed, 28 May 2025 12:07:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VOrg9U5RpnHfNsoAe14FNxYclGRB8ROwaIeS0vvOAUFS6i7ALMiEGVCIn72gNsFjSOnxUg6frUHmasoMRbWv6/YzgTSH/Rbh+9IpS9oMfav+GnDEp4ftbHFnZmIORQ+16LahKkX5y1wGTXBiVkXVq6ZQeSoLJh2hzrF0ZVPTp6B0y4GFlcuXYG5FdY9gcgwKtj72pO6mwCtBnr+4MoY5DlaYPVR9wmJ0gywcmfJ2py/x7PqAmBy8xYbzw+iAIME7tvZQ5A/n7FESwtkAAxKkhr+fS1gRqHRzz9li4xBXneP94i+8XnZskApUg9xPAbBe4p58xPwOblq2YddT8MJ6xA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kNA5xcG5R4h9hgBBEowVZpjrvEajtKUdoxsg4jnRibc=; b=c13pYrYuX1V0lPhC2YuIVSF7qvi6+FeNfHzV14HVSlr4sWtYpb1+DJ6yrXQmhgj3KsomfKS+mwjLp1Ae74OmeMdySLnzECpnfse1cZBBEpErNl2b8UExJVL5fWbApxffB80tbzxDKKgsPQtS7O/qGAnJa3jBoob195vWZ52CQvs0/GbNebUDBTgB9z0r1JmNJ9cTbYUF43op0C8fR+dGLLpGWQcwY1zr7tvDSm1TI4v3OXOWWQxc7jt5XyQGhEUwFOJ6IealLipaU06lCUNKSRqJTI8jsQjcgyA+NgstPPceMXMB+d++MywMqLT386UG5WFdxDrYlyuSwICqMZyxDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kNA5xcG5R4h9hgBBEowVZpjrvEajtKUdoxsg4jnRibc=; b=KrnY1TS1DWQE96K6n7Vr6ADSRuTxCa/sIWIpehhksxFa3o/sfhgaCbEBxTKB9KX7GILwL0oIjmqktZJYVjRN4DYpB0KewSP++I+TCycPMENdt8MSzAM4nHNI2ryhqKVu8foB7SNHwOmOaOvOaKZ/Y18AoS80g0PI0sEZMr4rjNpyCfeVd0hUYW6kj1T8ySsTGuMEf3VvAcaIlkmVqzq5qL+/gWVM2VSQTbgLbb2Rgz/e0f5m2abAfxxhq5LpeGWSSjn2oXWpH3J3BI7AGKdXCenR4CHiUUbyMOGoWlMIdnNnU8IjEP/GUDpLX91Sp6pnXLEL1nrsMMHYWW7pZeq8vQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Andrey Zhadchenko To: vsementsov@yandex-team.ru, eblake@redhat.com Cc: qemu-block@nongnu.org, jsnow@redhat.com, kwolf@redhat.com, hreitz@redhat.com, qemu-devel@nongnu.org, andrey.drobyshev@virtuozzo.com, den@virtuozzo.com Subject: [PATCH v2 2/4] hbitmap: introduce hbitmap_inverse() Date: Wed, 28 May 2025 14:07:29 +0200 Message-ID: <20250528120732.2247150-3-andrey.zhadchenko@virtuozzo.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250528120732.2247150-1-andrey.zhadchenko@virtuozzo.com> References: <20250528120732.2247150-1-andrey.zhadchenko@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0173.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9f::8) To AM8PR08MB5732.eurprd08.prod.outlook.com (2603:10a6:20b:1d4::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM8PR08MB5732:EE_|GV2PR08MB9277:EE_ X-MS-Office365-Filtering-Correlation-Id: c8094c4a-7bb3-4fb8-1eaa-08dd9de04562 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?l7TvAqx4EGWmrXp5DZlqtSwZc7WXDnR6fz3IpNKQEUQjet5Hd0+ZdvdeXyLG?= =?us-ascii?Q?RTBT7Ynrc8kLvkPd+vbqwIC6+lqR3IzqPsaM5RMuDgNZ3Cdu1YV2UTVHnxzL?= =?us-ascii?Q?tMdDJn7lLBskT2Vxgn8yNpkj5Q5mpDSWJA4rjEAI6yFXK50MjnEobQFR742B?= =?us-ascii?Q?ArTitnMz/RCLg5yZWANv/H/FYnTSEzKfwVCfWJv2OvTOdeMUuk/kamQv6ykl?= =?us-ascii?Q?yVuM0icD+USb6Mfq1QFYv/0I0SBx4O/QAkAw6/1TvIU6B2kMuWVGbLgUtgrB?= =?us-ascii?Q?uXuix7hycw6E+WzMDbATCYtM0pKL3LDoeFGEX0OxIqCcBc45RFMf83sAi3pR?= =?us-ascii?Q?UnzPgsB/QVA3N03DM8goXYMqK9OsfK+P9vR3w+sBnHL2YGBcwzt5HR9vtgxz?= =?us-ascii?Q?8JO3sS9h2OrUEjaXNmM18xD75BKHeo2zh6IBCqvugGjpzUrhEt4dWiI3Dftd?= =?us-ascii?Q?lwRZUjjZNOw0Znge7gkvARriD+sLwIr8LrvxQjtjlIe50dmY+K2IipLpugTA?= =?us-ascii?Q?P7H5cZAsnGo8sdqejOFPWZL6+lh8elHTsZPT7IWYdcIdAzj0rH04SL6eZbWY?= =?us-ascii?Q?UVPZcWsBupOIYnOJBgUyQjIUMIOtn2X4ZcIE2wVniNZpGyCyLp7Oo5aAfLJM?= =?us-ascii?Q?VPCFPkxV3GgKx//BP0/hrw7QYjTIaGtorp2f4ic+sp6ChsFoysyYLSxIqlXA?= =?us-ascii?Q?e8F5s7BvhsXaiEwkNIJCZq9NLLP78zG99NJYYl/ikQ4isi6zE2uUGQWSPbc6?= =?us-ascii?Q?Pr6kcJaEx2hTnllpTKpRJy2SCVJue7/ueSC027BjGzeMCbohvnWsPx7LtBH2?= =?us-ascii?Q?mFdUp43sEigPVxMeJVfbz8Rmn89l7oUch4hpWoaNeyXtG965u68juhXq959A?= =?us-ascii?Q?YupDMfroECQQFrQbCbnkVEQGICEfNs313bllAPb40KjBYWWm2JPr5rjKX1EE?= =?us-ascii?Q?jcblmwQGgOSEvtChBqhr/cXDxCR+bC5OAiCd6fuGO7BFLcP0TWiA9vk+tR3U?= =?us-ascii?Q?OJgFE8/IFwi5Xo99ofjfbu4vRVw3qIEyFUPchujP1cKQeCUYenqcIdL+l+jw?= =?us-ascii?Q?fSTgDPsgpg6qoNuZgb4KnJMdAqqzTJW8bbgnyMHWXaKfd9qjuX5RL/0RIRZQ?= =?us-ascii?Q?SusT/FoC39H7D1vAZDUogGVRC6cSRFdYWts5NEbNrFfTBwvTV3xC4TqzLkrv?= =?us-ascii?Q?DB4O4VVMcko3Z182+1GDvc5oV+Yh5fAvr30NoYXPEVjpxf9wBQiYeLX69y2T?= =?us-ascii?Q?TLive7EKgKrNa7YYF2WIeDcZlliCLkEWVhP1MmT+/2T2l6dxwPVsgaGJ48Xw?= =?us-ascii?Q?Y+jxMzLf094vSH/H7jSrE0ukSvVulYgdD6onY0bKG1L+HVaHVhMJi2gsbYds?= =?us-ascii?Q?z4PrmK65p2HusKR89osRpHxMhrdg6xTwNceglvgXVpU7HfyUBEHuOe9cHZAH?= =?us-ascii?Q?Ke8xAJIS98tdIRdYZ2idu22zGqwHxc5qbqtljai5KRvrl1j/4OSCRA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR08MB5732.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xIOR+HpY6McgX84UxCvCGiisUBR5p4mJ53Wdgo0OsnJCoPC6Bte9VAu3QKwE?= =?us-ascii?Q?XiajmI3d/XP+HQ7wh1J5DS7aUi4sxP9WfehiI8BXBCcN3jT54d5Le4l6c9lK?= =?us-ascii?Q?24KdogcltL6B+pm32LN9jagKNEqm0sNOo2WqvmPRGx7gh/Hgdl3l4r9ymLxy?= =?us-ascii?Q?BROcoUXAdNJ0y1FJ7qYC5K5AanpkTV2d+xVXml+3Qw+AdHPDdau+XOKaBC8j?= =?us-ascii?Q?gt6mTLaYGKkfFUyjIjRo7/9LDmLApPO3mrE5fRvDH5L024kzpuE74hiKgZlm?= =?us-ascii?Q?ff5j4mHfi/LJBdf3wshXZWIk4s6+cL2jxLsa0mlPufSvoMU4kCGsI+rECkf4?= =?us-ascii?Q?fCtjoYM4p3jC0fa2FcMgAbs7souIYAhysR5g/M+xp9xGkPR5hLz1aeZ/oi+a?= =?us-ascii?Q?VHv3qGg4TSlahUs7RJ0xynOvtfm5yy0CHDnaZcNCRUjSRFYr7uectUeJbxb1?= =?us-ascii?Q?waE8Rj/+s3Lx0FX2Rzx7/AnRERGx8OAt9ooPM/wXjBdA8evhpLdJ/qjNNV2t?= =?us-ascii?Q?dWDXwn4P2qh7TFTFTgxfggrzsGNxdPZ4hfq258Zab26jcI9JxZ1EeAwELhAg?= =?us-ascii?Q?QjfAbaPP9xkaxYl/80Tmn6jRRhqb0dUa1XcXRJreULfnu7CnGTDjExcO3zxG?= =?us-ascii?Q?H2H72gFMCzXQD4+NfKhVpIXh7m13FcxujjuiNUK0HaH6cX3xekQgmjtnZwiV?= =?us-ascii?Q?oTSmArKBHCzTzlN+GBVNDSsFF4LmuLGo+g3jVoTxsodr4CqbQVxXAN42tEzJ?= =?us-ascii?Q?QL1DdkLrsTPcx6qNFNkysAe14KUJZY6R/OevEbWuxza8UIXw+yZhYgAq5rAy?= =?us-ascii?Q?Uf6jgnxO3YcO+fS8up+jMPCycgfbQxWnVsij351PKN4mqxjicg5YkCDw1cnK?= =?us-ascii?Q?GTKBEP90IXROG5XBEKP/2MIFQGYsCZL+hEAV3vdqZnS8ZfaTItPlA2aw7Brb?= =?us-ascii?Q?zjxjqM2XFAGmyuHAUr3spB2VCeohxdaOQCnxwHx1XvN8vLQKWPWdUsOzCEp4?= =?us-ascii?Q?mpv1Wuy7U/R6pvP+cmyBUXepb73AeIULsYieSH2N4Hx6kvk0prBcZmUwANm2?= =?us-ascii?Q?mqjH3RJmFgVcJ+7eouRPa3mhlF8fD3aiv4vIJCu9MVEcuw48JeHgHmJiwaGR?= =?us-ascii?Q?LNvEIwDc4mqIVwnboAMQCpad8eCqhifNhgMH2MXDFxW8bJ3YBAO79rFGYfeQ?= =?us-ascii?Q?8M7+7Ed8gYhuFVR6gKLz2rOleXx+tz3Y6w5Qh96FTuR7X7ALDxWcTVT2lwaE?= =?us-ascii?Q?VY6kmTNRXxcV3X0eGbI5RCLKikXMbqTR1H1NffXMf77htYrCKf9A35ItHum+?= =?us-ascii?Q?O5aqPn5E8SIncth/TNxxSvCeFI/xoHbdngU4uRmJiEu0tlO9tksSZKxd0bSR?= =?us-ascii?Q?KYd76temKoM9YeAenHyJpPt98iNGJrufN7xkV3Bn8D/1k5YO1pDjhfV1Ybln?= =?us-ascii?Q?GgEEm8iZJB6D4dlWwS8jm1+SknY20fGavWp+K86mjXdIzAgl32Jh1Nr9Fjza?= =?us-ascii?Q?4nbd7DKI4VVHyI89L0Ai7z1DsmYDR/rTs7tSNNONEIUbOOzDP2aVMK1Fz3d2?= =?us-ascii?Q?IJQzeu8SzaPfsVOhCfCckdJG7PUyBiMLhZizX8tTlKd//IGBIELJ067onr8+?= =?us-ascii?Q?YA=3D=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: c8094c4a-7bb3-4fb8-1eaa-08dd9de04562 X-MS-Exchange-CrossTenant-AuthSource: AM8PR08MB5732.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2025 12:07:52.0398 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ayCxs7TVrCa4LKTiPFEzHC6rZ+Zz3JDid6MCHZTWyMbQMCv8mj7efFIRCro3cIbX9pJlvf2kpxQakv5dNAeH2otx36OjT30Qglp7AHX4YcE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9277 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=2a01:111:f403:c20a::7; envelope-from=andrey.zhadchenko@virtuozzo.com; helo=PA4PR04CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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 @virtuozzo.com) X-ZM-MESSAGEID: 1748434171185116600 Content-Type: text/plain; charset="utf-8" and bdrv_dirty_bitmap_inverse() helper Signed-off-by: Andrey Zhadchenko Reviewed-by: Vladimir Sementsov-Ogievskiy --- block/dirty-bitmap.c | 9 +++++++++ include/block/block_int-io.h | 1 + include/qemu/hbitmap.h | 8 ++++++++ util/hbitmap.c | 15 +++++++++++++++ 4 files changed, 33 insertions(+) diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c index 13a1979755..80ba8bd3f0 100644 --- a/block/dirty-bitmap.c +++ b/block/dirty-bitmap.c @@ -888,3 +888,12 @@ void bdrv_dirty_bitmap_merge_internal(BdrvDirtyBitmap = *dest, } } } + +void bdrv_dirty_bitmap_inverse(BdrvDirtyBitmap *bitmap) +{ + assert(!bdrv_dirty_bitmap_readonly(bitmap)); + assert(!bdrv_dirty_bitmap_inconsistent(bitmap)); + bdrv_dirty_bitmaps_lock(bitmap->bs); + hbitmap_inverse(bitmap->bitmap); + bdrv_dirty_bitmaps_unlock(bitmap->bs); +} diff --git a/include/block/block_int-io.h b/include/block/block_int-io.h index 4a7cf2b4fd..7b2642af36 100644 --- a/include/block/block_int-io.h +++ b/include/block/block_int-io.h @@ -109,6 +109,7 @@ void bdrv_clear_dirty_bitmap(BdrvDirtyBitmap *bitmap, H= Bitmap **out); void bdrv_dirty_bitmap_merge_internal(BdrvDirtyBitmap *dest, const BdrvDirtyBitmap *src, HBitmap **backup, bool lock); +void bdrv_dirty_bitmap_inverse(BdrvDirtyBitmap *bitmap); =20 void bdrv_inc_in_flight(BlockDriverState *bs); void bdrv_dec_in_flight(BlockDriverState *bs); diff --git a/include/qemu/hbitmap.h b/include/qemu/hbitmap.h index 8136e33674..7cb6d6e7ec 100644 --- a/include/qemu/hbitmap.h +++ b/include/qemu/hbitmap.h @@ -350,4 +350,12 @@ bool hbitmap_status(const HBitmap *hb, int64_t start, = int64_t count, */ int64_t hbitmap_iter_next(HBitmapIter *hbi); =20 +/** + * hbitmap_inverse: + * @bitmap: The HBitmap to operate on + * + * Inverse the bits in the bitmap. For example, 00011 will become 11100. + */ +void hbitmap_inverse(HBitmap *bitmap); + #endif diff --git a/util/hbitmap.c b/util/hbitmap.c index 16674f33e4..ad083b2927 100644 --- a/util/hbitmap.c +++ b/util/hbitmap.c @@ -940,3 +940,18 @@ char *hbitmap_sha256(const HBitmap *bitmap, Error **er= rp) =20 return hash; } + +void hbitmap_inverse(HBitmap *bitmap) +{ + int64_t pnum, pos =3D 0; + int64_t size =3D bitmap->orig_size; + + while (pos < size) { + if (hbitmap_status(bitmap, pos, size - pos, &pnum)) { + hbitmap_reset(bitmap, pos, pnum); + } else { + hbitmap_set(bitmap, pos, pnum); + } + pos +=3D pnum; + } +} --=20 2.43.0 From nobody Sat Nov 15 17:49:59 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; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1748434209; cv=pass; d=zohomail.com; s=zohoarc; b=RAXfFjiZaZMQ8QtsD5aN2UAI0gaWVpMJKSkZ+DmopaJquXS3Wb9Sbdv45lbLqCD94l6z7zBdbFrtlJkYyEAjtkBcg1XPxFLDLOWkFPR4KTxys/orytbPoNkeAFCFYvBW9UGXcaOIHdorneOIVe+ofFCUZG9yoMkYyTrzMlGw0p4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748434209; 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=U5kXyUg8kfAOe7FoTUI2XKQfaM6zNy/ZUZxKY8hWyTA=; b=WoBCw+FvqGaOv/PjDs8ur4oqN+Sn0Bm+fq0blgmkHbCqs2d3JraXpXVoUFd2d8tsk1qacA0h+BIZyxO5Z4hjyDzoOHtBaHNlG73BK6jB4Y4VHpD+VeiM/bzRJQq/7bFAOa/QD5thAUCdfhd7gwLXTss1E0ArPGNJSoVmEhiRIFs= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); 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 1748434209170972.5367564943806; Wed, 28 May 2025 05:10:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uKFb4-000837-Go; Wed, 28 May 2025 08:09:27 -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 1uKFaA-0007UF-9M; Wed, 28 May 2025 08:08:34 -0400 Received: from mail-francecentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20a::7] helo=PA4PR04CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uKFa5-0002pA-TE; Wed, 28 May 2025 08:08:29 -0400 Received: from AM8PR08MB5732.eurprd08.prod.outlook.com (2603:10a6:20b:1d4::16) by GV2PR08MB9277.eurprd08.prod.outlook.com (2603:10a6:150:d5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.26; Wed, 28 May 2025 12:07:53 +0000 Received: from AM8PR08MB5732.eurprd08.prod.outlook.com ([fe80::e543:a83c:a260:602b]) by AM8PR08MB5732.eurprd08.prod.outlook.com ([fe80::e543:a83c:a260:602b%5]) with mapi id 15.20.8769.025; Wed, 28 May 2025 12:07:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rbiF+LfAm8nSMinXtRZoXSZELouH2w2cOqEg3ICNnRPGiJKmGQVMxB3W1BwNODuZR0tDwDLPyO7N4crZW6JY0seOHygVNncLLS0pjWVA31MAeghoFWdDecanJWTaKtkmxjWmp2qQ/Mo1lhBJjzQJDTDwvdjtIz1kmzVAnHdhbXp99oHaX+zfRQLLZxZwvBWLWFXwnOGU6IjDl7Y/MKjJrd9+N0PenGdBQ4uXUOV1PJOgz3amGgR13bv8oiXbeLSl//Fg4BVrLLfNEng4arZfjdT7a+zNCb9XB+JNxay/7MAIGBcvNHKh807ki7Mc529yNywnUE0u6PPTG4nEK6NrIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=U5kXyUg8kfAOe7FoTUI2XKQfaM6zNy/ZUZxKY8hWyTA=; b=ffjdBXKfrn+cKq91ZFY5s5uhVA0oz0L1Qm9XGPYRxtNVbWtM4VeZb109vMJHHk24FkvlhP1LQMInq3i41U/e3nc6ZhLelTvDoId4ZsEMKjnJ1lUd8m+OU5x7BB9RIRq9T+3Co/fKOP70JFPxvtGE1RkjeWRJu/C0im3oDoo9gZBV+mpqYs1rNJCpN9OuNy+7ukimqqZf/FJTQpiXskcKYsPKZQfGsaOiTqr+fTu1C+IpmgVunvE5r+DRzxq0gExBFePmq5HDATU/vT1/ZIIQ60rYcUdotfZg6DZT/qxIzls18Z5gV1lGtgG/kB6n7LfqqcrertIlJxr38loZIbZ4Mg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=U5kXyUg8kfAOe7FoTUI2XKQfaM6zNy/ZUZxKY8hWyTA=; b=e6GmWYnrH8DecVDDQ32uErj4t8VgB+IrSKkiqxtEcLQQQ5W9wyXr7ZLtCY3cTuKuJ9PaRT7K9ICLZXrfq9Zjm5bTOtbRjG6TzIfqL5RCd3uubK4diE26jn5UXeIswiPqhUjtjIf/9kX3AJER2iCPViofNZkxeaK9xWWsO5UJ4qY5KKj4gNUYKMNchCwFsbQbo14xxAVoqnr34O4zfm2W/X+JyDMyQ6Ivi3IEnLHLypIXAaM1vMg5RV9ovvdE9Tb+ejql+OtqRSOlcmb5Mrmy6EeNU2KuPPZYnNIsm5gTXBkm2ovV5OnQF8IemsDMXBWUPBd+7V75qAugU3FsoLPUOw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Andrey Zhadchenko To: vsementsov@yandex-team.ru, eblake@redhat.com Cc: qemu-block@nongnu.org, jsnow@redhat.com, kwolf@redhat.com, hreitz@redhat.com, qemu-devel@nongnu.org, andrey.drobyshev@virtuozzo.com, den@virtuozzo.com Subject: [PATCH v2 3/4] block/copy-before-write: inverse access bitmap Date: Wed, 28 May 2025 14:07:30 +0200 Message-ID: <20250528120732.2247150-4-andrey.zhadchenko@virtuozzo.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250528120732.2247150-1-andrey.zhadchenko@virtuozzo.com> References: <20250528120732.2247150-1-andrey.zhadchenko@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0173.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9f::8) To AM8PR08MB5732.eurprd08.prod.outlook.com (2603:10a6:20b:1d4::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM8PR08MB5732:EE_|GV2PR08MB9277:EE_ X-MS-Office365-Filtering-Correlation-Id: bd53365f-1313-4253-7186-08dd9de045c4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?3M4hSuC9v2yj9ZiGAVPosC+f8fXLKSgH/3uhj9vaf/aVsXsTTJkiFeclq0uf?= =?us-ascii?Q?GC9+KBfPBxbkh/5CNvgL7/xFWOhJfymQ4Jx502JUI+JIGcSWH21QJUbbmvt0?= =?us-ascii?Q?f75WMf/94iVAJ0tF2qe410G+/ITo3f0Vc4RiMEL0Mo5IEwocuZH2uKdj0EP+?= =?us-ascii?Q?8wuc7YMwPl2ID0b9ahsQlFFI4toQTrvjkNpwhPfVsPwkWTKj1jBCztJ4y85X?= =?us-ascii?Q?SdRG+3oePGsBf7681YhRFyTUZohIEaF2yv5cPa7X4QG4eIoH9tNoJ6/EQY2j?= =?us-ascii?Q?q2Yk315dAz1iy/584uAfGRYtD6hpvu3xSrFuWmz7twvrx5d0W8C3ZkA6ar/5?= =?us-ascii?Q?cFzNv+Z6zl5nq1wK+SaNqrcHtV5Oo+8SBG0WlKs5UAKN2HLkVOMSB85Q0F1U?= =?us-ascii?Q?KrbOi0ThhUfyoCM2Kpsp8F7fx5TS9KW5HEYIx6rG8wAIAFRKbP69U8V0XPYU?= =?us-ascii?Q?gvdRicHz3MeK4GTwgu/J76isPaUOyyznhBKnEFBxhq9MkwdiTHlwuTra8Vjn?= =?us-ascii?Q?VmOS1j1c4sBX85sHJYyrcGHI4gisj07qtp2M3Hfhg1cC85oxea2pY7YF9k5w?= =?us-ascii?Q?DsrmK0NjuCt7ciIxOTHp+hFdnH7gPvlP339PDs5ju3c9+dWBaOPaUzJJpOb8?= =?us-ascii?Q?Z28JrsVHVmI45C9X8pQcXTCKT3ZZuvCkEP+kQZejuPkNplGWu6q+arlYpNrY?= =?us-ascii?Q?QxcaqztgRAaJhcvUIUgTu7jqljDFYkWZKYZrrdncg7FfIW2jApOdn3x9ZEzI?= =?us-ascii?Q?tv0inpg7Qet34bLq8caTIMjqNbz6xeQvHFNLZZCesmyU1/p34zbUu9lwRgQA?= =?us-ascii?Q?EQ6t5WLP9T/Q+3qONoCuTmrcGyFuXCA6eHUoJXBBo3uELnll+e+AOrzXuDmu?= =?us-ascii?Q?uXiBNsGzO1OaIhXVY4IpYlm1qBTuOqdoYvsegnwJ0eHzLbLcFnJOLAZNH6h4?= =?us-ascii?Q?xORcaxuosf/ahSojuvLWEt/0A3RTfsrZfKyxoGlVopDacR3xsQnAH9FgWBlt?= =?us-ascii?Q?5qK0jtc99NsppzWabVTGzjJxuRpYFKKKcK6rwQ1+7hOWDFQeIzDHO5IyWWHO?= =?us-ascii?Q?38rAoD6s80bcmib3ZsOSVHoAvYUbEZ8P01CmhO/9S+BlqWX+Owbq17cejiJu?= =?us-ascii?Q?9m3aAXEJ8i8m1Fg3h7s+lQqUo+CPV5WQJXo1kz8jZFJB/tvD+f/4uttxwRV+?= =?us-ascii?Q?rktBacPRyTb4+DmMtn6pO/u4f5wFR7beHZgBNcfTb2FWNqIu0VkewE4YZFtN?= =?us-ascii?Q?SXSqO8BNQe8VXx54fWTlWC4qFqZUBob3VAYgjDyxEzdLV7W8chQ94hEYcZ6Q?= =?us-ascii?Q?0T9vHvjgRExT3iB4TVVB5UaH5U9wlKpqCCG4Fr4BQtCk8Tmsu0vDDxxnZ5DI?= =?us-ascii?Q?odS2gjSkH070yHiTE8pvbBF8YUbJi4xts+ksWox5vSpzt853ZBXARs8DPu7y?= =?us-ascii?Q?nU/bo0GdvGj22PmH82pqk5INbyvg86JeHASM0jJE1R1Y1ilY8sio0Q=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR08MB5732.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RDqDbtcxEA/7+496SBkuwLaFgxq1v7tF+73IFZoSDmGYHwlAmZUSLs13h3D5?= =?us-ascii?Q?tPXn2JMEy6grXdyw5BtkWMJoqSpnYwnKbc3ATtnGj8zHB31U6E90x9Qu8eGp?= =?us-ascii?Q?6BKhqdxg1RM8Cmcdaxd11Mh0f56/Xns8wGZxZKUcEvOw/B3G0lrqVKnma6fF?= =?us-ascii?Q?8xImn2DXTLUgxKp0uZGZebzUmgrgDFs2CAc60F4LcMTEBBFK6dG05egXTcF9?= =?us-ascii?Q?S96+tzxrXw297J4BXnQ7JKUWbJbrnydvLZY+AVxQRCTXBSTp4kotCrmMyEyM?= =?us-ascii?Q?STCEodJKKprMIsinUlCmbSjMX3PkgPkAlloKSCShw0QR/usf2maE8DQObM+6?= =?us-ascii?Q?TFfiaOMFYeq7KmdZMgn24X3TadZFYAxVgRf+A1RViPCV/PEt84QZ4t3m2con?= =?us-ascii?Q?LI5XGjjHNYken1Rrwz9EmtTx6jYl68Ma10WZqkHWvmEu5feHfwj7Z0QJxg+u?= =?us-ascii?Q?HYbwsjs3D76TmRhF9nDgF5EOaOjA4XCSBh1TvVmGoOq8z0pq5VXseX0ZnC5R?= =?us-ascii?Q?dByz9VwmdyaLwwAEpJLUrj4wc7GV0aqT/S/EXBjM4H3e158RHC0HCcK5Is0c?= =?us-ascii?Q?cND6ZbThKtGBaD08gxbiQ0J0dCAQyZwBGdxEpQdYmG77ozhTrad2kLEoEJ6b?= =?us-ascii?Q?v6EIxdERp56siXL2KjKwTV5LwVooINjoDUYqgBjyaZigFWa/tI/psmSdpDlh?= =?us-ascii?Q?nysenuXIw3045LfCal4hr04z0QsPnJHikrBGDSrp6dU8EXLtuHlgiVhRctZl?= =?us-ascii?Q?ThyEzju/2Y1laKYFkxFiYnDTR904+VCgcwxCHOeG8HQKLtJCe5FbJEXAnsrI?= =?us-ascii?Q?xOKzjayJqmMPpvA0C7yhC66F5HhIliiipi2cw2EentLFfYSttKVcxaQ1+tqE?= =?us-ascii?Q?b4dRTps8meMIRbeOBt3n43REdmrHpSQfLrHd7W2irXTnYAyDv7jUzYAWS/CJ?= =?us-ascii?Q?pVqIwQiCZjq9TnzACIUSc5MKSA1aJTpDUFjMtpkB9QteXw0raRKaEsCyvnKh?= =?us-ascii?Q?tTWF4lvitzRKzn6iwshXr3IwE1ElXx4qzihqj511QTsfIbEF88LnBtfXyMim?= =?us-ascii?Q?7u7qzxw73LWg4ejdf2BSD6x32R4kHi6vwkXg3nvEcigbK30o2sXzbN8mzKJT?= =?us-ascii?Q?+N2r7bKxxeK0ffqS6rEEkcszkTm3tt3WC527Qye/JlWPMWxEikr9tTCisQSd?= =?us-ascii?Q?w6Fvii92Q6MoqsmBdBIBHxCfm6U/pVtUec1e+UiKCUzZDaCxYdSyxTkmhP5S?= =?us-ascii?Q?Sg0yZmCWW/wEES5hSVb2agZweQzhqy9CpDafHqVyKV61MoVboHrxJE+7zWqh?= =?us-ascii?Q?cclaiiU448av9/xK3Pko6WLQoaAXOFzMHgPQzJvY2GHL0E1PFVANinMHVjPO?= =?us-ascii?Q?/09AnHTHcZJY9Wv4LiuIkhMI+ItyfI+RTY9y5zsHz7nK4BteSCifR6hhBNZ7?= =?us-ascii?Q?xo18JjHkJAbo6SdllvZJW4AIUNnPAkfEOv3td/+7Gmm+VeCG1F8feCODgtNX?= =?us-ascii?Q?LA3ivpBeldimL+FQPSwmGbVpRStWRjX2QM92PTMVrGSuyd5aj1HvtwAeOftj?= =?us-ascii?Q?zl4Cq+guwyBQCJTUguq81W9GqTRFIXiPy9RLjlPSW6hjQOLlrygWL7QQp4iB?= =?us-ascii?Q?Nw=3D=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd53365f-1313-4253-7186-08dd9de045c4 X-MS-Exchange-CrossTenant-AuthSource: AM8PR08MB5732.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2025 12:07:52.6560 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OcPA36EfY/i2c/iDBiwUdUE6yMrchBk4Xv1QaaealhLbsctJBUZMf995LSbUjGMvDOHx0fd7ntxBJFB6883LmtGAAuwCfr/6PYLrLlUouuQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9277 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=2a01:111:f403:c20a::7; envelope-from=andrey.zhadchenko@virtuozzo.com; helo=PA4PR04CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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 @virtuozzo.com) X-ZM-MESSAGEID: 1748434210052116600 Content-Type: text/plain; charset="utf-8" HBitmaps allow us to search set bits pretty fast. On the contrary, when searching zeroes, we may be forced to fully traverse the lower level. When we run blockdev-backup with mode=3Dfull on top of snapshot filter + cbw filter, the job fills copy bitmap by calling block_status() with range (X, virtual_size). The problem is that we check for zeroes in this whole range. We also hit the worst case here, as access bitmap is fully set and we need to scan the entire lowest level. After scanning the full bitmap we actually ask the block status of original image, which may return significantly lower amount of empty clusters. Beacuse of this, the backup job 'hangs' on block copy initializaiton for a long time with 100% CPU. Example copy bitmap buildup time for image with clu_size=3D65536 and preallocated metadata size 10T 11T blockdev-backup 52s 57s cbw + snap 325s 413s cbw + snap + patch 55s 61s To fix it, inverse the access bitmap in cbw filter: rather set it when the user is not allowed to read the cluster. Update qemu-iotest 257: now access bitmap have count 0 instead of the image size 67108864 Signed-off-by: Andrey Zhadchenko Reviewed-by: Vladimir Sementsov-Ogievskiy --- block/copy-before-write.c | 17 ++++++++++------- tests/qemu-iotests/257.out | 28 ++++++++++++++-------------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/block/copy-before-write.c b/block/copy-before-write.c index fd470f5f92..7e074ad569 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -53,7 +53,7 @@ typedef struct BDRVCopyBeforeWriteState { CoMutex lock; =20 /* - * @access_bitmap: represents areas allowed for reading by fleecing us= er. + * @access_bitmap: represents areas disallowed for reading by fleecing= user. * Reading from non-dirty areas leads to -EACCES. */ BdrvDirtyBitmap *access_bitmap; @@ -220,7 +220,7 @@ cbw_snapshot_read_lock(BlockDriverState *bs, int64_t of= fset, int64_t bytes, return NULL; } =20 - if (bdrv_dirty_bitmap_next_zero(s->access_bitmap, offset, bytes) !=3D = -1) { + if (bdrv_dirty_bitmap_next_dirty(s->access_bitmap, offset, bytes) !=3D= -1) { g_free(req); return NULL; } @@ -338,8 +338,8 @@ cbw_co_pdiscard_snapshot(BlockDriverState *bs, int64_t = offset, int64_t bytes) aligned_bytes =3D aligned_end - aligned_offset; =20 WITH_QEMU_LOCK_GUARD(&s->lock) { - bdrv_reset_dirty_bitmap(s->access_bitmap, aligned_offset, - aligned_bytes); + bdrv_set_dirty_bitmap(s->access_bitmap, aligned_offset, + aligned_bytes); } =20 block_copy_reset(s->bcs, aligned_offset, aligned_bytes); @@ -501,9 +501,12 @@ static int cbw_open(BlockDriverState *bs, QDict *optio= ns, int flags, return -EINVAL; } bdrv_disable_dirty_bitmap(s->access_bitmap); - bdrv_dirty_bitmap_merge_internal(s->access_bitmap, - block_copy_dirty_bitmap(s->bcs), NULL, - true); + if (bitmap) { + bdrv_dirty_bitmap_merge_internal(s->access_bitmap, + block_copy_dirty_bitmap(s->bcs), = NULL, + true); + bdrv_dirty_bitmap_inverse(s->access_bitmap); + } =20 qemu_co_mutex_init(&s->lock); QLIST_INIT(&s->frozen_read_reqs); diff --git a/tests/qemu-iotests/257.out b/tests/qemu-iotests/257.out index c33dd7f3a9..55efb418e6 100644 --- a/tests/qemu-iotests/257.out +++ b/tests/qemu-iotests/257.out @@ -109,7 +109,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -585,7 +585,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -854,7 +854,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -1330,7 +1330,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -1599,7 +1599,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -2075,7 +2075,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -2344,7 +2344,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -2820,7 +2820,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -3089,7 +3089,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -3565,7 +3565,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -3834,7 +3834,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -4310,7 +4310,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -4579,7 +4579,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false @@ -5055,7 +5055,7 @@ write -P0x67 0x3fe0000 0x20000 "backup-top": [ { "busy": false, - "count": 67108864, + "count": 0, "granularity": 65536, "persistent": false, "recording": false --=20 2.43.0 From nobody Sat Nov 15 17:49:59 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; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1748434269; cv=pass; d=zohomail.com; s=zohoarc; b=DpPGt/D4wsisu3uIOhTUp6KORcUfZvedwYXoAkB6wxTYlElkx96uBakht0V3JLRMtXjyR5OYCpAuyREtBQRkoZMiw9uDCNaqe9ndBItS6UaFpBJ8IEoyN2dVxN9E7Fvsgouu+4aIoggspeAiEvzdGl6rc5zchsyGHfTdwDU5NMw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748434269; 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=yE5x+6tUdpFOQQzXQCu+7y6SMrxcYjq76xzhp0+Vrpk=; b=XDU1oMgha+QCyIYUbCslQnniPYZAu9bgSYtpeGjYBbWTTkQUpu9JZYgVrfD2jhccdUM333uZIHgk0B+GsXYfakrPSEQidW8fC80K2vX/iZd3D2rrzSJaGg+UAFA3aiIXJTcLBHlMA0d2okKSHpeg99JSDLIRSCQj8H5aZUfQffw= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=virtuozzo.com); 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 1748434269349323.18963384217693; Wed, 28 May 2025 05:11:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uKFbg-0008N1-Js; Wed, 28 May 2025 08:10:13 -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 1uKFaI-0007ba-Pz; Wed, 28 May 2025 08:08:44 -0400 Received: from mail-francecentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20a::7] helo=PA4PR04CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uKFaG-0002rr-Qa; Wed, 28 May 2025 08:08:38 -0400 Received: from AM8PR08MB5732.eurprd08.prod.outlook.com (2603:10a6:20b:1d4::16) by GV2PR08MB9277.eurprd08.prod.outlook.com (2603:10a6:150:d5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.26; Wed, 28 May 2025 12:07:54 +0000 Received: from AM8PR08MB5732.eurprd08.prod.outlook.com ([fe80::e543:a83c:a260:602b]) by AM8PR08MB5732.eurprd08.prod.outlook.com ([fe80::e543:a83c:a260:602b%5]) with mapi id 15.20.8769.025; Wed, 28 May 2025 12:07:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N7vJPU1+38B5akR1OWGykOAlU+OeirhHE2xHx3/JvKVgrRKLvJWxBfJS2YD8F8c1FKTnn+dz6uxbSOWOaJt8XCMRBvE9yx2vr35Hj2v1ZJfRTKk/zDgv6lV1v3TyFFhGonKFQIkSx651apfY3XDzGoEDm3CawOZcpaHXB+UI95DrPQqeSvp/10m4RGA0lm5hgafPgI1HGTft4pi8zpyDGmu3We+t2ROc995zIPzlk8VWMHtJOHAJjDhQLvz/HVrrh2aPlvEp+XGMINDh8TAlZ8hx83/3S5AR6qC8HZw18sUnw527NfAJAiOQooTbPod1SntDtg+pal4zRMZuFpfrfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yE5x+6tUdpFOQQzXQCu+7y6SMrxcYjq76xzhp0+Vrpk=; b=i74uXqe7CyOoVNGIOJgvZxpmP0gFoQOcjb0Tl/PCYDS9TDf6GFuW1N5s2vZoS8T0HT/06lUUxlvT/ixciVCDRIngRZh6mf4Fg1ey44/y64XbKX77oPZN3jRWuyi7SZwGHbSDmwH2o4UjILLlmAE4pSsF5W0G/XEAKY7Bjnzkaz5SowDCKntMulr7RxoYXUi+TOnLGdFDwXCoFX7cAScj+KyMFl3sxIGBkgkshyF4Rik8RAYavq2QNBYP5R00v/oFBXiEoORAvGJ1Sz/ilhO6z5/IUvjNCDUpr9IxQkiEF1g2Hnlt3jX2pkBZ4zWONXGO8vG7QzROCjnYVr88wfS65Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yE5x+6tUdpFOQQzXQCu+7y6SMrxcYjq76xzhp0+Vrpk=; b=Z2EwrxZ64LKjjYzSYst+rHQNbbySBYDx4Ykm1iuqtBtmYzKJYrOdnkqVTFS19DVVwHcTybCqf0zmFe1s27lJEqZtInEaQWPAlGhHYvXcjTQFk/r2ViV0+6qRsN8MEavqsNV4eZVYMmQRETfAN2MDclgTXQvyw1rFbyfozHW+cBdVuapa0xzo30+CJhbSVkeaQHSYAeJn5nDiwCliQs9LofmAl9AQ4aiw5JdFCQtTHBP+DhvLFw7TnBw3o+m8+WgdXA9w/ayDwwlAlGhoVGOroSk2MQp3aWdh9whdTtNW6c/8rNYYPyp5nrgJI8TccaGCSpzoazmhZopYjCMYDcVKNg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Andrey Zhadchenko To: vsementsov@yandex-team.ru, eblake@redhat.com Cc: qemu-block@nongnu.org, jsnow@redhat.com, kwolf@redhat.com, hreitz@redhat.com, qemu-devel@nongnu.org, andrey.drobyshev@virtuozzo.com, den@virtuozzo.com Subject: [PATCH v2 4/4] block/copy-before-write: report partial block status to snapshot Date: Wed, 28 May 2025 14:07:31 +0200 Message-ID: <20250528120732.2247150-5-andrey.zhadchenko@virtuozzo.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250528120732.2247150-1-andrey.zhadchenko@virtuozzo.com> References: <20250528120732.2247150-1-andrey.zhadchenko@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0173.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9f::8) To AM8PR08MB5732.eurprd08.prod.outlook.com (2603:10a6:20b:1d4::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM8PR08MB5732:EE_|GV2PR08MB9277:EE_ X-MS-Office365-Filtering-Correlation-Id: 20f3cef6-1f45-4fb0-61dd-08dd9de0463f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?iWmcjTv+kJX6BO+XRY8CtoEWxci0eZRGpekEjZaiJoP8NXZ874RFDLl9b1K7?= =?us-ascii?Q?z6rL5Nv7WspQOAyHprBl1MRiHVFtVqL2dq3IZ+ZqT0gm0VMBH1Hy0xnssswz?= =?us-ascii?Q?Y974msFewVeeQC4J5wMLOEawf/AICbl1E4CE926f+HNp8DTXEHSp2DE20M2L?= =?us-ascii?Q?deimXnryOC/nvzn0Be/LRy/1iwKam7GJpJT4rHkuebvHCforXK++aX+EG6VI?= =?us-ascii?Q?XYdByKG635ksYF8KHBQwck6cKYNEqfac/HebFXimO6+IQwdWRXueuIKSClOE?= =?us-ascii?Q?JnOzLvOlBjjWeWb2HGGlfeV70NksIjCV3vLG7bDrYq4urKgD/a1xrEi/c1HY?= =?us-ascii?Q?ZDyqpqSyGJRMgS4oMZDXsczDagpkiZ5EuiWO74zdoENQCX2fD3dFPK4LzXxC?= =?us-ascii?Q?c2wxuRElI7VZ2Z6GtGU2bE3sLZlfFZgW9v3JCkOdMyG18TFjQOGZcuyqVxC0?= =?us-ascii?Q?x+EsM7NbL+/VsmzThpGGvjImIq2uLFWB53M31vLYZ8dX/fliqACSvFJ8lHyg?= =?us-ascii?Q?vNi8Y1wFX7ZJ6x5kM3KLJ8fj4JF3xj8lx785bOTJu728M68bPTIkMZfdEzos?= =?us-ascii?Q?PQMZKGMere6IlIO8fy83bHdyHsPv4cLlNIX62el0Y6qVS+xd6d49guqaEkv2?= =?us-ascii?Q?dar+VFggLuUbg9Jt/teO1GMBAbSPin2Of84+vm6tOiCQOT4N/fg5FiRohScl?= =?us-ascii?Q?BQbA9f5YQpAySwHToj5+zcTvQiTqAb3q4aSD90H03NONQ4y6lrSC956b7pa8?= =?us-ascii?Q?p58GFr613oYFPFeHVmG52I5qkAmXwaoCoIRsvUBjBe4pY1RhZ2EcvtXKX0nE?= =?us-ascii?Q?hgKOUnYdubPLOn2Zi/3n0GljbaoUPZaKEoTqVim74tHp41SGgT8uZPoIMGFd?= =?us-ascii?Q?7yOhjikwSXLt8Ej6Crq/5bnFsmTw8cBRnv9Sayvt7trh1AsfCINc1gB21xMm?= =?us-ascii?Q?/txCkjcRQxsbQh3nvuAZAPBt0smjVL+qxwFzVa6AsoeF0eKQCjLkoH2NgTA0?= =?us-ascii?Q?QP/2er6iNKEuFkvnaAV8e8jIxuTv2iTd2g0vzPB2FUb76GiSL/+2EE7x+K9X?= =?us-ascii?Q?puiNPRZmw872JtyRAugVmYKXdiNXcwzIQ+xXo5hiNtNvhIINwJOf1OKgRIYu?= =?us-ascii?Q?0bAYrzOQYPSzelGI2sPIpaiue+HVnL+DOQXdST4oXq0C5l0zt6pUGYs/pV+c?= =?us-ascii?Q?SM452vMpau2X7qBH9iXAnEgkaGPxZZxPVPBLAi0Cr6cDakB4jNjN+yqscQGJ?= =?us-ascii?Q?DoGmLxQP7vCnYgsS4w7zorgE7PlJArqXgTAwHh7ZkGtqQrPFwWl2AI8US83/?= =?us-ascii?Q?YBlLDsmtYGx7pyojyH3OMAP9vFEeVXesHUieBc7rYb2Jly0EgZx2U4Hxxwuc?= =?us-ascii?Q?kq/WOYGXBJGDjTlD2rPZITptf9jsvJ67Lct3FytxVEq3sRypWcPVcStxAs4h?= =?us-ascii?Q?lA4ik5Jlhb+Sw4ntC/nJEwyXHdWgUeWzOB7hElORPh16ijJnC2UWjg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR08MB5732.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PFH3mErEyelgdLjAxJHFU+rYyMeF3Qixb03nAfJyuTjIzkSckTSM0sHDoHE/?= =?us-ascii?Q?Q8aKOAu3Na0Um01aNT6Uf79d5qph84pRzj/WJ3OOepkm5KjQcPvoMQXewkLm?= =?us-ascii?Q?ra65EuxntgMbsAShMehDry8+5CaZvEnDWNuk6ZOHLybytAfPf5cubs+NSpzN?= =?us-ascii?Q?B/Rzv/30I+E2g85F8ikJmWdq5Yuezq4kh4HFTFD5s7THpKR/DJhushPcGRP0?= =?us-ascii?Q?H0tnCFXSksp623sWn/+UDvtijzKD3moC52Usv+Ar1Ciy/L1PBJugD1TiQI8t?= =?us-ascii?Q?9bEzEY8SWDglNRGuIO0YWRPoM1sp96sfhACRk3xX0ztJzP7cijMpXgqi71mY?= =?us-ascii?Q?GApaIWM9Vn2cYWfHKq53wRM5tsJXbJPF42ZXVX5oU4ZIPdcyZhrOzeAO3ZvS?= =?us-ascii?Q?jUGD3B8zHNXjFDsQ1yu2Mx+MBK1GwRegJL8qgzMs1v1oCJ3Bg+ihasFXKGRa?= =?us-ascii?Q?X7A54MK43IQc77j6Guuqbe9SJlD9ygx4KgmmpXVKe6pp6Gb0NmBiq25qpK9z?= =?us-ascii?Q?djZbctWFO645qNq3jejoPp+4daAiJZMypbySYs6TSDNMtWbGygUUek/tCAAQ?= =?us-ascii?Q?E6TOamlRRyxl2/jrsL+TzTnXKidDu2ljkqCJF8KTqXyT9IJa0l5uPUBFjl8w?= =?us-ascii?Q?7nY086vMsknw2w3CeWjIy20FRtRbtSbOIX4YnmVpWE3k+H9xxIl6AEE8ShMX?= =?us-ascii?Q?Gj9zKe/BH83z74orTPyC/fVvnVOelyhwMipjAgu5THcoQsgTn3ZN9t3Ygtfa?= =?us-ascii?Q?iLU4pa4bqUX1RXuHFWQ/Mcp9tq0dcEiZYUr3dylsDQ0NHwtuVfd3QchLXoJ6?= =?us-ascii?Q?eGnBq+ylciXZGjDOE1TBN77nFrO84v8l8IHRO+OA/SPArsctzaGBfyu7pdqQ?= =?us-ascii?Q?6c5Vtl0gtc8oaVhVJFlIfH/vlHI6E7WvHPdSnO9APHHJ1GFdXs/GXtcEBWQg?= =?us-ascii?Q?Xl4BzFW3eWxPTnUHMimi7eveTTImwQK2uS9doOW2wJtHpWcZKFAcBiDCc/qG?= =?us-ascii?Q?nXIpYOnVLNejZ776dVqRyEmfj0qhODsrg9Mvv5RaP32tbbYO4gOJkogaYQUy?= =?us-ascii?Q?JmiQ9hYn8G/4MbcYSng6jRONTlHy1KHCc1PA6KrTw/f+DaTzaVFPqGFwwSe/?= =?us-ascii?Q?p4Oyb15T8PzAI3f3dU/ATvX+eTCbKvv5p5TE4Dkxs7aCy2sRZPEaalpVofdD?= =?us-ascii?Q?1KqkbDXDuInrLGyMNX8WZfsAmTqkrJAZecUBtJUfgAgKjUm/3+W+kRcl8DO1?= =?us-ascii?Q?MW9sM59lf+TpZc0Q4Hur80hGDDlPnOOouemd93eL2McjMlouwUfngkjr4zQm?= =?us-ascii?Q?Z04lPWMWuLNh1cr/LzRzd+5NPUIKVlUAjwJ1yxAvkwKc/h0ZpJbwUDwmEOkW?= =?us-ascii?Q?QIEU8KpzuoWm/QrPDty8myyFLg2e4rXNZQzoYLiRl3qfgFmM7BXJKhrQdk/8?= =?us-ascii?Q?JpnFBR5p9cx8IMxg7dBbhBliAcLvtoSYZHZR4W8NRhfVbSyZh+zDLirHg+Nt?= =?us-ascii?Q?BxREdYyjvAQP7EVVNUbQNjB3bozZ9opbqJy+uURn5wL3MItAq7hLxEdBllJj?= =?us-ascii?Q?W7nqYuzWQrjv43rtBGGKoTLdopqgyk9qPvaaFk+Fiv4Xwbok4IaDlvxRCkcW?= =?us-ascii?Q?hw=3D=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20f3cef6-1f45-4fb0-61dd-08dd9de0463f X-MS-Exchange-CrossTenant-AuthSource: AM8PR08MB5732.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2025 12:07:53.4793 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 24fN8IDzJEdKkpc35x7kqRQV4YLqoxTMJvmJfvipNM29p56+dDuF7DrDvRTqxWIB4NeRxfAh2xpMAtY6Ueu9MLl5HfHvJqAsU/+Iqj+oyH4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9277 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=2a01:111:f403:c20a::7; envelope-from=andrey.zhadchenko@virtuozzo.com; helo=PA4PR04CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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 @virtuozzo.com) X-ZM-MESSAGEID: 1748434271683116600 Content-Type: text/plain; charset="utf-8" until the non-accessible area Signed-off-by: Andrey Zhadchenko --- block/copy-before-write.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/block/copy-before-write.c b/block/copy-before-write.c index 7e074ad569..c5e6e1c112 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -207,10 +207,11 @@ static int coroutine_fn GRAPH_RDLOCK cbw_co_flush(Blo= ckDriverState *bs) */ static BlockReq * coroutine_fn GRAPH_RDLOCK cbw_snapshot_read_lock(BlockDriverState *bs, int64_t offset, int64_t bytes, - int64_t *pnum, BdrvChild **file) + int64_t *pnum, BdrvChild **file, bool query) { BDRVCopyBeforeWriteState *s =3D bs->opaque; BlockReq *req =3D g_new(BlockReq, 1); + int64_t next_dirty; bool done; =20 QEMU_LOCK_GUARD(&s->lock); @@ -220,9 +221,13 @@ cbw_snapshot_read_lock(BlockDriverState *bs, int64_t o= ffset, int64_t bytes, return NULL; } =20 - if (bdrv_dirty_bitmap_next_dirty(s->access_bitmap, offset, bytes) !=3D= -1) { - g_free(req); - return NULL; + next_dirty =3D bdrv_dirty_bitmap_next_dirty(s->access_bitmap, offset, = bytes); + if (next_dirty !=3D -1) { + if (!query || next_dirty =3D=3D offset) { + g_free(req); + return NULL; + } + bytes =3D offset + bytes - next_dirty; } =20 done =3D bdrv_dirty_bitmap_status(s->done_bitmap, offset, bytes, pnum); @@ -270,7 +275,8 @@ cbw_co_preadv_snapshot(BlockDriverState *bs, int64_t of= fset, int64_t bytes, while (bytes) { int64_t cur_bytes; =20 - req =3D cbw_snapshot_read_lock(bs, offset, bytes, &cur_bytes, &fil= e); + req =3D cbw_snapshot_read_lock(bs, offset, bytes, &cur_bytes, &fil= e, + false); if (!req) { return -EACCES; } @@ -302,7 +308,7 @@ cbw_co_snapshot_block_status(BlockDriverState *bs, int64_t cur_bytes; BdrvChild *child; =20 - req =3D cbw_snapshot_read_lock(bs, offset, bytes, &cur_bytes, &child); + req =3D cbw_snapshot_read_lock(bs, offset, bytes, &cur_bytes, &child, = true); if (!req) { return -EACCES; } --=20 2.43.0