From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3FC46C2D0CD for ; Mon, 19 May 2025 13:25:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 59EEB6B00B1; Mon, 19 May 2025 09:24:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 54D266B00D5; Mon, 19 May 2025 09:24:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3A1CE6B00D7; Mon, 19 May 2025 09:24:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 174FC6B00D5 for ; Mon, 19 May 2025 09:24:56 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id CA4A61A06F5 for ; Mon, 19 May 2025 13:24:59 +0000 (UTC) X-FDA: 83459727918.19.EA5635B Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by imf25.hostedemail.com (Postfix) with ESMTP id B5F6EA0007 for ; Mon, 19 May 2025 13:24:55 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of chenridong@huaweicloud.com designates 45.249.212.56 as permitted sender) smtp.mailfrom=chenridong@huaweicloud.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747661098; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references; bh=fZPwp7IPYIa7P0vB8SS2IBM/Ezf6kGiDf7JDzAga9es=; b=jTVnXjnm55IDjX3GrIIjwtvhgSi50oHNFyesD5FQmFVG06N10jMcq16DZ1h6s822EPSvl0 vbbfQ0ddhQmA2s7833+RZELjYpgGb81fUtQUGgAJgrVHFwLqLh4yZfheiY+tIIWQksz+yH aQsq8BgwgOFCOzXbb/84PZgTUSVIKDQ= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of chenridong@huaweicloud.com designates 45.249.212.56 as permitted sender) smtp.mailfrom=chenridong@huaweicloud.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747661098; a=rsa-sha256; cv=none; b=XbPRuyEYKuyPVhWCMaVYfhZ6GUpbXVnXJuLXuhn+uBB/iTVb0j2Xry3a6TgFW5ni9i432E HbabK7hkbwABCUb7x4PdwlQKLUbjMJOUE/akFQs7qPKe+kRBW9kfgOG7vZ/NCXntPiDEWq 2POCVsK2yfnpcHxIzA3Ct7cnmYhKpzQ= Received: from mail.maildlp.com (unknown [172.19.93.142]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTPS id 4b1JM8213WzKHMW8 for ; Mon, 19 May 2025 21:24:52 +0800 (CST) Received: from mail02.huawei.com (unknown [10.116.40.75]) by mail.maildlp.com (Postfix) with ESMTP id CE1611A07BD for ; Mon, 19 May 2025 21:24:50 +0800 (CST) Received: from hulk-vt.huawei.com (unknown [10.67.174.121]) by APP2 (Coremail) with SMTP id Syh0CgDXk2YDMSto5JogMw--.10967S2; Mon, 19 May 2025 21:24:48 +0800 (CST) From: Chen Ridong To: akpm@linux-foundation.org, Liam.Howlett@oracle.com, lorenzo.stoakes@oracle.com, vbabka@suse.cz, jannh@google.com, pfalcato@suse.de, bigeasy@linutronix.de, paulmck@kernel.org, chenridong@huawei.com, roman.gushchin@linux.dev, brauner@kernel.org, pmladek@suse.com, geert@linux-m68k.org, mingo@kernel.org, rrangel@chromium.org, francesco@valla.it, kpsingh@kernel.org, guoweikang.kernel@gmail.com, link@vivo.com, viro@zeniv.linux.org.uk, neil@brown.name, nichen@iscas.ac.cn, tglx@linutronix.de, frederic@kernel.org, peterz@infradead.org, oleg@redhat.com, joel.granados@kernel.org, linux@weissschuh.net, avagin@google.com, legion@kernel.org Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, lujialin4@huawei.com Subject: [RFC next v2 0/2] ucounts: turn the atomic rlimit to percpu_counter Date: Mon, 19 May 2025 13:11:49 +0000 Message-Id: <20250519131151.988900-1-chenridong@huaweicloud.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:Syh0CgDXk2YDMSto5JogMw--.10967S2 X-Coremail-Antispam: 1UD129KBjvJXoWxJryfGw47WF47Xry7Xw43KFg_yoW8ur45pr WSgas8Kr1vy3Z7J3yxKa4xZ34rKF4xGr15Gw4UGw1xAan3CFyjgFyxKw45Xay7Gr93Ja4j qr1jg34DCFyqvaDanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUvIb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4 vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7Cj xVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x 0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG 6I80ewAv7VC0I7IYx2IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFV Cjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JM4IIrI8v6xkF7I0E8cxan2IY04v7MxkF7I0E n4kS14v26rWY6Fy7MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I 0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWr XVW8Jr1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20x vEc7CjxVAFwI0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE 14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf 9x07jSiihUUUUU= X-CM-SenderInfo: hfkh02xlgr0w46kxt4xhlfz01xgou0bp/ X-Rspamd-Server: rspam10 X-Stat-Signature: 1s8q1yspigm3oob7379itj6e1qpizyba X-Rspamd-Queue-Id: B5F6EA0007 X-Rspam-User: X-HE-Tag: 1747661095-338673 X-HE-Meta: U2FsdGVkX19GPAAKx3U13FNvpS9cdFMJLSYys14vlLzU1e9/+YLBUVmRux61huYu78AiZiXAPPnxuhArlGICHeHbom1QjNkwl/LRubXwzleFvCEmQ9VGXqVBkzmhE+ZjDaQjqP/w/1/E3v5zikqLqkwsbE7Yis0sD4WtNnov400n8O6NhBWPzz2fFZ7zeynxmQLLiCVng9xdIQWlPxN1sO6pWzfPB4u6HXNh2JYg1aszzhldrGvVQc1SncVsGuTraUGBLn5Cc1Hk5MfDnaMvBUED5J6R5JP65QB+OorcNkBOSKD86zVhgy8NrHUpQ9h18Wo5h61zAGqx7gThtuV0q9EqBtrZS+qCQzxgZmtp6i23lvDeqUniEAkcRCLhMuPqIvekUMSzbTgXPAcS/M3tjiVkvTXAXkhmGfLPGbFVseusgtgBjYuQsFQP6TzfC+sYjezrt0mzA9ZMTjX6M2hNnGO/x022mIiTT03JDJb2WSpiQ0zVjU/qT9OPHCGnh69/xGnnLXAAe5FwM21v2pB3gyXSwtHWjaUGSroQ+9SaIySJxxLKBVFUoBlUUXZx7Q9IRt17W4n/s0+8qR7iG8k7B4MmwtP1DMYYb7gq7M42YiR9xph6h4ozWn83Bng8hwohPgKgvsDCXneVuNmlKn07UuizuD8fu995fIZLSXWnvXv5aqqj/DVvv6vyYbXbi/41Shj7nyIbJ8gWL0EIhvg06J3eKZGRrcZCcvhvLoG92YwxyztJRjCqlJPnltXyqJ5EU+i/YNA/8KJnapgPngL28OvsvqH5v5eNojyVT6D9i0I0ssxOkPtcGoqrc7FUIjvTnfyQiAQ8/XHrTXJs0f/kveLdVJ8mQeSnSLOrGyWfmFtDk4QhLZE5p+jzydKekYpBlgmHUwm87T38uY4aWwBLYNPhLH36hdI4FP5jVwJ6pi2wgvmYrMoayuqN27E7IJocC1ldXW1GJqz0s98FjYG k57CWK6s DBIhw31KDiwes3uZ9LPQHuqUhk91y3T0IczuKpS4/WMnw5E6X98pwOQAjJvfKrV00tRywA8KGQozbG0uGzhcSYF74NAvT+DfguC6DcnqOstc6B6maeSP0+6Q86spNXZlCpwKerSdT5rrbFsivtUaTz+reUs9N/2+pG+n6M1dXlhV3XyvgL1T37oRITIsnqtbN70Jm8lgNld086YBHVAVma/DYoiKEanzPG0OqhUlaHNIlCO2iToZLkBgfZmrrWPLanoreyfZu9uH2nLXrjYDRalRGPfGO0/vx9zSMpMDnRGrFh5jZJ7PtCORQhALaGmq7Igal X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Chen Ridong The will-it-scale test case signal1 [1] has been observed. and the test results reveal that the signal sending system call lacks linearity. To further investigate this issue, we initiated a series of tests by launching varying numbers of dockers and closely monitored the throughput of each individual docker. The detailed test outcomes are presented as follows: | Dockers |1 |4 |8 |16 |32 |64 | | Throughput |380068 |353204 |308948 |306453 |180659 |129152 | The data clearly demonstrates a discernible trend: as the quantity of dockers increases, the throughput per container progressively declines. In-depth analysis has identified the root cause of this performance degradation. The ucouts module conducts statistics on rlimit, which involves a significant number of atomic operations. These atomic operations, when acting on the same variable, trigger a substantial number of cache misses or remote accesses, ultimately resulting in a drop in performance. This patch set addresses scalability issues in the ucounts rlimit by replacing atomic rlimit counters with percpu_counter, which distributes counts across CPU cores to reduce cache contention under heavy load. Patch 1 modifies thate ucount can be freed until both the refcount and rlimit are fully released, minimizing redundant summations. Patch 2 turns the atomic rlimit to percpu_counter, which is suggested by Andrew. [1] https://github.com/antonblanchard/will-it-scale/blob/master/tests/ --- v2: use percpu_counter intead of cache rlimit. v1: https://lore.kernel.org/lkml/20250509072054.148257-1-chenridong@huaweicloud.com/ Chen Ridong (2): ucounts: free ucount only count and rlimit are zero ucounts: turn the atomic rlimit to percpu_counter include/linux/user_namespace.h | 17 +++- init/main.c | 1 + ipc/mqueue.c | 6 +- kernel/signal.c | 8 +- kernel/ucount.c | 169 +++++++++++++++++++++++---------- mm/mlock.c | 5 +- 6 files changed, 138 insertions(+), 68 deletions(-) -- 2.34.1