From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11023124.outbound.protection.outlook.com [40.107.162.124]) by lore.virtuozzo.com (Postfix) with ESMTPS id B8D378015D for ; Tue, 8 Sep 2026 01:07:51 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=i7dF/56j0Xki5h3SC7bs5V1tI+ZUHAYazrukk4sZgMyDIfRm6JOttb75XlMb4vILAb7Mkn2PWKlVyrhqlHNzle3DvoT7P8zXW1APsx08+ZpRij61Db25rVSy6e5O7JByLjV9+30G7wGoBVRvIVDbezJOtpuAX8rG2IgiCS72KsJ9QVIysw0xMCkHAgaNr3ldVMg+gHjIwq745gZvYn9RdBdqKEOpXXm4bagf+xxxEldS7xm3f6slmmLAvJoAecHNXi/Vm6xmfdhCDZ/U1KTs9haKkK1v80z9nJiXXSN0qCdx3AyXzhi9tL+MxdKx8TmJ8Wvvlfqpel7C11ovWc1YyA== 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=B+4jZzimlozpLpXGfpQ93HoG7QlrhmbcA6smSD9+ThE=; b=vb1+R4Osyh2gkmS8gbiIRjN3bZoqY6MNIq50Xct038k+YotaWdBMOgRal7qIA7BG5pb5RY3XkTdv7Bhs9HP/qS5ksWivRU9eZRx24+Xws37pm9Dx20Lvkit7GUOwhr99wDlJ1v2EoC5XzTyHfTf7a8x5ntddO5q7V7x02S5d7xsNk3/RjwbisgLeR26gAlhL2F1mUBsW/q1dpKgfuIfcExi8b5VMVcHdU/DVapAlzd8mEosM+myNprveGRg8cm2DWIaUuqYG74FJvDb0ZHQ60iLIHr6FQG4b99LPclddHFfveU77CxO+wzq1la7eg8Y2RAwvyw+Cgq2LNCSXKV51ZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 130.117.225.111) smtp.rcpttodomain=virtuozzo.com smtp.mailfrom=virtuozzo.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=virtuozzo.com; dkim=pass (signature was verified) header.d=virtuozzo.com; arc=none (0) 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=B+4jZzimlozpLpXGfpQ93HoG7QlrhmbcA6smSD9+ThE=; b=pMKVAgoi0XpwQlZchPP23zvWh/xE7FJLBXZYXofgA+ksbCYEyweSba6x4NwIsLTCp4Y6sADZhhjJzkn539foAEUH3ZqyJupMAwCVNwO1ICAviQTshdGwg5sSKE0CMY5OW3sHi7HgR/N+Y4zbDU6Srt4gWS5jSd7hzJXpVa8/klio4uhinWRpP/SlrQ2ZX2jEdlxFtd3ovXvTSzM8rJtP+JN5JcJtrHVqVMtnACw2uSr+gAIqBz3vMmS6C6F0W5OCgXzRjoe1BVZ284UvMfiIVyvYdNjSK2piu69vkIDgsuQ1CP2bdlY+M6pwjMgK7rZLx4VQVI6cGFgFmxuR61DGQw== Received: from AS9PR01CA0021.eurprd01.prod.exchangelabs.com (2603:10a6:20b:540::27) by AM9PR08MB6307.eurprd08.prod.outlook.com (2603:10a6:20b:2dc::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.6; Tue, 8 Sep 2026 01:07:49 +0000 Received: from AM3PEPF0000A790.eurprd04.prod.outlook.com (2603:10a6:20b:540:cafe::1f) by AS9PR01CA0021.outlook.office365.com (2603:10a6:20b:540::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.15 via Frontend Transport; Tue, 8 Sep 2026 01:07:49 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 130.117.225.111) smtp.mailfrom=virtuozzo.com; dkim=pass (signature was verified) header.d=virtuozzo.com;dmarc=pass action=none header.from=virtuozzo.com; Received-SPF: Pass (protection.outlook.com: domain of virtuozzo.com designates 130.117.225.111 as permitted sender) receiver=protection.outlook.com; client-ip=130.117.225.111; helo=relay.virtuozzo.com; pr=C Received: from relay.virtuozzo.com (130.117.225.111) by AM3PEPF0000A790.mail.protection.outlook.com (10.167.16.119) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Tue, 8 Sep 2026 01:07:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=MIME-Version:Message-ID:Date:Subject:From: Content-Type; bh=B+4jZzimlozpLpXGfpQ93HoG7QlrhmbcA6smSD9+ThE=; b=xYFrLLM6Nnys L5S0qMj8x5IjGzXRUHPusDPAE+hT9Mdf69JujlWHfZMCh2yRAcBfj1ag0FmcyLaoDyO+O/5de3Neg U+TS14UaLOeq9qAHL3Yxq9Db1ereZ/kMmMKlDvtZjej/6OrlN55M9cyl0oo3q0R9VG1fBmtnBcCtl IIH5sC9uCrwb87J3LOkR9XUeiDRkrbnl8iKcIEx4/OYKSAfAIlP58bf4ZoAahbtzm/Ydoc/5G/qT7 jU16WOULFEnxGIZAEMpLysUAIFRXqUIzlC2VVhYGUuJfl/tnodJ5GNjrnPiLgMwZJE+NTpfGaT4oW uEgOa8lbw6JZeEOjYv7LIQ==; Received: from [130.117.225.5] (helo=vz9-demens-1.aci.vzint.dev) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1x3kGt-00DU8a-0A; Tue, 08 Sep 2026 03:07:39 +0200 From: Andrey Zhadchenko To: svt-core@virtuozzo.com Cc: den@openvz.org, andrey.drobyshev@virtuozzo.com Subject: [QEMU HCI-8.0 PATCH v3 0/5] vhost-blk change backend setup Date: Tue, 8 Sep 2026 04:04:50 +0300 Message-ID: <20260908010455.249679-1-andrey.zhadchenko@virtuozzo.com> X-Mailer: git-send-email 2.43.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM3PEPF0000A790:EE_|AM9PR08MB6307:EE_ X-MS-Office365-Filtering-Correlation-Id: 0d1c26c0-969e-4cc8-073f-08df0d45998e List-Id: svt-core@virtuozzo.com X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr 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|36860700016|82310400026|1800799024|376014|10067099003|5113699003|18002099003|57112099003; X-Microsoft-Antispam-Message-Info: eUdefxGADpwQf+9xLekEJQJUdgEZGsf+XMV2sMg3HyEr7oRiKbjJA+hLcybzji72ocZ5p/KTjHNghodqJZ264z0GBSz9VTIizyAl5Ny0Gzk6W23ITMsL3ISXFuECGoP96JEf3gsAwKoTVH0/kbfDt6teSPICE/3a9y/YI7WTXxZPpuiBcfXtHGLv1LfzjBiTt1YAY3AFkSRNpjVRXoYA08HVoV3+SxYkCfL02vY44ntS8ce6nodP0+QwT4NsCV9g9gAG4AxG27l1sqSuP0LjrTMHWdwmLZssoDrU0cuOKMOXqmCQzDoixpPtPUbfPYrI6dbpIw9GMy9n8rqUeFFnZEDptGAkkkwZrNCNsfo7yglNmtuiG6O+CNE4lDfCSa6DJ4HlL2tEXrzTdeam6dhWtQrkwD5wJfvzKYTFeaiyAecYP8ZMiRgG7F1J2RGCZNkdSH0NuQ5ZbR71pzzcuABVEwIat6r6yYCAhWik0J5LfuXLrg/0QHttpOS+perFRuobeOWhdydh3+cvCkNmANDwgNNKPopyA5J/wS4hF6b3NGQsO9brQlCPd0YiyJC/mk5jopr0exbxkf8ppH4339+a82JwwyBI1itd/fE5syNmWD00ky+4WPESGaYkah5S7nlgmvwPSbbtg2Ip0OmqiqR7CukqGppTwMPZh0ucXfCRDTcZjWC9FZIMcgKzoTrjqwE3c1RFNBzqcUx8/XbHwp+Lbd1hTZ3RImSKnK5tJmVk8s+8pzZp6GXygrQcRFkVrDs5ZPTve9gUJVaqnVtvRCMyzJoRF6o49L/zmxZwTKhzYx/+iXp/Wh6B7sIGZJzFOy5ryglRQZLbJIxc4ZXrmiSxJ1z4jhkJeL8A0ZNmYz+krkmxHPgmx7cKXy+er1afMZOkH9Kgjyf7fHpja+qDHFV7PNE0QYJrIgjTD6uDgUipJt4= X-Forefront-Antispam-Report: CIP:130.117.225.111;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:relay.virtuozzo.com;PTR:relay.virtuozzo.com;CAT:NONE;SFS:(13230040)(23010399003)(36860700016)(82310400026)(1800799024)(376014)(10067099003)(5113699003)(18002099003)(57112099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: v/8qS578piS/RR2ErKBBctBuwEFMbtY/Jt4+6Ep+TUrU7r66xUNAHt3p+AohAy+sQYcw3i5I7UiYfRGF60jkNWO03TkG/eM+cD7bipfEkdD53IimgNA8BTJ20hCLz5fG1+TelAFIf5b0Mq4hi/BV54XTWDHQua+6Y7GqVKq7EUldOgz6bDlXhsWa75Ne0x2a6d8Lpe0XVyaJ3cKWr3klVczBkWV0Hqmwe8btkA1Yn8zTOj5Osoh0gIdBk8W8X/bXr9mFKxZMxaDa6OYamzGZJk1fYQZwtpSc83KoI5HhtXfXxZ7yTK7wu6lDyGEiWMQTzOOSr4EtmFAl6OgFPqPlBvNSKZ23L4hp5qgyuQC31rYg1dQ59AMtW4PbCRcg+UledPUXSgm5vEyIQ/kiZ1xjbVp3L0fTkpQHGrxW5D+5Lq8Hqb1w4ItLIycJWYWbompV X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2026 01:07:48.9792 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0d1c26c0-969e-4cc8-073f-08df0d45998e X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0bc7f26d-0264-416e-a6fc-8352af79c58f;Ip=[130.117.225.111];Helo=[relay.virtuozzo.com] X-MS-Exchange-CrossTenant-AuthSource: AM3PEPF0000A790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6307 This series changes vhost-blk backend setup from block node to a path to the device. Getting fd from block node was a hack in the first place. It looked ugly and broke encapsulation. Change vhost-blk to have it's own property so it opens and owns the descriptor. Patches #4 implement auto-resize by watching netlink. The descripor comes prepared with some filter from outside. v2: patch#1 - old patch dropped patch#2 - moved double close fix to new 'do not double close vhostfd' patch - dropped DEFINE_BLOCK_PROPERTIES_BASE exposition to the outside. Let's just use defaults for now. We can later check if tweaking this values makes any difference and add them back. - change vhost_blk_update_size() to return zero or error and move 'changed' to a separate argument - changed lseek to BLKGETSIZE64 (we already use BLKROGET anyway) patch#3 - check BLKROGET only if rw was requested patch#4 - rework patch a bit: now we expect opened and filtered fd from libvirt. patch#5 - old one dropped, setup moved to libvirt - added new patch to support uevent socket cpr v3: patch#1 - extend the double-close fix to preserve and free vqs after vhost_dev_init() clears dev patch#2 - make vhost_blk_update_size() return the changed flag directly - use ERRP_GUARD() for reliable error propagation patch#4 - accept a monitor fd name passed with getfd instead of a /dev/fdset path - verify that the socket is subscribed to kernel uevents - detach the socket after a permanent receive error patch#5 - use the proxy ID for the CPR fd name and block CPR without an ID - validate restored sockets and improve failure cleanup Andrey Zhadchenko (5): vhost-blk: improve vhost_blk_device_realize cleanup vhost-blk: change backend setup vhost-blk: add read-only flag vhost-blk: watch the device for resize events vhost-blk: preserve the uevent socket across cpr-exec hw/block/vhost-blk.c | 406 ++++++++++++++++++++++++++++++---- include/hw/virtio/vhost-blk.h | 11 +- 2 files changed, 371 insertions(+), 46 deletions(-) -- 2.43.5