From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (mail.openvz.org [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id EEC408045D for ; Tue, 3 Nov 2026 08:38:10 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A38alPv002557; Tue, 3 Nov 2026 11:36:48 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A38alPv002557 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz.org; s=default; t=1793695010; bh=7BFPhSxfMJ7QilqxRD2haB5Su8sPhAOt5JG0jIqIlqA=; h=From:To:Date:Cc:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe; b=covXJQXS0ZYbe2qjR4Bwb3nZUUuHvGRCl1TxaELRj1XonJSGMeWE5NyHI5bNExf7b qQ6ABaUusEwDoybCFsOfjSxe1iJKV+o3UDLfLlsuyEGrYKK/9jo2roR00crbjqKDpd Wi78hWLu1v2yJ6PAA9cEelh0ay30VR6kbfRg1t27cz2h8bJ38ZlyXn5F5P5tTSdZmw H1IKQhziSRX/zplM7m5smx6T1bVDiMMTFTCcZ3VlMHDjUu/mjxn7cfZ9xFP9uGCv1O hP98GVdNaAKktQvyir8KwEcV81Z5i3YWnuG4Tp+ob3/V7sh+bH7vMgPRymzKNIaqWY aXzcb9o865X2Q== Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A38akWj002553 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 3 Nov 2026 11:36:46 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A38akWj002553 Authentication-Results: mail.openvz.org; dkim=pass (2048-bit key) header.d=openvz.org header.i=@openvz.org header.b="lCBSqI8Q" Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4b0a307487aso9470015e9.1 for ; Tue, 03 Nov 2026 00:36:46 -0800 (PST) X-Forwarded-Encrypted: i=2; AKwUvBwNAtNu9pl0wQHexwBgkR/zqJO38c+H8zY1t1VpcxVy4QZnh9xfBTabb0Js3mK/0a4w0IQKaw==@openvz.org X-Gm-Message-State: APuU4Z/SY9QTnHVy5qZ+KaD2Mss2X4UTA6tu9+mSQeg3+QTTSQYwUuId KwWtHQvl+knqt6yXL48kRBTbH3ckPZ9YDwB1zkzIP3wW8QPkQhtwMzLqZLDUvTmRMOFutvBxVIM J5IkaUtbvmSSovCzp/cTRCSUNeCMDPkOXitJsDyLTW/mJYfGzHQGCDQ== X-Gm-Gg: AYBFou1wo7CE51kUWrCCyiTp8rki7xnrnCfMDHtsMJY3MQZ93NNJU3LK0WOWX2AHcUr CuQqhZDsbrncJipWyiHZXeh3i5rb9xj/hkJ0Sy+iRarQHfsqJUVZYnFXjKg0iOHUSL0V1Cw4HxW Jz/0XKz/QlJHIMk2HtLcAgLqs4onoDn8w7zWebrBhV0UXgjV8BOUoUpkbgkglvkEdUa6d/UpKBj y/nwxrpOQRV2SNGcBLJXber6AtZIzFwS84+tIp9DAFKEkMCxf7qHhAC9mw9Sthk7bDX4TR/vZcx ZvgRxpuc+A== X-Received: by 2002:a05:600c:3b29:b0:4a2:167a:c939 with SMTP id 5b1f17b1804b1-4ac17d19aeamr256645555e9.21.1793695006087; Tue, 03 Nov 2026 00:36:46 -0800 (PST) X-Received: by 2002:a05:600c:3b29:b0:4a2:167a:c939 with SMTP id 5b1f17b1804b1-4ac17d19aeamr256645015e9.21.1793695005610; Tue, 03 Nov 2026 00:36:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1793695005; cv=none; d=google.com; s=arc-20260327; b=BLLbwiI/MEqT77x8/WRYT3TPcaLOe4KiSM88cPWVNer61r7dc/LSMi2eAebwXPO7aw bbHLKZwRv0qfrupyHbLxkCQ73Q8mqcnlT+L8Zde4bEnPOK7cQK1KxLzJQ9xsh6rRckqT lwb1dKpaeeq5hK21n7Y+b621bSnc1c2ga4YLpvLhlBeQ8nLepqpXXEbZtqVE869KNV8q OllXV9GxFae/No+4vQygWGB0Rdtu2JVBEj17nSTRJ4HZq7kZo8SaU8fN74OXKJtdHsCv R2xeeh3osRQm/f2rhmkTQdkFhmhaUKeu1ttcGQlf+12cHClfBCQB79gHtPq5xS3Dnagw DSxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature; bh=NQjRFV+Dk4a7wqOmHcIH6dPkPVRy4jhYDuA54uOeWeA=; fh=2d3K/Wxaq6BwHIuA53SUoy+t1/rWV60IS4n3wym/mhQ=; b=WJR1FREbwvaePp6RED/nbywsZizKPka7GExVkuNJMREfee+XKyweXdX1qFOV4IouIb E3Xowcc/VZUWhqS651aoTG+sZT50/ckQhvTuisz4nygdIi1Qg76mVwMV+YJYU7yrLJQp xf0X/8XWrEaV8VkW9dAnwUlOfGo7VQtPz7ehT1LXoGqGBaveRpZrOiEWtkeoBvhLR3AQ 4myja/5wk23VATJ7dF+wKk8t34pJVPag1Q8fOE/dm1LCGBEQLFbsAEN9Zy6gj+dU8/xr qIPLEzey/u8FHOTj9lHET6h7i4knjYU/eb+K07fSp2eNrkknY3rkARCXogctm/lLLzF2 QVMQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@openvz.org header.s=google header.b=lCBSqI8Q; spf=softfail (google.com: domain of transitioning den@openvz.org does not designate 2a06:5b06:b600:300:c789:8bc5:fa8e:d502 as permitted sender) smtp.mailfrom=den@openvz.org; dara=neutral header.i=@openvz.org Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id 5b1f17b1804b1-4b2aebb5b6fsor3715055e9.2.2026.11.03.00.36.45 for (Google Transport Security); Tue, 03 Nov 2026 00:36:45 -0800 (PST) Received-SPF: softfail (google.com: domain of transitioning den@openvz.org does not designate 2a06:5b06:b600:300:c789:8bc5:fa8e:d502 as permitted sender) client-ip=2a06:5b06:b600:300:c789:8bc5:fa8e:d502; Authentication-Results: mx.google.com; dkim=pass header.i=@openvz.org header.s=google header.b=lCBSqI8Q; spf=softfail (google.com: domain of transitioning den@openvz.org does not designate 2a06:5b06:b600:300:c789:8bc5:fa8e:d502 as permitted sender) smtp.mailfrom=den@openvz.org; dara=neutral header.i=@openvz.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=openvz.org; s=google; t=1793695005; x=1794299805; darn=openvz.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=NQjRFV+Dk4a7wqOmHcIH6dPkPVRy4jhYDuA54uOeWeA=; b=lCBSqI8QNHqL0T6fyVGLBNIVe1bSaU9zjd+XRFx6nEJFhXPQbqmkPzgQq9b1/OpE4q Vk9sbps21CGVfqL0QewyhE3JKoDVLikfbeA6edULYB+G44X9HxXyyj1bAqLBBtu4SGkK rSWdLqbehUAH8YcVTq4nJq3KM1vO7+oz9rYLPNGCg7uMAHzNTd6QxCdOKSZginO4fTMt TayNZbRe3FWSehoJLk0N8bMWdheH0559Xzskskq6A0ag2Lwx+GnTOCHpeY13GF4JZq2i 7I+UbWqf34TVcmicaQOWGq6IKRL4pqZ8vv+QHUjcIkHFLaeWKDqEPftAl/MQ/WIWeMtY Fc0A== X-Forwarded-Encrypted: i=1; AKwUvBz1CgN/x8xSw70uWM1v5GpphSqJWSCYYo82jNy2kYagZewKnkavi6GAcAWmBE/j26ju2rEAIA==@openvz.org X-Received: by 2002:a05:600c:4e08:b0:4a1:ce33:1536 with SMTP id 5b1f17b1804b1-4ac1719112emr271372115e9.9.1793695005193; Tue, 03 Nov 2026 00:36:45 -0800 (PST) Received: from athena.sw.ru ([2a06:5b06:b600:300:c789:8bc5:fa8e:d502]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48e71b72715sm23138568f8f.18.2026.11.03.00.36.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Nov 2026 00:36:44 -0800 (PST) From: "Denis V. Lunev" To: andrey.zhadchenko@virtuozzo.com Date: Tue, 3 Nov 2026 09:36:38 +0100 Message-ID: <20261103083642.130885-1-den@openvz.org> X-Mailer: git-send-email 2.53.0 MIME-Version: 1.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 0/4] dm-ploop: fix the pio submission stop around cmds X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org A cmd stops pio submission and waits for the inflight pios before it rewrites the BAT levels or deltas[], and expects nothing to touch them until it resumes. Konstantin found three ways this does not hold while reviewing the VSTOR-151979 series (VSTOR-152985, VSTOR-152984, VSTOR-152981): - a submitter racing the stop either runs without the cmd waiting for it, or is parked after resume and never completes (patch 1); - the ploop_allocator() thread is not stopped at all. It truncates the top delta while merge or flip moves it in deltas[], cutting the live image to the preallocation size (patch 3). The thread can also miss a wakeup, which stalls the device by itself and would hang the new wait, so patch 2 fixes that first; - a grow failing to copy a cluster resumes submission with that cluster's BAT page still busy, and writes to it hang (patch 4). Patch 3 is the one losing data: a snapshot delete under write load is enough. Tested on dev-cl04, stock 6.12.0-211.52.1.22.11.vz10, dm-ploop built out of tree: - each bug reproduced on the stock module, the races with a test-only kprobe module widening the window: a pio running past the suspend of a cmd; a pio never completing after resume; the top image truncated from 512M to 128M by a merge and to 256M by a flip; after a grow failing with ENOSPC on a full host fs, a writer stuck in D state, an unsuspendable device and a later cmd failing with ETIMEDOUT. None of them reproduce with the series; - fio 4k random reads and writes, O_DIRECT, 1 to 48 jobs, on a fully allocated image over brd: IOPS and system CPU stay within the run-to-run spread of the stock module. This setup tops out at about 420K IOPS elsewhere in dm-ploop and would not show a lock taken on submission either, so patch 1 keeps that path lockless; - the ploop pytest suite, ploop and qcow2 formats, passes. A test for patch 4 goes to the ploop tests separately. Denis V. Lunev (4): dm-ploop: fix pio submission racing with the suspend and resume of a cmd dm-ploop: fix a lost wakeup of the ploop_allocator() thread dm-ploop: wait for the ploop_allocator() thread before changing deltas[] dm-ploop: fix a failed cluster copy on grow leaving the BAT page busy drivers/md/dm-ploop-cmd.c | 18 ++++++++++++++++-- drivers/md/dm-ploop-map.c | 22 +++++++++++++++------- drivers/md/dm-ploop-target.c | 4 ++++ drivers/md/dm-ploop.h | 1 + 4 files changed, 36 insertions(+), 9 deletions(-) base-commit: 09eb9a82fe872048d082391415d1cdeda2ac6879 -- 2.53.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel