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 2CB46C83F1A for ; Mon, 14 Jul 2025 14:37:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 79BDE8D000A; Mon, 14 Jul 2025 10:37:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 74C038D0001; Mon, 14 Jul 2025 10:37:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 63BF98D000A; Mon, 14 Jul 2025 10:37:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 510CD8D0001 for ; Mon, 14 Jul 2025 10:37:18 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 051D410CBDE for ; Mon, 14 Jul 2025 14:37:18 +0000 (UTC) X-FDA: 83663122956.04.5B8BBE9 Received: from mail-internal.sh.cz (mail-internal.sh.cz [95.168.196.40]) by imf22.hostedemail.com (Postfix) with ESMTP id 25D1BC000E for ; Mon, 14 Jul 2025 14:37:15 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=cdn77.com header.s=dkim2019 header.b=PYFU7lx8; dmarc=pass (policy=quarantine) header.from=cdn77.com; spf=pass (imf22.hostedemail.com: domain of daniel.sedlak@cdn77.com designates 95.168.196.40 as permitted sender) smtp.mailfrom=daniel.sedlak@cdn77.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752503836; 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:in-reply-to:references:references:dkim-signature; bh=1qjKv3KcKXjGF3KGNsJynah+pMd4mE4RxUeeJAFVOQ0=; b=N1i3hbaYSAt4PqpMGp1fuj0mHFlVoQecdUXK3+4BgKcpOo/dCFUj4emeRjX7G1vXzG/IFw ykH0e+QKPw9JJKB4q35wh7Kz7MStwCzLU8n1sJitMGQltVK+BdB8cXOVs/9O8X7sLQVnMg s49+X3887XLmoWLweZZe5Azy0jUVyI8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752503836; a=rsa-sha256; cv=none; b=R5MsAfuCRYHxhB2Jj45ZHxF2dpDZNtikSkqBunFGIDWy4Cw+5G+lzeX4nWjmFo+Z7fxQjH vOOdVlhzjOstSfVdad1TkZ/Ks4J0YYA4IsswZf8H2qrK61mMOR0WH5igToVUeCn1043oxe jG6TxCQmurW78qmTAuj8YAcQkdNoScs= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=cdn77.com header.s=dkim2019 header.b=PYFU7lx8; dmarc=pass (policy=quarantine) header.from=cdn77.com; spf=pass (imf22.hostedemail.com: domain of daniel.sedlak@cdn77.com designates 95.168.196.40 as permitted sender) smtp.mailfrom=daniel.sedlak@cdn77.com DKIM-Signature: a=rsa-sha256; t=1752503828; x=1753108628; s=dkim2019; d=cdn77.com; c=relaxed/relaxed; v=1; bh=1qjKv3KcKXjGF3KGNsJynah+pMd4mE4RxUeeJAFVOQ0=; h=From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Transfer-Encoding:In-Reply-To:References; b=PYFU7lx8EBTxvh7EtdYATgXtN4/OMZp60c2K9aNLzDX1AnCol6GgPFm9e7y/5ziy7waxDhWG03pQwDqNvUjGc66BHsF1gbsiwjUB3GTOxnxarQYr8VC9zdumU6OKPnEicAlahMgNSSuF4uV454O903N5HuNnuTwPN9wnntbrkYc= Received: from osgiliath.superhosting.cz ([95.168.203.222]) by mail.sh.cz (14.1.0 build 16 ) with ASMTP (SSL) id 202507141637071517; Mon, 14 Jul 2025 16:37:07 +0200 From: Daniel Sedlak To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Jonathan Corbet , Neal Cardwell , Kuniyuki Iwashima , David Ahern , Andrew Morton , Shakeel Butt , Yosry Ahmed , linux-mm@kvack.org, netdev@vger.kernel.org Cc: Matyas Hurtik , Daniel Sedlak Subject: [PATCH v2 net-next 2/2] mm/vmpressure: add tracepoint for socket pressure detection Date: Mon, 14 Jul 2025 16:36:13 +0200 Message-ID: <20250714143613.42184-3-daniel.sedlak@cdn77.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250714143613.42184-1-daniel.sedlak@cdn77.com> References: <20250714143613.42184-1-daniel.sedlak@cdn77.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CTCH: RefID="str=0001.0A006396.68751625.001A,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0"; Spam="Unknown"; VOD="Unknown" X-Rspamd-Queue-Id: 25D1BC000E X-Stat-Signature: 1jztr6gkfujwhho5ou88m86r17rkq7cz X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1752503835-601576 X-HE-Meta: U2FsdGVkX1+fEmEGQhoyiK5qd8LIxRNtBKSKM5LmrJleHAMejg2OW+N1E0ZpF4fmYCmIbfND0/T9b4pWyGF3swWHcx9KhUwfPwDDg02asp8ka8E6oJVfaxRAWWbBYNLwox3ZWowT7on6TwL/LiGEQ7OtQPypr+KltQwU2KrB+1CCUg7CdIHxhWFVzk1EtWuKmBSGaRuj6eWQNAhgcKYskZEApKuA8dgUs8KZxhv2s8Gy+X9x8tGok9gDPE+LXaretGWqvGXtM/aNAASd3f41dHlv9LvUVR4RV1fg2xpzuLTeGKlCo8vTRqT7vfz3nGx8qTpvf9FS9NjjtPDBRWcNirb7Wg+01smGPU1qwZu6xGPL24czqqwaPn4nzUOOApwgA+kvnXDw3/Cm27kKBPccXwYFSGbIojPPs9PKYJnu/lxUW06g4cG1dKT6ExUAZ2cfapl8D519VySQpSQXAHZFGjSQMVnVKCNGW4ydPCtibcmuJo88h8Ea1Oj0gdx/s3K1um/rVDU5Rge6UkFvsfXllK9UjAgtGp0mG6b0wFPpfOsy1HGa8VdXEKiwb7MS5o3ARqPKfOC5CpkOMNa/V+vyb04IbM1pLj/alBi23dAGVOTyE1N6GNEs4wcV4AMoQabw+EKIU9vm8cMPMV4xb3bYb6HgcpIF1fAB65ljZhO86mzTgc6m0M/EVK9yb7oB9PEmGxdH37uL1/09kiyOAmT6B8s4FKeyFNSqRRGDfAu/i0wrnrA3B/AcGYNWHcqR44aVwLpYOgXSjpuw2jWuXM4Lm8X0UbRFKb0UJfkGe8nDKJ1gcsI83sPIxdltR2fjRIxSTTNgu7N1P/7sKpzhxLdgyFiJNeuur+EzPD9pqXzO0vjGvr++khp+1EICKuDS23qVZsQClHcsdAM+/ZmEEXFgCaHY2O68AWglRT6YR5rfQgiSINd7re2uFOREhXdjPS08+fAABEenNdIZauKKGC7 KbBgkue2 7t75EAcKJKugaa85hvbHHxICLlNwwEBqgMMrtOXcu2HWfhoAv6QWTH63CAbKVutN2UdFAVDNE0uZFdoD1NVzDRhXfOp/XN7Wp+djz2aDesJu7XhZnn0ZO8grBiXdR6zacXuWjDVHhr7MmkDlfy0jLCLF5cfYqMwmWDKUnxMesnMR52/nzhvnVWJj8bsXyvWe2yF74dzya1bDLjRay/QmV4vkqXQ/TsuBO+aM409vH4dfHrjK9JIZs8PyfTNsUHz+TvYY9W+Uita3H3jozJvMWwSUIJigTDj/oAePYlqk5nrmYAqw= 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: Matyas Hurtik When the vmpressure function marks all sockets within a particular cgroup as under pressure, it can silently reduce network throughput significantly. This socket pressure is not currently signaled in any way to the users, and it is difficult to detect which cgroup is under socket pressure. This patch adds a new tracepoint that is called when a cgroup is under socket pressure. Signed-off-by: Matyas Hurtik Co-developed-by: Daniel Sedlak Signed-off-by: Daniel Sedlak --- include/trace/events/memcg.h | 25 +++++++++++++++++++++++++ mm/vmpressure.c | 3 +++ 2 files changed, 28 insertions(+) diff --git a/include/trace/events/memcg.h b/include/trace/events/memcg.h index dfe2f51019b4..19a51db73913 100644 --- a/include/trace/events/memcg.h +++ b/include/trace/events/memcg.h @@ -100,6 +100,31 @@ TRACE_EVENT(memcg_flush_stats, __entry->force, __entry->needs_flush) ); +TRACE_EVENT(memcg_socket_under_pressure, + + TP_PROTO(const struct mem_cgroup *memcg, unsigned long scanned, + unsigned long reclaimed), + + TP_ARGS(memcg, scanned, reclaimed), + + TP_STRUCT__entry( + __field(u64, id) + __field(unsigned long, scanned) + __field(unsigned long, reclaimed) + ), + + TP_fast_assign( + __entry->id = cgroup_id(memcg->css.cgroup); + __entry->scanned = scanned; + __entry->reclaimed = reclaimed; + ), + + TP_printk("memcg_id=%llu scanned=%lu reclaimed=%lu", + __entry->id, + __entry->scanned, + __entry->reclaimed) +); + #endif /* _TRACE_MEMCG_H */ /* This part must be outside protection */ diff --git a/mm/vmpressure.c b/mm/vmpressure.c index bd5183dfd879..aa9583066731 100644 --- a/mm/vmpressure.c +++ b/mm/vmpressure.c @@ -21,6 +21,8 @@ #include #include +#include + /* * The window size (vmpressure_win) is the number of scanned pages before * we try to analyze scanned/reclaimed ratio. So the window is used as a @@ -317,6 +319,7 @@ void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree, * pressure events can occur. */ WRITE_ONCE(memcg->socket_pressure, jiffies + HZ); + trace_memcg_socket_under_pressure(memcg, scanned, reclaimed); } } } -- 2.39.5