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 3B958C83F03 for ; Fri, 4 Jul 2025 15:02:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AFA1D6B8058; Fri, 4 Jul 2025 11:02:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AAA446B803F; Fri, 4 Jul 2025 11:02:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9990B6B8058; Fri, 4 Jul 2025 11:02:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 8511E6B803F for ; Fri, 4 Jul 2025 11:02:34 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 21AAC56348 for ; Fri, 4 Jul 2025 15:02:34 +0000 (UTC) X-FDA: 83626898628.18.E28275C Received: from smtpout.efficios.com (smtpout.efficios.com [158.69.130.18]) by imf25.hostedemail.com (Postfix) with ESMTP id 61F7EA0023 for ; Fri, 4 Jul 2025 15:02:32 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=efficios.com header.s=smtpout1 header.b=hqZ9YbeN; spf=pass (imf25.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 158.69.130.18 as permitted sender) smtp.mailfrom=mathieu.desnoyers@efficios.com; dmarc=pass (policy=none) header.from=efficios.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751641352; 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:dkim-signature; bh=zmALhvuRWNAAkoUKsPDXynFrK9Dad0xSJ91v2t5TMPU=; b=tJC95RuHGpwygzMn0yr5FssBZEBtDxBmRMXiGNZ12pZaS1gpq1Jd7O2hxqdeGye8vf6Yza /QYQrL/f5YsdhNM8SEofx/JePxmnXkMrbITjDZGbmINeUdxXAEVi1JQRVuUcNiLkqraxWi dgA9t82RU1Pel6QXEA1D4+Ehnc2wbA4= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=efficios.com header.s=smtpout1 header.b=hqZ9YbeN; spf=pass (imf25.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 158.69.130.18 as permitted sender) smtp.mailfrom=mathieu.desnoyers@efficios.com; dmarc=pass (policy=none) header.from=efficios.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751641352; a=rsa-sha256; cv=none; b=E6Pya2l65/09WPoVRhT3+0f3903VOlwzCpYSUotuAB0bfUvbgJd5ITvKDAzdq/XTaTEOsM y6S1gibJGrKt3F6qpfw+Lggy0j8p2AF/2/yDiY0rr5cpiQpWVFMHcsixzEzX7syQW60QwM cfGnegY86SxHL82Qbj6VwXmWAGgk3XQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=efficios.com; s=smtpout1; t=1751641351; bh=BwQWVe5CDJayHR4fxHymRQ8jsHENQTbvCVQyO/pDISM=; h=From:To:Cc:Subject:Date:From; b=hqZ9YbeNua+B3QCgnqGNaoMsjEAcyqnDPJ5pNYFVHkYcXGQlS1auKfmaYJobakvAr 3pXoQYDu0fTtf9HWdLnJxna9QQ3/k/UFm4Z1PRARabpI+ZLRFQjb6jWggU7XsW9O9Z zn/7GjgxxJSsfy/rRTXZQkITvCqdHrqF5Wc+HiWDr11Fc9m3lR3/dSqot3ZjXW1AUW HMOm0zoBQyjM1ggxlgtqtBPLqFMBdWIUNOISzjYBtUfJ9tHQGvc/E2of5OT0lt1GJ/ cwIj6Sd0u45kR2Mx3eBATEScxxkCoQ/O8qvHARRmx5/WIW3+zEJ5Vf65uJ+7gheK7O /iMZiAUDDviAQ== Received: from thinkos.internal.efficios.com (192-222-132-26.qc.cable.ebox.net [192.222.132.26]) by smtpout.efficios.com (Postfix) with ESMTPSA id 4bYcLb08nQz72h; Fri, 4 Jul 2025 11:02:30 -0400 (EDT) From: Mathieu Desnoyers To: Andrew Morton Cc: linux-kernel@vger.kernel.org, Mathieu Desnoyers , "Paul E. McKenney" , Steven Rostedt , Masami Hiramatsu , Dennis Zhou , Tejun Heo , Christoph Lameter , Martin Liu , David Rientjes , christian.koenig@amd.com, Shakeel Butt , Johannes Weiner , Sweet Tea Dorminy , Lorenzo Stoakes , "Liam R . Howlett" , Suren Baghdasaryan , Vlastimil Babka , Christian Brauner , Wei Yang , David Hildenbrand , Miaohe Lin , Al Viro , linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org, Yu Zhao , Roman Gushchin , Mateusz Guzik , Matthew Wilcox Subject: [RFC PATCH v6 0/2] mm: Fix OOM killer inaccuracy on large many-core systems Date: Fri, 4 Jul 2025 11:02:24 -0400 Message-Id: <20250704150226.47980-1-mathieu.desnoyers@efficios.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 61F7EA0023 X-Stat-Signature: pbgtcpsgcfcx8r7rauxajjdmcbwh3q6r X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1751641352-870320 X-HE-Meta: U2FsdGVkX18nXnPP4QYwgqX4nEMYI3Z2hpWXYrvUSoF77FV8NA9rOfJbbm2KYUXqbW6wuzbRmC5vHTZq+sA0DbC4pVzYRPC0pkkagAM+RVANS26dx0jcslVFl0/VgaA9fk/ZrhnNoGLGc7ZmGOqKzDu7jqBKYQ6QMsf8/iavB8a39BN4fn5HlAU/t9hqOnhefJ9QgD9cwLLEzxs+TyGWOYfEQKZJqEFfJg9F9p1/XJu2QYRhGiIOXnuP+ohBiQFA81YYt7LI77fzpu4Yv3pRLWBHoxkwtNijHWfdRt9y5tegfnXyDAXixxuFESG00JfvP1gAXp9laCBCs7MbyKkJDT9rGJcdZwdpL+nsQuJZBW4gAEklnMcns3uVawPQPvhvhL22/U8u9zCDWuWc/Hm6FY71cIVeYPG4AeqY12Pm9ZEtvklM7dU3GCLxtRYil2GsihQjfaa7XUrpl64Upqrwa2D6jB8894IG6vGAkyHAn0cHi91oggzpI3sSrQiq6pbPveVL9gAS7zNjGKWBuI2Fj0wzQXSkb8EyR94j4UJT0Ku4OXAOBaiz2FD9mVbok6hBFrPQplug1ArgSvYz8fc1d7YTyX6u4rMoKOJ95555nIhQDT39CjaoMRQAdNXUtIyCIQHAEM7a6pRaDh8aZ6ypT9VKlDeq6Rar4TQpybfGvaVppelAujssz5lyTlT8Zy7CSC93MIj8g/wOX1m6Kk7XvUOv4mmiO/iUsAEidl1tOL3VCBILGKGcTlysYvmS9kWsXBi11V/UedXQGsXmGso8NjX3PiNZe/IkH/TkeVpF1i9hbxUlnTH582TF3da20MCZ0NKTsSyNMYgtw8+sZTfjipCAeh20/KlkVQ/x8G2mBo0vt578x49JqlF2+COj/vtdJNr6iX82mt6Cmf3K/I+MX91BNrp5jWUqlbJ/T4i6OxIHRdb6XXTi6Q0fiT0uEH0ox5LiL+q8Ad5W54w+e7v vXc6NlKz PylhdXYa2X09GNZwE1uRLSnCnwvt10LQlA7jj2O44lYs8cXLTaRlvnBk5ezUVR5HVcxnmj2+8mP0Zex/EaozW87NW8DZLuTpFdrpy74yTZMmWvasjkU9g5THh7w+oqDPHei/PuPZnNF2Iyql/ng4cmQ40tWTxZWU89GwMyDyEUmucZ5Bn13wbfi5fM2VzPAi/hPwPhSdizll81/i31SUiNm2U35QgTc/Wi+AjzU7mh6lACApjIDdn+pfwCLfBxpkyBktfZwUh7pM7+3+yq3SCL7wA71n3olBVunxMFpuXGqeQsXcJmWRSdp/FbjKtXefVFnhFJ/e8mF07Qn6qSLAsKUVrluRmeX1yIddKTWrYJkW/Rg+bQZxVeLcEw17lgF2J/OPkJ5sMeW/xjEm5RjhdTWPojdKUFtKxrZXj5jsnact8uLaFHXQDFIxuHEC3DnfFUpQp/tvJtFauTtT48Cs22dUnXaGJ23M+Zjn3UKuBo8mX1DAqYJn1vhLvffOMe5La0j/mruZ+Gr/FcjseD/rIcxvTbcNxRR18Z/MLhmGae4llJ/mC7Ai3I/DreIc2hMeZu9TDm4e7ehYOj40ubBp3/j/ya8hR578Hr5FWUsCoMfcH/QVQYxe/RaVWmOC5vA4KQUlhbpa/mlgFBnQIoVDGpcC3U8hfanGhROU7CeDEgJmTYDSU8H7Z4w101oeajzMvHh7w2zBpGHy8A/RglLOQYTM4OQZBMXbi1ToTP0cBAVadZhn4IDgtf2Vbz/z5rRwymeGtxy9wXGH+4ivt86xGUqEh6420Z68LlPW8idM+JMrB+Gp6AVPSt8POTaM1imcDLNXR/c+lCMxUtgk9MI97UYMwwkhcBYSWZd/UQcr74Ks+RPAb+v1eApiIbthEmxgJHqFoDVd5K5rtTfUdKYHsauFOltyZ/6tKumEx 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: Introduce hierarchical per-cpu counters and use them for rss tracking to fix the per-mm RSS tracking which has become too inaccurate for OOM killer purposes on large many-core systems. The approach proposed here is to replace this by the hierarchical per-cpu counters, which bounds the inaccuracy based on the system topology with O(N*logN). Relevant delta since v5: introduce !CONFIG_SMP static inlines to fix UP build and introduce percpu_counter_tree_approximate_sum_positive. Testing and feedback are welcome! Thanks, Mathieu Cc: Andrew Morton Cc: "Paul E. McKenney" Cc: Steven Rostedt Cc: Masami Hiramatsu Cc: Mathieu Desnoyers Cc: Dennis Zhou Cc: Tejun Heo Cc: Christoph Lameter Cc: Martin Liu Cc: David Rientjes Cc: christian.koenig@amd.com Cc: Shakeel Butt Cc: Johannes Weiner Cc: Sweet Tea Dorminy Cc: Lorenzo Stoakes Cc: "Liam R . Howlett" Cc: Suren Baghdasaryan Cc: Vlastimil Babka Cc: Christian Brauner Cc: Wei Yang Cc: David Hildenbrand Cc: Miaohe Lin Cc: Al Viro Cc: linux-mm@kvack.org Cc: linux-trace-kernel@vger.kernel.org Cc: Yu Zhao Cc: Roman Gushchin Cc: Mateusz Guzik Cc: Matthew Wilcox Mathieu Desnoyers (2): lib: Introduce hierarchical per-cpu counters mm: Fix OOM killer inaccuracy on large many-core systems include/linux/mm.h | 8 +- include/linux/mm_types.h | 4 +- include/linux/percpu_counter_tree.h | 203 ++++++++++++++ include/trace/events/kmem.h | 2 +- kernel/fork.c | 31 ++- lib/Makefile | 1 + lib/percpu_counter_tree.c | 394 ++++++++++++++++++++++++++++ 7 files changed, 626 insertions(+), 17 deletions(-) create mode 100644 include/linux/percpu_counter_tree.h create mode 100644 lib/percpu_counter_tree.c -- 2.39.5