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 B6507811BB for ; Thu, 5 Nov 2026 19:18:39 +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 6A5JHM23008199; Thu, 5 Nov 2026 22:17:23 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A5JHM23008199 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="Lgk7zt3T" Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A5JHKD0008195 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Thu, 5 Nov 2026 22:17:21 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A5JHKD0008195 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-48e0af48c18so1780702f8f.2 for ; Thu, 05 Nov 2026 11:17:21 -0800 (PST) X-Gm-Message-State: APuU4Z8Q4s4r4sbaNJxHwGFAu3Ch40yQuplCdJrln7EUHIVPVa/ILge7 UWfN90NTLYg/Qf++wYj6lpHLuTNfWEtpOefVOw08MbeMAOkMAsngsLtVD8z3V6xiWitB/dS3YuR +G86o+uDsA6HgM3IYJAIuteeP3kYNtiS3jEBQA5brAOH560Of7eiyZA== X-Gm-Gg: AYBFou3EM782H0Jr6H2VHdVkRVArV52zSEis0ew5K5CITBhMKg3nfWiT9liLB+KjGw0 euWShEtMf6G7+WLxd4twjZV8mFizh7Z4zhOIo+HuAk8Rl+RXwzEFTRf9iGZeylj2y1AXADBF4bO 8mPnEdubW7FkeDUUqZyJYHXSsArq8UHcJxM28ArvZXljZZpVWYWf93L2hdMW5xEhAgpr/aPWX1g 1NzaRPQ1DrkMF2VFrSgwsxQvwkd11V7gQSDVU4G/iQzOLvjwtKTCs0wdWn/VQ60OpQZdrB1oDmZ 32CHPmrdmiHD0uiV53C9iSp4smZctxANLeGbuH9xX1sbyHvrJjtCHwro7DCXacEkSp9lSJrgjTf hBxcYau5IBweBKqcxjQ== X-Received: by 2002:a05:6000:25f3:b0:48b:1c:d6e1 with SMTP id ffacd0b85a97d-49277abcdb7mr977598f8f.43.1793906240352; Thu, 05 Nov 2026 11:17:20 -0800 (PST) X-Received: by 2002:a05:6000:25f3:b0:48b:1c:d6e1 with SMTP id ffacd0b85a97d-49277abcdb7mr977551f8f.43.1793906239790; Thu, 05 Nov 2026 11:17:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1793906239; cv=none; d=google.com; s=arc-20260327; b=lXdljjbihwwlz/r7m2qLUNNLOhfQynEMfIA/zelmYhUg0/qzY2r97BbJZO0TlY9gN4 CeAhHiOvLLG/36BmY5PgvXc2sSMoTUdYTUkPyKEOlaiUrMJcN/9U3lz8YcCLBvvvNMw2 MQ6mfZ0TMPv676/MSdH159AiXFq3EgR2Ibq0evkfiZAlbOSPV+Hd40+j87ylZmYODQwD qp8SwODbsKz5VF9BS6sMMdmzBwV7ZYkZ4b7KDfel2eZ2eCn7d9dNkMmQnr5Q9ov8JliE GIB5y1C4RAgTURzJkJWGY0TGffcJttQn0LOcjKzsjr+KUseAAf2azSVZp06Ci0DWHJLg HXmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:dkim-signature; bh=7SXors/qRcWP1KLmhr666X/llCcAlFS2/f2tG7bpIkU=; fh=p2lLwtdvqOM4J4FZsliumHbmUSXeJaYPo7ev5Si7XDc=; b=pstvWSZbPhZQvK8i7GKw943B9UJdaXZfkN6lpgmCsrNVDdTnThj3eAykm4uFshGFeN w+xk967BLH4boysuNysDTSfqcXxkjtNiBEeSmOhpvk7zhusNjSNoy/4dqr4g/FihDeJX 29P0BdgYR0gsA4uFPMvIx0IlywkPksyI2bg3uZMB3ha0HWvo9QkKw6Q6QaEuaKJe6oPS cuNGOX9/DJzFDhBQRfbJh4N/U1rI4q5MgII7Y0mUsBAfUlBidddij1tqrbjyYJanRjP5 M+qUs7IKCrFX1GyqidKBNqIlEpkbRDhHqbUGEfOoG6ZG/1l0sKqDvQkIB5XP/jwidA28 9iow==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=Lgk7zt3T; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48fed272de7si11381770f8f.47.2026.11.05.11.17.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Nov 2026 11:17:19 -0800 (PST) Received-SPF: pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=Lgk7zt3T; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Message-Id:Content-Type:MIME-Version:Subject:Date :From; bh=7SXors/qRcWP1KLmhr666X/llCcAlFS2/f2tG7bpIkU=; b=Lgk7zt3T2kpgXT+qIqc w5QddDQaGtrHVGcfpGFLjdoXBoCtVE2RwihcWsqK0bKyoJRn/GTmrryeytM8gnwNieyy+dvvjSew4 SWetfTiSMzwIS3WY1pALVJbvNeUgoJqNfLZsjur/W7KZr7NHciCQUWmkqtxKCQuwJwp/lSLRe0pma 8s7+xU21ZTZNX+3ltUbbUaT0lqhzMMYRWQMua5MFZYNaTTWW3vgP5gNDAXGk4ekpAXLW91Mg/UO9k reBhD+mN1gL5oiGh+Qv+Qe7jhyUzXY7g5LIaPZUIB2cY6K2wZuqMPBC8p3kBFfIqwOOpYZ6XGNu2i 7ZJGvBieUER4hfg==; Received: from ch-demo-asa.virtuozzo.com ([130.117.225.8] helo=f0.sw.ru) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1xP2tc-007nPV-1q; Thu, 05 Nov 2026 20:17:16 +0100 From: Konstantin Khorenko Date: Thu, 05 Nov 2026 20:17:17 +0100 MIME-Version: 1.0 Message-Id: <20261105-b4-prep-khorenko-vstor-153709-dm-ploop-drop-the-lock-of-local-md-pages-v1-1-82fed22d5591@virtuozzo.com> X-B4-Tracking: v=1; b=H4sIADzW7GoC/yVOQW7DMAz7SuHzaFhe0rT9yrCD4yi1lzQy7CwoW vTvc9aLKIoExacqnCMXdTk8VeYtlihLJfRxUD645cqIQ+XKGnskMi36BilzwhQk8zIJtrJKBrW fnTljuCHNIglDrmMNjFn8BBl3dDNuA5K7ckEz2tb5rjudbaPqs5o5xvt/kS8VfMRJk/p+C+W3/ 2G/7jV2a+8Ko89u8WE/vTfkQAZHTVYbWCLdWk3aWn3X26Mqsj3U6/UHMp3zB+8AAAA= X-Change-ID: 20261105-b4-prep-khorenko-vstor-153709-dm-ploop-drop-the-lock-of-local-md-pages-4f25ac778924 To: Pavel Tikhomirov , Andrey Zhadchenko X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2893; i=khorenko@virtuozzo.com; h=from:subject:message-id; bh=eFrbY8gFx7/EzWKIH/LHpseHsg9uIuYgYtbB5z97Ux8=; b=owEBbQKS/ZANAwAKAVGWCkf5YVwqAcsmYgBq7NY+9D/27k+BHavvQlBUkyG2ij0QdjolVffM+ TLWScTxikmJAjMEAAEKAB0WIQRWD23IPcXT0GO9CCxRlgpH+WFcKgUCauzWPgAKCRBRlgpH+WFc Ki5yEACiA4Xx7m+LJXAhlVHJWT2PNLkHQ1MelmhRrw99x5npN5JMRAUmyDLmilIV5Xj6xvhmKK5 JlWpFWwxXKF0+zV2NfGgHM01OMDzRC6By8G3IFklWoMjbMzFHZOIqQ7JuMezWPbAqVnB88Zc2do mowIUckcde61EHkY4MfC1/HZOMZlnDQNcG2GSWuOLSLhtYy/zjMY9/ThXnxwTaHbNQwuazzcrGK A5fhpRBBNpZsx80STPtB6jECYGbeqwjWcZ1Stv1AakEcldbhk8m/2XR6oIeHpPwkEKbTN8fMgAE elJ+zea7OCSPDeWOkDFyrbFwqoGCSoD00/EN/E3hvE/rNyItvkPqhwNiE6rAX5IMDzIrUDD/wsi /1Mik4dsf9tEF2MqXrSMkKcf52bgBWYsqgPFHx4eJp0BrFDQK15T4bRYvD8muQBOcZvbgo0NHuA wVoaanHngPEeu1g7S9SxFNYDei+JeLe5au7AKm9rwvgK3vywUYAKgMpFUdKgCeGEybk5KCk7KI5 F9KfLp5CbzE25NnftUTTABTw/LSG9MJlUzkDSdImW/Br/Pcb9EKI7iV2Y6QQyPt6yZVo9rfIvlJ ZnHVo0tgpa0JbphyAzBUJgF6O+JPj7sbDNzgFPzskhn4RJmY50zED3GhHxiNUjS7vsdEhZgDrCd igw3AKKOy8WYDkQ== X-Developer-Key: i=khorenko@virtuozzo.com; a=openpgp; fpr=560F6DC83DC5D3D063BD082C51960A47F9615C2A X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1] dm-ploop: do not lock the md pages of a delta read for a BAT walk 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 notify_delta_merged() and ploop_check_delta_before_flip() walk the live BAT together with the BAT of a delta that ploop_read_delta_metadata() read into a local md tree. For each page they take the md_lock of the live page and then the md_lock of the local one. Every md_lock is initialized in ploop_alloc_md_page(), so both locks share one lockdep class. With CONFIG_PROVE_LOCKING the first walk reports "possible recursive locking detected", and lockdep turns itself off for the rest of the boot. Only the cmd that read the local tree can reach it, and it frees the tree after the walk, so its md_lock protects nothing. Stop taking it. https://virtuozzo.atlassian.net/browse/VSTOR-153709 Fixes: 0d4b4d0a20a9 ("dm-ploop: introduce per-md page locking") Feature: dm-ploop: ploop target driver Signed-off-by: Konstantin Khorenko --- This obsoletes "[PATCH vz10 10/24] dm-ploop: annotate nested md_lock in ploop_check_delta_before_flip()" of the VSTOR-137234 selftests series. Pavel pointed out that the SINGLE_DEPTH_NESTING annotation works around a lock that is not needed at all, and that notify_delta_merged() has the same problem. This patch stops taking that lock in both walks. Assisted-by: LLM --- drivers/md/dm-ploop-cmd.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/md/dm-ploop-cmd.c b/drivers/md/dm-ploop-cmd.c index 2d1fa449b052d..f6135e07c2737 100644 --- a/drivers/md/dm-ploop-cmd.c +++ b/drivers/md/dm-ploop-cmd.c @@ -812,7 +812,6 @@ static void notify_delta_merged(struct ploop *ploop, u8 level, d_bat_entries = d_md->kmpage; spin_lock_irqsave(&md->md_lock, flags); /* write */ - spin_lock(&d_md->md_lock); /* write */ for (; i <= end; i++) { clu = ploop_page_clu_idx_to_bat_clu(md->id, i); if (clu == nr_be - 1) @@ -846,7 +845,6 @@ static void notify_delta_merged(struct ploop *ploop, u8 level, WRITE_ONCE(md->bat_levels[i], level); } - spin_unlock(&d_md->md_lock); spin_unlock_irqrestore(&md->md_lock, flags); if (stop) @@ -1147,7 +1145,6 @@ static int ploop_check_delta_before_flip(struct ploop *ploop, struct file *file) d_bat_entries = d_md->kmpage; spin_lock_irq(&md->md_lock); /* read */ - spin_lock(&d_md->md_lock); for (; i <= end; i++) { if (ploop_md_page_cluster_is_in_top_delta(ploop, md, i) && d_bat_entries[i] != BAT_ENTRY_NONE) { @@ -1156,7 +1153,6 @@ static int ploop_check_delta_before_flip(struct ploop *ploop, struct file *file) break; } } - spin_unlock(&d_md->md_lock); spin_unlock_irq(&md->md_lock); if (stop) break; --- base-commit: f0cff9cebdb0d481d05b02bdb7bdafe864adca1c change-id: 20261105-b4-prep-khorenko-vstor-153709-dm-ploop-drop-the-lock-of-local-md-pages-4f25ac778924 Best regards, -- Konstantin Khorenko, Virtuozzo Linux Kernel Team _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel