From patchwork Sat Mar 8 03:46:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Liu X-Patchwork-Id: 14007403 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 9151BC282EC for ; Sat, 8 Mar 2025 03:46:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6D852280003; Fri, 7 Mar 2025 22:46:34 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 66266280001; Fri, 7 Mar 2025 22:46:34 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 529BC280003; Fri, 7 Mar 2025 22:46:34 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 32FDC280001 for ; Fri, 7 Mar 2025 22:46:34 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id AADCB1CB798 for ; Sat, 8 Mar 2025 03:46:34 +0000 (UTC) X-FDA: 83196996708.19.5CAFB1A Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) by imf18.hostedemail.com (Postfix) with ESMTP id C44491C000C for ; Sat, 8 Mar 2025 03:46:32 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=FaCFJqv6; spf=pass (imf18.hostedemail.com: domain of 3l73LZwkKCIYvs4wk13sxqyyqvo.mywvsx47-wwu5kmu.y1q@flex--liumartin.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3l73LZwkKCIYvs4wk13sxqyyqvo.mywvsx47-wwu5kmu.y1q@flex--liumartin.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741405592; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=jRUF2A0NjVDGv1OExSsTFIcZcGSpPPHCJXmqzE/QHcg=; b=1w1zVYfdnd9btDlm7ksPSJSzTLL48ipeqbrH8a8SlNadjMECl/XPLHhY7C3KejspL8E4XF RZ/Amo2bC3h5/ZQQ/m5wmxI190rZJ86775G4OILqvVBWod623+SFj/SUVdTZt3/ntEYuCX ftVBLoK4Tds3kFeApsaZaUp8d5Pw2vk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741405592; a=rsa-sha256; cv=none; b=u6QcLdoKJKpe8/2v3sA2U9Rny2F+jQXMxhz8Ge9Ya6+uyC9huZGVr+p7efIa3X5KuZAg7o iTLiluU8ULiWx8kGJYOrEhYlAwVbsJJdUbLKdoh1N/N8MOXLOvWnk+kKeZjmPgu8lnZ0XY TVMExauW3aEb5cDcZvUY2nHfMjSJg0I= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=FaCFJqv6; spf=pass (imf18.hostedemail.com: domain of 3l73LZwkKCIYvs4wk13sxqyyqvo.mywvsx47-wwu5kmu.y1q@flex--liumartin.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3l73LZwkKCIYvs4wk13sxqyyqvo.mywvsx47-wwu5kmu.y1q@flex--liumartin.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-225107fbdc7so5709975ad.0 for ; Fri, 07 Mar 2025 19:46:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741405592; x=1742010392; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=jRUF2A0NjVDGv1OExSsTFIcZcGSpPPHCJXmqzE/QHcg=; b=FaCFJqv69m5Gm+B+6VfpUdYajBEBDPuN3gL4FKc2bQ+B/Dd1wewik4d0h2PnYHPhgZ 5/GkBRqknQh9cC7zXrvQos7dRCcSNTeb/AYylhWLW20zRL6Hdcp/gW6XQDw7pMq5Y2fO VN2H8jc2lQIpTinSnOJqx3l6KbqvIal5bwM0uNLbWqmTDIZi7onDfVZG3pmPZZ71FALN B1hOg1LKwhajlWKGSYdSlBK+yWDgqbV9OT+EayLs6CXwZe4omRZhcL3AacLIM697J3yl bRQYKgJetkdr5ZdpI63pXgJAGyhDvQI3hjkNTXDLQ4v2bE2Azd8mGcExp7QRJRsBnhoF sPDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741405592; x=1742010392; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=jRUF2A0NjVDGv1OExSsTFIcZcGSpPPHCJXmqzE/QHcg=; b=IESv4SJB81x3M8a0oBN1jla6Mu3IIRH8lx8nVkWNHJwhaX1UpN22SGqeN9gGKEv6lU e3OOdrTHStyhC/bVwYg1aaoit7dI3xtRT3Jz8Nnb07bsdKFjlHqkcLndaxfo69Zmm9LM FuAPP7JDQl31X+Q6lZledUA325H3FGdIlI5JmDe6tXVncFTeoGJqEJ1N7NylJl/p1+ir tJkKnIkRc7/tGhid2q4BagNd5VDoAQ4DKFxZCV6NqdfTnbrr4mX5LV0A4YXek0NbddqI gEL4ee23M3JfPMWbey+8j5c2Z/TPMONRvjsB8x2rzmYgdVCMpaSEvEldWxX3PGZVWVOz FpFw== X-Forwarded-Encrypted: i=1; AJvYcCWz4iFx8+26Qhq9h2BpsJbkKhgy/2IEycGYT+S6H3puI2DP9qG03xtTHohAfvRWFwzntI6aGWrtRQ==@kvack.org X-Gm-Message-State: AOJu0YwjeUMtFq6bhaxJtPVznA/rsvdLLvGqLzEeG0pg4js4spTOpb13 HvVVyDk9VGz0z5N4d08voSrmR5FEve93WIYsM7JF8WfnXGasJ1m1UixOIfEZKEnHlFhwQkl5b51 OmKTh2a0KrTxEGA== X-Google-Smtp-Source: AGHT+IFHishigmPJTfF8nas6Rd2GTRrOt9x7gCcp0cLHMvtmvYE/TqBCRKvb0jMyKWRCKVmYvNm/YWfbFyHQFC4= X-Received: from pfqr27.prod.google.com ([2002:aa7:9edb:0:b0:736:56a2:99ac]) (user=liumartin job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:3c92:b0:735:d89c:4b9f with SMTP id d2e1a72fcca58-736aa312be5mr8792595b3a.0.1741405591656; Fri, 07 Mar 2025 19:46:31 -0800 (PST) Date: Sat, 8 Mar 2025 03:46:01 +0000 In-Reply-To: <20250308034606.2036033-1-liumartin@google.com> Mime-Version: 1.0 References: <20250308034606.2036033-1-liumartin@google.com> X-Mailer: git-send-email 2.49.0.rc0.332.g42c0ae87b1-goog Message-ID: <20250308034606.2036033-3-liumartin@google.com> Subject: [PATCH v2 2/3] mm/page_alloc: Add trace event for per-zone lowmem reserve setup From: Martin Liu To: Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Andrew Morton Cc: Martin Liu , linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-mm@kvack.org X-Rspamd-Server: rspam12 X-Rspam-User: X-Rspamd-Queue-Id: C44491C000C X-Stat-Signature: a54wy5oo33em6o9efwapzpaixnugft7b X-HE-Tag: 1741405592-278541 X-HE-Meta: U2FsdGVkX1/qSE/osGbLNqkhIf1pLOZ1WUSKquJcrmhBOId4pKDALg005/zJepy1Bpbl+AWsVR08X5aAzNqSEox6O9fnfpGPelfAokPY+l8tDYcVJcc+rKyydkCnCV7rqEs38Tmtfb8PmctShcPkroa7u3AYGBaxowKnYp8jN1Jyv+4mpWAv0GFfhvoDyq0OhHwzCBHJUHWMXLVp9sArhSBwhC0rbYKV5GZh3v2a4BTj/rwmDT8xmqkmTly6zt5AZtkvKVGTFZujjCfRPjS5Uo+3fRh8KvDwEjgruGaKim7ls0XQw0JTcFCoQ3ADyR2yHcDyiQfegUQZPNHWjcjom0gkw/LB9MollQGT3rTVeZ9Pa7+1fkaqQlI8rC8il9X2lKLvHo6kuh/1XYUJ/0EyLYEiRQKmdtL/7WTUIh/TrD22pMfmcAPoE9soAOyYIg1V4Z2UGKqkLkFM6YE1YinTcZVzyxGSft/crYKq7N9e3MGzQOhI3LVth/y4eOVtQx2teRYziYtRaMn/1l2s8pw4lZWpOtrXfwnFMGl7BsRCW5ooa5yf+Kl7EC6T4/pojYUw843I1v9t9073W95CK9ue3psNnbOieOmFFZX3n2xSCDkuB2RgGsh319R2nHBssHiv9/oCAVbGjabYhaSy+3T3he5inoz9RQ06xRGynhibT9qhDqI7eDHK0Pix46E097Al28OGYmeB59/wv7fRebPQV1LxRTuq/EMbZl2/6M9tb+FOGWDYnNo2QwH/o5cujEHriFyMmf4TBaWPjjHSLU6c0dVsRLOC5T2l5bdO6ikS277zh/qTXdLbtYH6RMVCndqLd9z7lbdk0NNc/e3B2kEeLlk/QDueNF/9rwga3WGRWi61n0lUMNznJWkIBg9mxHlTMR4YeUMoJD2jTLsJ/dOFrEeJJvdRnIw+Av2J34bwV69cAQ5IrvbNP8L8RcxQxmw7Z7oyf9KRCXvDu5zgGda RplRrMPB RyYA//P9ikOFfZrA5eNaNeWtLaW1DcmZbj5VGD/ywXGI4uunRcrjPTPisgQtKpMXg2I7sBvSQqXh92WrvZZgJxHTE027tEaVqhXdJbex1mtpGELc8lS6/NdEsFaFg3rg9xzWyUe/0q/5/rBs3t7KzYder12C6UirbuuD8ag9FfBEGEZtneCyOcayXIFaVLl922a6zmQGM3pnqWnqT7ShGtRe7eAQnSd77nStw4sN9D3sWu9lOPVwmn0Dx2cP+1ygqO9Gap0W+bHy3cEJD7m22OrriPaXsDFfTunwh9Hl5JkEBtf/+zXCezleBZviVZKUgqaIzDvLNLBpfdOROkhv7mEkpgetkR8qoF7z+mrwOPFUGFTBJ+yYkpaZJPCkjyvRqRQZj1+pExfehBlkFThf4QJBnka1kne8C9I9PutTDTLA+bQSVBme2CD+5m/vqQu2Ke0N5IC5E2m+IJ9lghtwyEDB3qMOEKpYMK2vPNSNu7VYS9E7Z32BniahhZVeVkBGRbcHd+4hGigcw9EGqGWPCCBl4jk+SXA8EjS2+zKUkwIrwXeUiOs5DsllZYvkI/I+n9hjj1x8QyIzixuUExZNVQVNjF9hR6rfvlKY588RYmb69kWI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.003356, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: This commit introduces the `mm_setup_per_zone_lowmem_reserve` trace event,which provides detailed insights into the kernel's per-zone lowmem reserve configuration. The trace event provides precise timestamps, allowing developers to 1. Correlate lowmem reserve changes with specific kernel events and able to diagnose unexpected kswapd or direct reclaim behavior triggered by dynamic changes in lowmem reserve. 2. know memory allocation failures that occur due to insufficient lowmem reserve, by precisely correlating allocation attempts with reserve adjustments. Signed-off-by: Martin Liu Acked-by: David Rientjes --- include/trace/events/kmem.h | 27 +++++++++++++++++++++++++++ mm/page_alloc.c | 2 ++ 2 files changed, 29 insertions(+) diff --git a/include/trace/events/kmem.h b/include/trace/events/kmem.h index 5fd392dae503..9623e68d4d26 100644 --- a/include/trace/events/kmem.h +++ b/include/trace/events/kmem.h @@ -375,6 +375,33 @@ TRACE_EVENT(mm_setup_per_zone_wmarks, __entry->watermark_promo) ); +TRACE_EVENT(mm_setup_per_zone_lowmem_reserve, + + TP_PROTO(struct zone *zone, struct zone *upper_zone, long lowmem_reserve), + + TP_ARGS(zone, upper_zone, lowmem_reserve), + + TP_STRUCT__entry( + __field(int, node_id) + __string(name, zone->name) + __string(upper_name, upper_zone->name) + __field(long, lowmem_reserve) + ), + + TP_fast_assign( + __entry->node_id = zone->zone_pgdat->node_id; + __assign_str(name); + __assign_str(upper_name); + __entry->lowmem_reserve = lowmem_reserve; + ), + + TP_printk("node_id=%d zone name=%s upper_zone name=%s lowmem_reserve_pages=%ld", + __entry->node_id, + __get_str(name), + __get_str(upper_name), + __entry->lowmem_reserve) +); + /* * Required for uniquely and securely identifying mm in rss_stat tracepoint. */ diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 50893061db66..e472b1275166 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5857,6 +5857,8 @@ static void setup_per_zone_lowmem_reserve(void) zone->lowmem_reserve[j] = 0; else zone->lowmem_reserve[j] = managed_pages / ratio; + trace_mm_setup_per_zone_lowmem_reserve(zone, upper_zone, + zone->lowmem_reserve[j]); } } }