From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 94A6D8017D for ; Tue, 22 Sep 2026 13:29:38 +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 68MDSFak018565; Tue, 22 Sep 2026 16:28:15 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 68MDSFak018565 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="t0BqF5+V" Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 68MDS51V018542 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 22 Sep 2026 16:28:05 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 68MDS51V018542 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-4886448d257so351569f8f.1 for ; Tue, 22 Sep 2026 06:28:05 -0700 (PDT) X-Forwarded-Encrypted: i=2; AKwUvBwMkEB+TpEeVVwPgH1VrHvNZG7TBiHtQcOe9Smk/bW8zGqsM/vEHLvvCz75mSvmXr5Z/YU4Ag==@openvz.org X-Gm-Message-State: AFuF++lw9K4DFgZWn57A0hhk0TpkhLXi2vjgk7uYLj6Z5As5SgOYZ29k HvydS5yv46lL6k7KDYf1VEMByL2lrwLDLTdDLMRHTzsLXa9zvRsnBhigH25cElQY66Evu1VsCNi C0Ud1pmtRSPjYHCG31xjj8NGLwW8ozdB1+8Vxz7z8XUaE/Be/EmXU+Q== X-Gm-Gg: AYBFou1WIPMfVD1Si3mNLh0HvOv50urhtzlz/RLuOSgOsTd4kNs/qiNaO38EM5nG6Sm RDHKV18OYrQAI8yvI3mTKwO62yNsVg4rbVPx2VX2+jCg5AnF59oJaMTRMuyY/vgFPZAsB7FuKIy Gc84uxIXB57fkkJLe+O7Wed/h0F1nZPqx+0sd1lG9lSs66bkIKqxbCxCM1TmuCpzmipfjxUvwjm T+8n/TwGCPKn85DzbQ9xYQWNzSNYAKryd/tIH7ZsfwCs2dp37pdkUlAPRL+8h0QtYHPan45Vp/i J76RLqtBwwcAgof1oMsD+0jf7zzisZvs3/9k6OvvRD3H9VYQdQzPMnDf0UfZ1LbdiaxwTzeGQy5 yzzEBB8UwSE27Yy5E X-Received: by 2002:a05:6000:2006:b0:487:13f:f612 with SMTP id ffacd0b85a97d-4871e261ae3mr20877068f8f.37.1790083685011; Tue, 22 Sep 2026 06:28:05 -0700 (PDT) X-Received: by 2002:a05:6000:2006:b0:487:13f:f612 with SMTP id ffacd0b85a97d-4871e261ae3mr20877028f8f.37.1790083684573; Tue, 22 Sep 2026 06:28:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1790083684; cv=none; d=google.com; s=arc-20260327; b=msY0Y1XUBiZLUahhT1Qd8vZCDY1KVtRpqYJa3mpQRxGOA3ryPnMvRXmq4Ccjha0lFs S4QCgbCmLNkiMt1gUeUa2PttN/pnbxCYNP/ikYcMiMLsWosf8aGzyjylsCU0dUiX/Rkz BkVocwWl3SuPn9eg1/JQnnqKBZVb3ELDI6CPn1Uc3Y+WMzdVxk+X+0EG/nvQ2RbEnirX FDqOCBkhe/mAQq1eAOJQtSHFdujAaVAzSctX2g7jTK6xdcP76FOZe1WOAt3SNod05/SJ qvBsYlgp8cROzfeihZQop0Ug8JRiLcTIyiW9x5Yht801RI4fI8oS1fLqwgAdw6z6WP3V 3dbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:dkim-signature; bh=EYSGZ+l+6rAnNonwYZJBWQJ0l70WkNqocPkJFcYWnLo=; fh=BDW6T6CuFQbm41G1BqO2dKDzz8FJj02xnNFn6Y/ysjc=; b=pX98y0dVOwRtQKo9+T/gOR521m03h4nNp1bgx7jbsAp4IOu1mGj2UyH6T49qkKng5O sMk8Z8Rpk/hEWn2e1Jr1raUrsglUbM+dSWD38omoFy6BM6r/KRU/vVjZgB8ZmA5DCJXW iOf8zeFYqbyLc6FaUwN0USdhgVW5Pfz5eq2rgbO7w18gyBh+r3Rsp3KYYDZa4+DmC5CN 3FGXVTliaOHmOSrGz8N3zHORi8GKWmo7qCetjGZolN8rZo//IXUJJmN8x7MGp6/NOzXv Ii+q+2LLkoEnDs4FLGltMFGrpJoc3EfrndLTyEnM4LG+RbbABR8ksQp9QmBQd02AXvuE D/gw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=t0BqF5+V; 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-488628cdda7si3305501f8f.299.2026.09.22.06.28.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Sep 2026 06:28:04 -0700 (PDT) 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=t0BqF5+V; 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=EYSGZ+l+6rAnNonwYZJBWQJ0l70WkNqocPkJFcYWnLo=; b=t0BqF5+V6fURfJTJfWO OxXw+tGV4iDBnVs93vV0SufptZKFW6uieCcQjBzvJvwf6viYttOK++hiZao05CuPB4E5qIrHS22jd v1h+wV+mTXTSCGdaPDVcpR26gbJgdUZE+vyn+VcgaTXCpIXJDkMwxc3wNaj6chRQ2ldQTmr4hzuWu 2GIOMXSWFvzxmgi/5R7OVQR845Ey+X1N4AZoHSnngqmKEOccwmvM5zFoMqkH/0knBpjE8fb0QWhWC 3+L9SMfFyD1of0ZI/+RxCx3vfOpP8nvkOGkKd8kanzn7+OK//VDICUpWtMr//H+UnisTf7ivEOPhu yguaLMxTOZVpVgA==; 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 1x90Ua-00BPyl-2P; Tue, 22 Sep 2026 15:27:54 +0200 From: Konstantin Khorenko Date: Tue, 22 Sep 2026 15:27:48 +0200 MIME-Version: 1.0 Message-Id: <20260922-pr-khorenko-vstor-145663-ext4-ms-v1-2-4dd83d495810@virtuozzo.com> References: <20260922-pr-khorenko-vstor-145663-ext4-ms-v1-0-4dd83d495810@virtuozzo.com> In-Reply-To: <20260922-pr-khorenko-vstor-145663-ext4-ms-v1-0-4dd83d495810@virtuozzo.com> To: Alexey Kuznetsov , devel@openvz.org, Konstantin Khorenko X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2083; i=khorenko@virtuozzo.com; h=from:subject:message-id; bh=9jPKetiTrrzaw0H8nGd8nVARrb8R047x4voSjDaRr6U=; b=owEBbQKS/ZANAwAKAVGWCkf5YVwqAcsmYgBqsoJjSiMlc7oTlNPWm7JSnSWZQdGjf0n+N6Yk3 5h/mq8jKsCJAjMEAAEKAB0WIQRWD23IPcXT0GO9CCxRlgpH+WFcKgUCarKCYwAKCRBRlgpH+WFc KmxDD/9Mt2e01oMDl5U1BO62AFMBrsm55oaiRueHWQKoL4RtsBX+xPxXYoBCF914HjVOexcphes 02u7HWWekuk/bB3bPNsC/1Aiv4/SDSfsixT+x8FkdC2QEDpRC0IfW41Yy/8SAsF3bnxs3aVDZgu 2soC5CUismXaqhatpEWi+6LJNWyPjIOACX/9uARzbQ/5YhjxBfRLd6j4/LRmoOP5Lv0MKgj2SFr 2ReNZOLMdzfRFt8kfFspfmnFKXYWgoXK+e47tjrsnrFUnpL2Z8e6NKXHrWcpPtXhBGj0mb59Wp5 dOlA9tiMMR4xRR7ffZVags5R2i4hCprFylkyu3iK+byCDv3coWFByciul3iwbQeyxMkkDcptlhn TnjlKLMbLYaSbmAuSOBsfVjWA4INpywVsXaXCAnwZk3tzQO9kjGqi0ZBb2qks2Od+ehVaUL1IEU HX1GXOPovLd2IWquSIldtbMrwBp11Frh2+OuYuUVrWIN332C2ltS+0BIy2vCseSsVTyqRKoGeUI StzQCAhEDOP5qXx3gMZR60/M3riourigaxVuDcjC4aa1DZ6dm+S4TaQtbVmfVz+1PTeXQecdKnp zw4g7kOruelPKpMpOOBtAKBZJBT+RunE5GRf4/0S2i8oGXU9wmj1p9NKyQiJS8AtzlyQbiIZePR 7k7nhBMBl9NEDjg== X-Developer-Key: i=khorenko@virtuozzo.com; a=openpgp; fpr=560F6DC83DC5D3D063BD082C51960A47F9615C2A X-OZ-Fwd: true Subject: [Devel] [PATCH hci-8.1 2/2] ext4: avoid RWM atomic in EXT4_MB_GRP_TEST_AND_SET_READ 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 From: Bohdan Trach EXT4_MB_GRP_TEST_AND_SET_READ uses test_and_set_bit function which issues an atomic write. This can cause high overhead due to cache contention when multiple threads iterate over groups in a tight loop, as is the case for ext4_mb_prefetch(). We have seen this to be a problem for Kunpeng 920b CPUs which uses a single ARM LSE instruction for this purpose. Avoid this unconditional atomic write by testing the bit first without changing its value. This is OK for this use case as this bit is never unset. This change significantly reduces costs of fallocate() operations which trigger linear group scans on large multicore machines where test_and_set_bit issues an atomic write operation unconditionally. Signed-off-by: Bohdan Trach Reviewed-by: Jan Kara Link: https://patch.msgid.link/20260615100331.163997-2-bohdan.trach@huaweicloud.com Signed-off-by: Theodore Ts'o (cherry picked from commit 0e364a030229b3b06b858dbe4b7412d87d9d86ce) https://virtuozzo.atlassian.net/browse/VSTOR-137147 https://virtuozzo.atlassian.net/browse/VSTOR-145663 Feature: fix ms/ext4 Signed-off-by: Konstantin Khorenko --- fs/ext4/ext4.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index bf7637785e073..3fe70a19e2a79 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -3513,7 +3513,13 @@ struct ext4_group_info { #define EXT4_MB_GRP_CLEAR_TRIMMED(grp) \ (clear_bit(EXT4_GROUP_INFO_WAS_TRIMMED_BIT, &((grp)->bb_state))) #define EXT4_MB_GRP_TEST_AND_SET_READ(grp) \ - (test_and_set_bit(EXT4_GROUP_INFO_BBITMAP_READ_BIT, &((grp)->bb_state))) + (ext4_mb_grp_test_and_set_read((grp))) + +static inline int ext4_mb_grp_test_and_set_read(struct ext4_group_info *grp) +{ + return (test_bit(EXT4_GROUP_INFO_BBITMAP_READ_BIT, &grp->bb_state) || + test_and_set_bit(EXT4_GROUP_INFO_BBITMAP_READ_BIT, &grp->bb_state)); +} #define EXT4_MAX_CONTENTION 8 #define EXT4_CONTENTION_THRESHOLD 2 -- 2.43.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel