From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11021078.outbound.protection.outlook.com [52.101.65.78]) by lore.virtuozzo.com (Postfix) with ESMTPS id 05754802A7 for ; Wed, 30 Sep 2026 12:49:59 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WgOAKKcB4ckmud4PxUSg89KgoaHEKgqP1Z4E0V/o3khOb2ydGSQPMEgbRtQbpDSKK5JEsTLWGJVE/jr8NmM0qDY0zqMZN6tglP/446ne5gkcWm/4OXLqkrb04zGPczD/yk5DgAhvgnoXaL7jLGTtnbIZE04AV8JyKQxGXxFoLI65fzngo3pZxoQXkYEej9AnrdBpbUlbMGCS+4iUU2WOvZ45Sl9ylSlnlhU+fif8MWIXLiXRLvw4FuK3cjLGfZ3eN/e6MblXrq3RcAlxTf3nhRm+aNCUX3Bxy+v6FEV2TVwx3x3imlKX6ovwoeSA8aHkegk9g2uksCK7xBTd72ZRwA== 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=uICbC5/iY1k60oLg2jF7keUXI8UyQWH0WbSM5EnCro8=; b=WY6fa01JyHF4OG5MfUOVkdPi+i53Ox3nNEs4seZodpBkKT79/ZyLkSfSQPaTqrcxUL7J4nQ7SoYGoBCrI9xIoVJMKMTZHNx6T1azJxt26RtXAKzH5FkG/Vk5RY8McdzHo6R6hVL2EJLvAVkN/hy7YAPDw8lX29wdfp7i+lzwvu53xM8wHN4fzs/KQI/QEYuYS2jl7qxaDTakpheB9r2X8xb9wWe3+0sVnS/Dk4yZIKCvjYqi2Au6B93PmhVMYpQ/hn5GqIDUxdvmwg4uKWUkpPhiQXvgqB1rkj2aA7+2pPADhbK653fexjo5hmcTcTyyVHcQKY+saV09aukrrVqDIQ== 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=uICbC5/iY1k60oLg2jF7keUXI8UyQWH0WbSM5EnCro8=; b=t91rMhGk+vdH/3FJaF/pxhLpCAUQ0S4eItYfFBgd2jzdlOu9f+dq1FVx7rhQqtOS9WP+i/fPFPSGVvqq+pjUKat5cBOea6FWhj6rZGsCmugYRYuIu5SPZUFzt3ewOUqZyerOOiCFrlLEfjJ4U83QNzB4jOwwrwKs6HNjSFHXrsGHXRvSFplu3LxdxxswZ5u3pmaXaMTF6cWHEW8A/c74XGWRoOkB1PctFBiRHYUTEmzMRUGxV82cpEkP3mR6AFgxpVKpYCI7ZjRGxvTz9m5V02YdhwajgYVuHnXv3dAdPA1wB4bxOP6dc/dBi3CubleGhWW9SeMzsDnbFH9djolExQ== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by DB3PR08MB9898.eurprd08.prod.outlook.com (2603:10a6:10:434::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.472.14; Wed, 30 Sep 2026 12:49:54 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0472.012; Wed, 30 Sep 2026 12:49:53 +0000 Message-ID: <8e3e6894-0f95-4dfd-ab9c-bad9f2f5dc5d@virtuozzo.com> Date: Wed, 30 Sep 2026 15:49:52 +0300 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH hci-8.0 0/9] block: cheaper zero handling in backup and commit #VSTOR-134085 To: "Denis V. Lunev" , svt-core@virtuozzo.com Cc: den@virtuozzo.com References: <20260930111739.3866427-1-den@openvz.org> Content-Language: en-US From: Andrey Drobyshev In-Reply-To: <20260930111739.3866427-1-den@openvz.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: ZR0P278CA0022.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1c::9) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DB3PR08MB9898:EE_ X-MS-Office365-Filtering-Correlation-Id: 526a810e-d79e-4ca1-3f83-08df1ef152dd X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-Transport-Rules-Loop: 1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|366016|376014|5113699003|10067099003|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: bJrfFHow0RNJqcHeuZ/CeOj3He2vt+WkkKbgiwXB7FclwwlaHLHoipKWmDN2fUXAcauVm+VBUHQ+pF/1XSuiUVVCB7TwEhxogV6tqd3dCYbY2rcskHa8J+uWul18u7vhNf3iQ2IsUsvfqpDiYvH8upAVGqKju1359jySvf+1AHqWxa3+vZ/Tn8UAtMThTT9cTp2N6SLfAnoXehZsCc0NTcqhVndzWv/UM12PDEmyz4B+uT/2UOXn+Y/i5SkI8JgTaYV0IuPjSGJmoL7uMXOKKYwhoDQV4qnTYe2WQFodCyGFdnHbI1hQwCeNgTZ4UiprWVOlua90CkAuE81aJPxK7Fwjpa4bgNAeO2VKVQ5ojlSxyzJl8Kpa31INWpBP8ker+qQHAX2T1cyxlOBSTEqtLmQapOX0dAUKDmMpe9pCBP9ZFkWGIu1kNM0YUrFQooPrejCrC1FSInCJBp7HvzIuWbeNV7Fol/5usQOMSBaV2UYbM4kePAJytHL/hscYeHdw08WSrs2gMFit/CNckTdP4/sanphxenU2jWxJ6TX6cWZ4z6XuVXsYXUY1ABDc0YeVlQtS/qGR4FAaIk45QVHf36khPC/J5ANFapEu8ggAFmLUl12v1+XIy+9Wj/UaO5Bk X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(366016)(376014)(5113699003)(10067099003)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NUVHZVFrc3lqYkhSRU91bkx2ak9SUzhHMVN3RlpwYnNZQnJuR01vQUx0aFlV?= =?utf-8?B?eUc2TElVUVhpcDcrQVk2UW91WHR2Y1hrbjhLT1RHMU91NUZyQVFMTnVVRU5q?= =?utf-8?B?UnJkdWxHTUtKZzZMN1dqNGFKN1lWdHZHQzl5ZFkwN0hRSGpiWjg1U3I0N0Zo?= =?utf-8?B?SUJ4MFlGRUFpMVVXVURUZkgzSk1ndTF3RXE3UnFZcENUbFZFMEgrbkNudjhN?= =?utf-8?B?Mk9iL0xsYUJNNlhQQ2V1RTlGSVN4WTc1S08zaU0rWUdUQjhpZUhNZmNZamN4?= =?utf-8?B?ZlJTUE01aWlqTXVOb0JUdUc2YUEyMWsyK3pnMzhTYWRMd3dlbWROeDVqem85?= =?utf-8?B?Uzc1QmVyWkZJS1lPdmp1VzBKdGhVVHF5dzlsL1ZqQUJPNUdnSWhqL0JXUU9L?= =?utf-8?B?QzF6eHBOc3dxWk5uNVBNV0JpZXhQOGFobEZMZnVxQjd0cDVpUFp1dldZMWo3?= =?utf-8?B?SVF2bU93djhLYUhUOXc1dXQ3N09Pa1lxSUdCdkFGZmJXMmVsWGw0QmZzbW5s?= =?utf-8?B?emZnMmZidlFXQlZFM1dselVkcDlPMmRXdnBnSE8zU3dUcVBtUDdnWi9NL3pm?= =?utf-8?B?UXdLbFMrMEtFZ08xK3BPNTNuNzFCVDU4dFc3Y2RQSjFSYlVacDBqSUhWWFdl?= =?utf-8?B?K1BXbTVieGxxZEltS253SExHMm1wVFZuMVdxUGdQbjYwaE1FZy8valVPZVZC?= =?utf-8?B?dEdvSTdwOS9hZE1iRWJzMXgyR1p3MTZieHM3OGhDRnVvWENxTkpHWCtKeWtP?= =?utf-8?B?b1RmVkRHMGhETTNtK2dmcUZuZjhtVGhhOExoTGRpbnZ6UWp4WE16Qm5GSE1q?= =?utf-8?B?SlB6MXpETE9VNGhhYUZYU0JDVVpSM3NMQ1hVUkFhekRPNUordjNaS1NLRzg3?= =?utf-8?B?bVdReUtTc08zOXJSTnZNbkw5cVdlS2FTWFBsYnRNUVYwWThSemswZmJYMUhO?= =?utf-8?B?YklIR1U5a1BrS1dUVlY4TWtSdXZMeGdiZTJoaEdvN0FNQUlkUzg4Y0w3Q3BZ?= =?utf-8?B?ODY1eDFCSDJyaW1SVHlmZGZ2S0NVbnFTUzF2N1ltS2NSOVYwMXdiVTZ6Q1J5?= =?utf-8?B?ak5nSXduSk9ubTQ2YTZWenpKeWZFaWcvay8ybXFpejlJKzdtZTgvT3pBcUYv?= =?utf-8?B?WWtKQ0lIRWJZV1lNcU1zM3FSSzIrMmtaa2V6ZXZsK1BJTkRpSklISDlPQnlC?= =?utf-8?B?a0doU0s5NlZ4eWc0d2JtcVM5VWVQVGxrWldHZGtZZlBvNkZicVVORnhuRWJ5?= =?utf-8?B?aXdBQ2FIT0dSVVVpaDFzUXpuRENxdUJFUVlvYTNSQnh6SHNUMHpyUUtzM3Nt?= =?utf-8?B?S0NlbjV0eHB1MkxkRk9rSGRYVlJaYm5KN2FnRUsyVUtPcEg4K3lXaDBnWk81?= =?utf-8?B?bU9ya2YwQlNYdVExNmlOci9XNEtmV0VwY2p3SDJvcVJMZUpMTGQvN2ZmV1Zz?= =?utf-8?B?UlNmZVRpOVBLcFpWNUNGblNSOUgxdHpXVU5tR1JoYm9uTzlWUEZhUUxIVHdU?= =?utf-8?B?M1BPY1h3Yy9KMU8zQ2V5cmtpRklkRjJRSEdyUSs4YlFJNVFUSGRzN2FGMlJY?= =?utf-8?B?VGpxMFQzTUlmT2tJdmpaVkNXTjlpRHc3MEJXQnQzdXA3TCtRUys3REMwOFVk?= =?utf-8?B?MlIzMkxXL3ZwMVV2bmNrYjMySVUwbUpKVUQ4NEg4MVhwb1VSanNJZXNWMHNH?= =?utf-8?B?NU5TWStNbjcrUlIzMDd3THlsR1NkZnpHTDRkdEtmMmNwUmlzYWFhMHU2dGFh?= =?utf-8?B?YjdhNnRGdTlWWndMTGJDZnhadklCU0RIV3p6YTRMZURtemRIWElQWHM1WkpG?= =?utf-8?B?RXNhNnJFL0sxKzNBNEZmQmd1aFRXN3FiOGdidGVSVW44UEE4bjhocGRsTm9o?= =?utf-8?B?U3JLa2F5enkvblE4UWhOQXVyNjNoTnFyS1VWQU5BakVpWjBMWjhYNzRpcnQ2?= =?utf-8?B?aGs1ekhveDdRa1ZSTDBXeWV4K0prZjdOWnpjdTdQeXorbkZ1R2VxRTZmMTNX?= =?utf-8?B?Tm5sdThiQjZha0FjKzN6OFVpVUMwT003N1BidmZHQ0dQbzVOWjVBUDVlaHp1?= =?utf-8?B?eWFtVEZjUW1wem9NOVExc2N0Zy8zVFI4L1pMVTdNWHB6VWJTVnI0RFhsOGc1?= =?utf-8?B?R2ovdDV0d3MrQURNdkFZcHdnOEs4cWhnQjBMZDZpYnVWMnp5enc1OUNGQVV1?= =?utf-8?B?Ym9kaGh6U25ZM2hMcnhQN3lVYWhXTXk2QlhOaHNDM202OGY1eGlDU09WTmZu?= =?utf-8?B?UjAwM0d2WUwzSUlLd09qTm5Hd2F0U0NTMkN4NTJvYUcxMkxaRzBjV0lKVytl?= =?utf-8?B?ckFWVE9YTnk1VkU4SzJFYkh5TXZvNEJSWFdOWnFqS3lIcEFIU2JTaVp2UFR6?= =?utf-8?Q?H0/8FgX4qyHeRaWs=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 526a810e-d79e-4ca1-3f83-08df1ef152dd X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Sep 2026 12:49:53.8020 (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: vgsaYl7tElOtu6MjKOs6+XsCgGpYlUMmKLRZI43vjZCnJmpeSyegFfgYCa64Herr4UhvkUNmjPwzrv+JEfBF/I22yUwegemdEbRhuL63i5A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB9898 No real findings from Sashiko Ack, applied to hci-dev Andrey On 9/30/26 2:17 PM, Denis V. Lunev wrote: > Backup and commit re-query the source block status for every task and > size a task by the copy buffer, so a long run of zeroes turns into a > crowd of small write-zeroes requests. This series reuses what the > up-front scan already learned and lets one write-zeroes task cover a > whole run. > > This is the series posted upstream as v3, all nine patches with > Andrey's Reviewed-by: > https://lore.kernel.org/qemu-devel/20260929155125.3151111-1-den@openvz.org/ > > hci-8.0 carries 6b1a4754713 ("backup: skip copying unallocated for full > mode"): sync=full runs the same up-front scan as sync=top, drops the > clusters the source never allocated, and keeps skip_unallocated set > afterwards, taking the block-status base from a separate top_mode flag. > So the upstream cover letter case, a mostly unallocated image, is > already cheap here. What the series buys on hci-8.0 is allocated zero > clusters, the ones a guest write-zeroes or detect-zeroes leaves behind, > in sync=full and in sync=bitmap, and the commit job. > > Where the port differs from upstream, 4/9, 7/9, 8/9 and 9/9 say so in > an "hci-8.0:" paragraph: > - 3/9: only a context conflict. hci-8.0 lacks upstream a6c131217d, > which adds coroutine_fn to commit_iteration(), so the signature stays > as it is here. > - 4/9: iotest 124 expects a sync=full target to keep the source's > holes, since the unallocated clusters are skipped rather than written > as zeroes. > - 7/9: block_copy_status_base() keys on top_mode instead of > skip_unallocated, and the scan uses it too instead of computing the > base on its own. > - 8/9: sync=full stays on block_copy_reset_unallocated(); only > sync=bitmap moves to block_copy_calculate_zero_bitmap(). > - 9/9: 6b1a4754713 also made the 056 copy-before-write source read as > zeroes. One widened write-zeroes task now covers all of it before > speed=1 can hold the job, so the test caps the task with x-perf > max-chunk. Andrey, the 4/9 and 9/9 test changes are new with this > port and not covered by your upstream review. > > Every patch builds on its own. On dev007 with qcow2, iotests 040 055 056 > 124 129 141 185 219 257 image-fleecing backup-discard-source > copy-before-write commit-zero-blocks iothreads-commit-active and > migrate-during-backup pass. vz-kernel-cbt fails there with and without > the series, the host kernel has no vz CBT. > > On the same host, a 16G qcow2 source holding 1G of data, raw target on > ext4, counting block_copy_process and commit_one_iteration trace events: > > before after > sync=full, 15G unallocated 1024 0.44s 1024 0.44s > sync=full, 15G zero clusters 16384 0.66s 1032 0.46s > sync=bitmap, all dirty, same 16384 0.65s 1032 0.46s > commit, 15G zero clusters 32768 2.84s 2288 2.70s > > Commit time is dominated by copying the 1G of data. > > Denis V. Lunev (9): > block/commit: pass BDRV_WANT_PRECISE to block-status #VSTOR-134085 > iotests/040: cover large and fragmented commit runs #VSTOR-134085 > block/commit: batch block-status queries #VSTOR-134085 > iotests/124: cover backup of zero clusters and holes #VSTOR-134085 > block/block-copy: don't reserve memory for zero tasks #VSTOR-134085 > block/block-copy: extract block_copy_set_task_method() #VSTOR-134085 > block/block-copy: track known-zero source clusters #VSTOR-134085 > block/backup: pre-fill zero_bitmap for full/bitmap #VSTOR-134085 > block/block-copy: coalesce write-zeroes tasks #VSTOR-134085 > > block/backup.c | 94 ++++++---- > block/block-copy.c | 309 +++++++++++++++++++++++++++----- > block/commit.c | 59 +++++-- > include/block/block-copy.h | 5 + > tests/qemu-iotests/040 | 102 ++++++++++- > tests/qemu-iotests/040.out | 4 +- > tests/qemu-iotests/056 | 3 +- > tests/qemu-iotests/124 | 350 ++++++++++++++++++++++++++++++++++++- > tests/qemu-iotests/124.out | 4 +- > 9 files changed, 830 insertions(+), 100 deletions(-) > > > base-commit: f2f4b3de1a1be3360a77ca6ab79762466d238804