From patchwork Sat Mar 8 03:46:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Liu X-Patchwork-Id: 14007402 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 46367C28B25 for ; Sat, 8 Mar 2025 03:46:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 21D84280002; Fri, 7 Mar 2025 22:46:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1A49D280001; Fri, 7 Mar 2025 22:46:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 02081280002; Fri, 7 Mar 2025 22:46:29 -0500 (EST) 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 D0479280001 for ; Fri, 7 Mar 2025 22:46:29 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 37AA41C9F01 for ; Sat, 8 Mar 2025 03:46:30 +0000 (UTC) X-FDA: 83196996540.23.9EFC187 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) by imf30.hostedemail.com (Postfix) with ESMTP id 7576A80004 for ; Sat, 8 Mar 2025 03:46:28 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Fy8QBI3G; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf30.hostedemail.com: domain of 3k73LZwkKCIIro0sgxzotmuumrk.iusrot03-ssq1giq.uxm@flex--liumartin.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3k73LZwkKCIIro0sgxzotmuumrk.iusrot03-ssq1giq.uxm@flex--liumartin.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741405588; 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=kfcaNFAbCYfNTjpD5XRwdqCXVY7RMkDJJWe0/7joWPU=; b=NJf0YAhnw9i5oU5Ncpa2Jw2tg5quIbkaaN+R09etst+7uL/nGNQNN/3jmIcKOMirGwX6uw M8aj3b0JXJQi247v67My+oiWLicf3NhX9GQEh7nCJoWls1hWxkwixLoESSHxJw0iI5K7F8 viCcwXXyTst/upvSwzUtV/+g547TZ6Y= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741405588; a=rsa-sha256; cv=none; b=pKrEVmUa8Gqer7k/GDowmHIgZB+DexQrC6UMDzJ1wY8k4OIbBK9BsCJ/0WcKJ1mPpzFjyJ QcoOdUDaKy8TJoNe7tcHeICcJUKB5cv6gPu5tWOfOWLe6uc59BTY0GLpAS8GkRbyyPZwp3 EmcuE5atelkUKdMwBO2C2kNlYIz0Dqc= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Fy8QBI3G; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf30.hostedemail.com: domain of 3k73LZwkKCIIro0sgxzotmuumrk.iusrot03-ssq1giq.uxm@flex--liumartin.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3k73LZwkKCIIro0sgxzotmuumrk.iusrot03-ssq1giq.uxm@flex--liumartin.bounces.google.com Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-225107fbdc7so5709415ad.0 for ; Fri, 07 Mar 2025 19:46:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741405587; x=1742010387; 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=kfcaNFAbCYfNTjpD5XRwdqCXVY7RMkDJJWe0/7joWPU=; b=Fy8QBI3GPiLvcAsCUXZ7rZr1cZb4PFwQUJOHaXykaUwgrHBW9fDH9qzu7NpZZLzwOl BCVAsMlLyXUE0dQ0eX8mGpLQtpTvPlVGbu3JazUHBFc01cxDYqDjiUse/Q1k8aXDoKoF AiUKRFGWkNhQZWjLcMxuRN943ihPRIPFbqVOtBvgyV0+abqGV8I0XsrluTJ4X70N/ghX o8phN7gz3mQU3fpagcMYvBMB+W0agvWxLOgV8Afn9RPFF3+atrNX3+BBkhByZYtwuNx1 CzGJY4MPaVVcS+8Og2ONqnAPKpUEpATnpySi8tIeJQjpWb0dZcvOrA6adilwwxP8XTDn wkGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741405587; x=1742010387; 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=kfcaNFAbCYfNTjpD5XRwdqCXVY7RMkDJJWe0/7joWPU=; b=tamYM4BB9y3y7U45Zc62YkiZ8Cb+JgVZybcdKrgNRXloZ9bjmQml1NkRKo3kU2YHJH /OgIiSS+DjqCU35N+lhDFZM5YOulYYpZNhm246Ch9X2adGgXw3c5fIYQLVKZsrp/7sQb poEjbzBRzp2ih6NYXI3VSZj+kEgEjRePg4kTWnavgt2rHTYFTuLaJXj8WzAI/1gdfFXM 5nH5ASsVgdprBO1JfHyRuIhDP7ifFNeDUDIz2xQPq/eGV0f4O5DLzIYUto38dNPGJWpQ ra7KNJKJZkTFH1ohEFGJhL7izJCJd88BcLEahdIp1QT2u0+SNfCttCFjkwkiaG2lf3IC JbyQ== X-Forwarded-Encrypted: i=1; AJvYcCWvyNgLOjbhcTG+Qa9OwSWjBpRLyugS1MqfHCOxb5G1HIhs+TE9yCmmz+jxZaIn9tHb2844k2RBeg==@kvack.org X-Gm-Message-State: AOJu0YxV4lMDYM1aO4moutu1HS6+5UZFO0p52C+GpDrVHY0jSQyAtaDK Ox3X1kHzZENcAa5QL6le5vhPM7dGAf/f9Vtc0xquMQ5LSVyRfWYBx9FBGB91bmSSLEiEluk/TQ2 Dq3NECZWfvgdLIQ== X-Google-Smtp-Source: AGHT+IFCL+xm6Fwg3GqZF4t7IcDWhXaeSW59E7l9ZedWtDNW1moTHW3B12u5d+oN/PjxO3PrRmaNltxn/VkJRYw= X-Received: from pfri16.prod.google.com ([2002:aa7:8d90:0:b0:736:46a8:452d]) (user=liumartin job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:2e88:b0:736:3fa8:cf7b with SMTP id d2e1a72fcca58-736aaa229dbmr7080003b3a.13.1741405587197; Fri, 07 Mar 2025 19:46:27 -0800 (PST) Date: Sat, 8 Mar 2025 03:46:00 +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-2-liumartin@google.com> Subject: [PATCH v2 1/3] mm/page_alloc: Add trace event for per-zone watermark 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-Rspam-User: X-Rspamd-Queue-Id: 7576A80004 X-Rspamd-Server: rspam08 X-Stat-Signature: jtr7d4y7yhhpprkwzjbrg83p5pg6tnng X-HE-Tag: 1741405588-725503 X-HE-Meta: U2FsdGVkX184iKh8oPVbP3QqYz3eLozNUqnNkP5BSMm/q8lQ7HpyKT5ouCIBCQpHJqMqUuzssClEhl0Z4q6pIjZEf6DI8jGpW5kh6lyStaDX6nKQQxcilKjLYQ6FmgYxfI6vrlnZH5UHDVcWvyTUZXWQyxidLmLs+hhpyDJFwoeIML/B2DfjFAUckK93A53BLLavU5HeNBkOPkC5vUUC83S9fN+WbM+He4kIXM7qGvmQIEeJHn3ZBqxOmnLSfi0kNIrZlvfHhYSe1extoDZi8nK6/aDjxlNU0sdwBES4EOqbe9t2J6FDiDeTB0ZIjILaB7Uo7XruUm7852hT3f7GCMw9gXnPkMs4iozrb3RLwhFNls+K34L/JWphVuAnD3aMyrLouL+5nlFxH8wSwTNxbuAyqIatA/FWtz3qc3nyt7/Nw/2a4DqoBBi+nlj5OWw4NDsqsY4GCGkY/FpTf3s+svhRwPVi249dR1Q4sUIYiG/duWKEkYUuk5gS8Him8b3pmE0vZKuaYjnaggdS6xjtIrEMuiFStWcEyov+ksUQZ3cZr66pMESIbMJSO60wAPB5pJ75gV6pPOOjwt+P0c1YM3SM1nLD+1cKaZTTc40UYAcJ5CrzdwptRy2WSHGFxhhjUHWXOt6Y9tfvMnAmWLylnoIVd9dOvmo5enYz7C360kQRirWlJsWLZLY3bNusewpKKtCAGsDaObNsVpvEkCAmltzzMHXYwkRES9ZHwJO4DnNVon9IusVLr+XvXzVrz0G6Zx9D9DE3ANtjiJOuZmCv08hNKio9CUElXc4+Lg4nZk4X5WBca0+Si9FV28oD3BGClect8OBzqxf9s+wFx9keR7CmuEYAT6NZAAb3so3Y9X95Sj7gOp8tvUWTugJnPgKFZ3aHm6cmIvNlqtN/hXWnNIHYDVhL51FczQXzMWG9271H32z3V+PlcLUqNEF5ycSkOkVN6AXkyGxY4FK1xYj 92p19+hF yG+Tinrf8STSFu9oJTTAtrF1Koza7i7q6KoMHEz/UJzcjkvJYRgDvg/99FXaPn0SaxdEBxheyOeqkED5k6Id7Wr4GvTqMQjnwqO0TSDTN4HVhJ4Sn/v55cqeDdkErud6Y6QW0+tuTlcA5sHasUhNUIC5W17C1c2rtCgkNXhmU5RI2i+Hqe9rB/LAThfPoyyZMFEQj9tlvCqAk9dKydkU4BRyuYCf6XeqPmIKvSDkv1J3vNa8BqyIWe/PDQfC0zxlQX6U6iVtoRvqNDMq/uQyxjivHas0+QzAKZtKh747BCeE7U50HzyDok1sRSz/IxBo873JbRi6DHUujaJHzPkQ9LKkaqKr0Jk7TJ3NldSyiqZrZdd4MpZx9pYxQNmRZtFe0lUQKkrznkwzje5yujTpqWekDmm27VEYPqVLKUihGHpXdtaFP5aH6Yx70vLtJqGwuVUMov83dQyxyCYtsagSGEa04O8U07kNJPD4LshrVeutb+/XZa7neJYbSSIG0ITkOc7qqevSAWRRABBGXcYvGW5vy880qJ3FjgcAzV6AQgIQyPPe22cQ/7cP1dLNObjNsiRmk4+HsbNOxrvBwmNCozkRtLXnl2yhllETkLWikQHD3+90= 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: This commit introduces the `mm_setup_per_zone_wmarks` trace event, which provides detailed insights into the kernel's per-zone watermark configuration, offering precise timing and the ability to correlate watermark changes with specific kernel events. While `/proc/zoneinfo` provides some information about zone watermarks, this trace event offers: 1. The ability to link watermark changes to specific kernel events and logic. 2. The ability to capture rapid or short-lived changes in watermarks that may be missed by user-space polling 3. Diagnosing unexpected kswapd activity or excessive direct reclaim triggered by rapidly changing watermarks. Signed-off-by: Martin Liu Acked-by: David Rientjes --- include/trace/events/kmem.h | 33 +++++++++++++++++++++++++++++++++ mm/page_alloc.c | 1 + 2 files changed, 34 insertions(+) diff --git a/include/trace/events/kmem.h b/include/trace/events/kmem.h index b37eb0a7060f..5fd392dae503 100644 --- a/include/trace/events/kmem.h +++ b/include/trace/events/kmem.h @@ -342,6 +342,39 @@ TRACE_EVENT(mm_alloc_contig_migrate_range_info, __entry->nr_mapped) ); +TRACE_EVENT(mm_setup_per_zone_wmarks, + + TP_PROTO(struct zone *zone), + + TP_ARGS(zone), + + TP_STRUCT__entry( + __field(int, node_id) + __string(name, zone->name) + __field(unsigned long, watermark_min) + __field(unsigned long, watermark_low) + __field(unsigned long, watermark_high) + __field(unsigned long, watermark_promo) + ), + + TP_fast_assign( + __entry->node_id = zone->zone_pgdat->node_id; + __assign_str(name); + __entry->watermark_min = zone->_watermark[WMARK_MIN]; + __entry->watermark_low = zone->_watermark[WMARK_LOW]; + __entry->watermark_high = zone->_watermark[WMARK_HIGH]; + __entry->watermark_promo = zone->_watermark[WMARK_PROMO]; + ), + + TP_printk("node_id=%d zone name=%s watermark min=%lu low=%lu high=%lu promo=%lu", + __entry->node_id, + __get_str(name), + __entry->watermark_min, + __entry->watermark_low, + __entry->watermark_high, + __entry->watermark_promo) +); + /* * Required for uniquely and securely identifying mm in rss_stat tracepoint. */ diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 579789600a3c..50893061db66 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5920,6 +5920,7 @@ static void __setup_per_zone_wmarks(void) zone->_watermark[WMARK_LOW] = min_wmark_pages(zone) + tmp; zone->_watermark[WMARK_HIGH] = low_wmark_pages(zone) + tmp; zone->_watermark[WMARK_PROMO] = high_wmark_pages(zone) + tmp; + trace_mm_setup_per_zone_wmarks(zone); spin_unlock_irqrestore(&zone->lock, flags); } 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]); } } } From patchwork Sat Mar 8 03:46:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Liu X-Patchwork-Id: 14007404 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 5136FC282EC for ; Sat, 8 Mar 2025 03:46:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 04A0F280004; Fri, 7 Mar 2025 22:46:39 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F3BAF280001; Fri, 7 Mar 2025 22:46:38 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E053E280004; Fri, 7 Mar 2025 22:46:38 -0500 (EST) 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 BD58C280001 for ; Fri, 7 Mar 2025 22:46:38 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 3597F12123F for ; Sat, 8 Mar 2025 03:46:39 +0000 (UTC) X-FDA: 83196996918.13.BBAF47D Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) by imf29.hostedemail.com (Postfix) with ESMTP id 79013120009 for ; Sat, 8 Mar 2025 03:46:37 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=cRhi4T1r; spf=pass (imf29.hostedemail.com: domain of 3nL3LZwkKCIs0x91p68x2v33v0t.r310x29C-11zAprz.36v@flex--liumartin.bounces.google.com designates 209.85.216.73 as permitted sender) smtp.mailfrom=3nL3LZwkKCIs0x91p68x2v33v0t.r310x29C-11zAprz.36v@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=1741405597; 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=wwsW/fsMcg9hrgcDTPBIA7gFDpTcqMoDXdqlqDc9hnc=; b=HQwBsouZzjozCSIkGBVoVgYZtHmWNbtUdz3GpB1QYWeyrlsQvzO3vPwiQLW+fY4FynQvR5 ANekYGfCX1n0N+MadK7PK7/il2le4LlX+ePfowG3QImwQYhgCklsuBpFtThNxMReHkd9np wYgszfiAsz9hEo4YjOvXscm+bqTRwy8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741405597; a=rsa-sha256; cv=none; b=OAASk0kTD0uBnmyalekRc7GdDzILlXAqGZTLlaOXtxiTLLWPSqiEBrUR4B3FXmd9ILVJGC Zd1A5X/jIVYtDkEDxOedXgJ1cAcrJ2iYHQID1fnD0GNnal+x3hoGl1S97cFWzRoqLh+s4r urZkL5dCvU/wJiSR8s44vjt9peHI7ec= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=cRhi4T1r; spf=pass (imf29.hostedemail.com: domain of 3nL3LZwkKCIs0x91p68x2v33v0t.r310x29C-11zAprz.36v@flex--liumartin.bounces.google.com designates 209.85.216.73 as permitted sender) smtp.mailfrom=3nL3LZwkKCIs0x91p68x2v33v0t.r310x29C-11zAprz.36v@flex--liumartin.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-2ff8a2c7912so1151571a91.1 for ; Fri, 07 Mar 2025 19:46:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741405596; x=1742010396; 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=wwsW/fsMcg9hrgcDTPBIA7gFDpTcqMoDXdqlqDc9hnc=; b=cRhi4T1rMrUgOmsKrgZaVbuIvPcAhnKuK1X4ZowZ4zBSa8z0B6RC+kUBlOGfGA3sXQ Z80V9mS+P4g4ScEHL3txZykTmpsen5lVzGXgODORwtFcHn7OgdgaDZI7pZXWGwJNLTkk e33+QRfcmw+Kib7pa3g8y2mzyLu5kcBbG8kCrnGBZ8RiFtgGQQ+p8EAz0MFLpRON/OqO 9Nv/Z/KD+R85l4uVpI7eWsY1EbeWTa/R9YwK3lhZHed4M43FHOSdZeoMklz1zqhjyK8Y cKoVVh7vgUfHVL+4MtF0BRVyGNJlflVnwoxXkZU0sb+VqBxN8jVlTYtHb0FjZjmuQo/4 E3Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741405596; x=1742010396; 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=wwsW/fsMcg9hrgcDTPBIA7gFDpTcqMoDXdqlqDc9hnc=; b=Ma8PVHC7atO1SVjPhRcJ5+osXHLTQoqtzSMT+QElkLzXXpLIeF+dy/rlBzlUaT0JYz 5EfymFXR1xnTdYD80XHNUvB3mOCd3sqbTvKIw9k0uZGOTDtRFGjfuWq6K5KZjawmx0rD GEX5zu1EDud8jVeS0AATSYzBbhNl4IjahgFrjq1taaqzqnFa2fqIx5xH4ZbHbSReElAi oPyPNVq/EcnIxmFoWN+BcsFK0TzE6r6mkRVsnv0hSNm+roFBVLpiPhLZUblDdF1W/zDV JansdsedMrEmynPm/mF0c/xG31xG9obyj8geSvG2LpQRETwUKHWYejYJqkM8UzbmZp1P On2A== X-Forwarded-Encrypted: i=1; AJvYcCXokyPDVDX4nrcl/wbq4TkiD4XDu1EavnF6BtPIsflybHTKI2INv+U7YPSF7P49FlkYlvzTGS7rkA==@kvack.org X-Gm-Message-State: AOJu0YxsF4skiLLeLDTAiD81Ytmlz3S2t+VTTDgf+Of+hR1s6fivvkJD pL9I7iOaIIU2cyud7X2/f4ZjDEfsa5VWSRHUOAPufiRmJsEyJEvogmt1+nsGdyNpAOzg0vy9a08 +/vy+iRuvO+FD+g== X-Google-Smtp-Source: AGHT+IHRnkN6wrQOrKWkYrcoXo9vtRqSQ8tpu752H1VzwAoAmAJAj3Fmg6NgVlqukZi3r99JBHgGyN9zS8N/9j0= X-Received: from pjur14.prod.google.com ([2002:a17:90a:d40e:b0:2fc:e37d:85dc]) (user=liumartin job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:254b:b0:2ff:5267:e7da with SMTP id 98e67ed59e1d1-2ffbc1468f9mr3198164a91.3.1741405596445; Fri, 07 Mar 2025 19:46:36 -0800 (PST) Date: Sat, 8 Mar 2025 03:46:02 +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-4-liumartin@google.com> Subject: [PATCH v2 3/3] mm/page_alloc: Add trace event for totalreserve_pages calculation 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: 79013120009 X-Stat-Signature: hfgxrexnfn46pjzjegozwwjmj97c9j85 X-HE-Tag: 1741405597-431195 X-HE-Meta: U2FsdGVkX1/3lkwbtMphBqCXvlr+3d057ZhAxlpVgni/Waw/UlT8NghU7it+IqqCaxpsI1d01G8/+2gAmcNg+cDVAAkpqsvZDhgT5ft57D7e2IbEdGcU7e/5US6is6cS+8j5wvtZ3gDNKIGnCxNWCY3rQWVxsz0dReNP2c5eggca8oK5gZbf7Fpn9Gq5vrUTVgva8EFPd9mK9klKVWX3RrcJYedfYH1R3AGpPkfhg3sttOadO/K4XiMqBKdboCmeYBS3v0ASEg5VrNGa/efR5dgldxjC7y2ELxnfRRx4ymLtEtHp3QJxwq1Evu2H++VxvdiymXf1yrKx2+7L1gKKqanO5xaAyJNXrtLqNxVeWnEv3f+HxS8SOkNtnaYvqAspc1uzh27a/Hxc1bZrMsb4VwNh8njqhw4Op6WhQl3lGpCwN5KxPUQWUU7vysq3W8FLqi0aLgWn39gXStTT8dPVXtMaWwzieQFG6F6aaV1BSzjaUo3KCnE4daZlJodcxjJtm/361A8JMg3OA6hSrd5IGdZseL9vve1ooIE3O0uqcaq1n302S4g7Ec3joI3h1TstYOaBqHFUY+FzG/1YT0jh/QIuRwGCgcwM7WU49Xb1SGcy3THhQc260dP4wzmQwpQpwr6ykFGbIxm/iH+tIktNmxJf5Yc30b1hdXLii85FlIlrkACy/VeNFxtnT2StmZ43873mC6PO9yjeiNuYQCAHkidHWAUW4TpwbYTHZZWtx+Z57RRJudNpoUAOmHmYOqC5zmQQQLixaL9w2sOmTcJ3RvxKMvA9RRGFlAThy4jgdc5EsR6h7ulGhR2VbRftr/mY31/A8IBN4a28fCBUD6BTMsOOu2zDW9JR9ASfY+jzgx2ik8QV7eEnL8/ZDo+0WTw2wFLIODVIiQoe+gBIL4M37QKZopL2L9BgYTo+d6mcMcrv62sfv/+16OeKSMSSUlLq3bART07AO6emnOn7ibW W2IgpXs1 U3BwMtV1oIEP2xfVCExMOoqIwxzAGp1K33bq8FBhK3KYCVugbAeSiG10nhQ5kSFVphBXM1PqS5lyuGbVzIQecOZqqddr8br3aWlpiT4/pJH4RZQLgfFbUBUAdD5U6++IPrOticxx+xmBVC+J5eFJ3GFHuDliJjGzMJnfyFeBMHirawbmJGD451IZcqonaG4M56Q5l9qQphUQfBBTXw+V8h+Kw7KzsaTii/OX7RLogBIc0AZEcSbc4UPJeSQ97ZAxoemiCJ4WO2SeDsmedlJLuu5tvF6nahTYektlP3nu8PwmHvAqsI94CowzLv/UGU74ts36D8AZQMQhHi10+btNbaFNhj57FCmZ5KM6ECviEtCvdJIN6mU/rZ6Wz+xP6dniIKL5PCymcse+45a95GzXVMoD5vP/949EsI5qEKUk1Sc3A9dxNlOSHMB9TMImaNQAFs4WxFc1TfPytbXJN6u7og8tWWJiy1SjAZyHoZQPuMmmceumqwpR4LErhR8fmyLr49DnOd6rY9c/C6fiCcHSW32ELohfxu5FD/ow1C2UgoemMdzBzgiD73Pyx1Gg3xt9xMsvGGEdXsGQ7zTVLOmdlSPejcCFtF3L7QP59a1a6pJu7AgI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000008, 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 a new trace event, `mm_calculate_totalreserve_pages`, which reports the new reserve value at the exact time when it takes effect. The `totalreserve_pages` value represents the total amount of memory reserved across all zones and nodes in the system. This reserved memory is crucial for ensuring that critical kernel operations have access to sufficient memory, even under memory pressure. By tracing the `totalreserve_pages` value, developers can gain insights that how the total reserved memory changes over time. Signed-off-by: Martin Liu Acked-by: David Rientjes --- include/trace/events/kmem.h | 18 ++++++++++++++++++ mm/page_alloc.c | 1 + 2 files changed, 19 insertions(+) diff --git a/include/trace/events/kmem.h b/include/trace/events/kmem.h index 9623e68d4d26..f74925a6cf69 100644 --- a/include/trace/events/kmem.h +++ b/include/trace/events/kmem.h @@ -402,6 +402,24 @@ TRACE_EVENT(mm_setup_per_zone_lowmem_reserve, __entry->lowmem_reserve) ); +TRACE_EVENT(mm_calculate_totalreserve_pages, + + TP_PROTO(unsigned long totalreserve_pages), + + TP_ARGS(totalreserve_pages), + + TP_STRUCT__entry( + __field(unsigned long, totalreserve_pages) + ), + + TP_fast_assign( + __entry->totalreserve_pages = totalreserve_pages; + ), + + TP_printk("totalreserve_pages=%lu", __entry->totalreserve_pages) +); + + /* * Required for uniquely and securely identifying mm in rss_stat tracepoint. */ diff --git a/mm/page_alloc.c b/mm/page_alloc.c index e472b1275166..69ceab250979 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5827,6 +5827,7 @@ static void calculate_totalreserve_pages(void) } } totalreserve_pages = reserve_pages; + trace_mm_calculate_totalreserve_pages(totalreserve_pages); } /*