From patchwork Mon Mar 3 07:35:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Liu X-Patchwork-Id: 13998263 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 959F5C282C5 for ; Mon, 3 Mar 2025 07:36:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2EC62280007; Mon, 3 Mar 2025 02:36:29 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 29BAB280003; Mon, 3 Mar 2025 02:36:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 13CC9280007; Mon, 3 Mar 2025 02:36:29 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E7C76280003 for ; Mon, 3 Mar 2025 02:36:28 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 67CD516039D for ; Mon, 3 Mar 2025 07:36:28 +0000 (UTC) X-FDA: 83179432056.16.584534D Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) by imf01.hostedemail.com (Postfix) with ESMTP id A2ADB40013 for ; Mon, 3 Mar 2025 07:36:26 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=0TBPwRbA; spf=pass (imf01.hostedemail.com: domain of 3-VvFZwkKCAwxu6ym35uzs00sxq.o0yxuz69-yyw7mow.03s@flex--liumartin.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3-VvFZwkKCAwxu6ym35uzs00sxq.o0yxuz69-yyw7mow.03s@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=1740987386; 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=Dud7c2TxbLi6+IYOTgQggFEA6YV42cp7u/kz+2ZakPM=; b=68oTBPMo15odb1RApSt1aeepaaW1OjV+VtQ34i5pKXhKphl3yX9yAOY5KzhDOCEB+3qqv2 VWOZjXXhS2Kmwqv6isutLrfATfRTHUNY/5j/ZsxXWpVOWW9+naziVo1Z6BjbvEyhCd1G/6 KZpn1fNVvtvC3eU1oNYQlvjY+1AXkXU= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=0TBPwRbA; spf=pass (imf01.hostedemail.com: domain of 3-VvFZwkKCAwxu6ym35uzs00sxq.o0yxuz69-yyw7mow.03s@flex--liumartin.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3-VvFZwkKCAwxu6ym35uzs00sxq.o0yxuz69-yyw7mow.03s@flex--liumartin.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740987386; a=rsa-sha256; cv=none; b=8hzlJkEWzvwLKrzJz1ckaxyzoqC/LVagrmpOfe9VQOSdZhiJQfWlKn9kP85qM/ojHsltrS SUl6bpBzUhVYynKf61icWjfBS8tmnXJ6I2SNzZLnTcHq/JBZa2u/x5vf8IL6ezdYAKNwvI l3/T8cjkPwJvKYvPvjN1QIgyZeXKWFE= Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-2feda472a38so2832330a91.0 for ; Sun, 02 Mar 2025 23:36:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1740987385; x=1741592185; 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=Dud7c2TxbLi6+IYOTgQggFEA6YV42cp7u/kz+2ZakPM=; b=0TBPwRbAQRn4XboWHJ+7wSUYOoJc8jrBQyXII9Zkhb2YLp186hDjl8SyrdZwe7uuyQ w/wESuiLmsYXRqKdZKNaev6GqzLICO1raYhz+wmDuSiCvasn8i1ISfTEpjycGSlbbj0T e5IkPCkbiTh3Ir0ppUThuLdmU7xqlD2gGzFRBBziae/PM2NkGQtcg0Eun+3QNT+sMqCC sNrkKZSTnYu/HVL6sgCORQS/DpVIjovdTILN9AjqNNcJFI1vLro7lBhKTdxMr4cXH9w1 lghGOSdCDtaZEVwx9/fum/nkml4Xau7BfSH24H8l9Bi9t6JcnrGbwM9APHFhYWpkCfsV KuiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740987385; x=1741592185; 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=Dud7c2TxbLi6+IYOTgQggFEA6YV42cp7u/kz+2ZakPM=; b=VJQPUWN9Qm51hoMVcYLPoFhDx12CDyEAz+A6nQwji7H15xi6XRd5kbBxUhHvENUtVa PbnML2lM2v3XscvL2NA/E8DoruY4xAn1BntuB0dLk4MUhHBFV/9BelK1U1l9iLjyLqLE cCz3qlKkAny8h3Hj9jAcmnIvC0d7a9VHUJHAOjUwgy71kcBa/S2HJ6XmeozJFSN+ysz9 0CCkEBkd9Rs2UR1U92QRY5+XF0LnbuFtToD0/aEECa0y/RU0UGwETsCkYnCgzLSfEphc UUcIFiMT5/4fIqEju16AZik62XdKWWmGYeGJg0gdY7dogQdyx2PL4EMq4RXZMMAN1FdR RJcg== X-Gm-Message-State: AOJu0YwmcqvfzTGsIrI/moKenlFjk0J0NiBgz163B3b1BWoiXKwFV5pH MRUDlkQ+QQteF+VNyClo5FU6PGHFUlNIyyNR9ryoh8Qe+IDM9UolkBL8DJXJ5Wk+CwvbQoYpIQd tBAPNM0XGmm/tAQ== X-Google-Smtp-Source: AGHT+IFu3k0t7x7aC9jnNdNxAym+FWB+ctUCQOORuCbrlB8y7Ugzfrku2uz2BvI6Xcivm42AKnSP3V/tiBX32j0= X-Received: from pjl3.prod.google.com ([2002:a17:90b:2f83:b0:2ef:d283:5089]) (user=liumartin job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:4ac6:b0:2fe:b77a:2eab with SMTP id 98e67ed59e1d1-2febac07e39mr17032210a91.32.1740987385528; Sun, 02 Mar 2025 23:36:25 -0800 (PST) Date: Mon, 3 Mar 2025 07:35:35 +0000 In-Reply-To: <20250303073537.2264323-1-liumartin@google.com> Mime-Version: 1.0 References: <20250303073537.2264323-1-liumartin@google.com> X-Mailer: git-send-email 2.48.1.711.g2feabab25a-goog Message-ID: <20250303073537.2264323-2-liumartin@google.com> Subject: [PATCH 1/3] mm/page_alloc: Add trace event for per-zone watermark setup From: Martin Liu To: akpm@linux-foundation.org, hannes@cmpxchg.org Cc: linux-mm@kvack.org, surenb@google.com, minchan@kernel.org, Martin Liu X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: A2ADB40013 X-Stat-Signature: ztccomnc5bijq3nz4b9naw4998hdgb1i X-HE-Tag: 1740987386-165443 X-HE-Meta: U2FsdGVkX18VpabxWoGH7JPpVBJOBg+cuElcfnDrwf20AMwGfpirfIkrci2TIjHIonwoNBwhYnzXjgf2Ztc9ahtNEjZ+WJeGgVHJG+nZ3q6jvDyrx+jaCDpcBsgGNvbj6gv4R9p3OrtNbj2ZkXU+kI23JnEDHy030ei84GE76xhX/zzilEHwOimcvtyRBGDtj6jNdYG/P5FKmlbKmVtM7Zljuug/Fn31tpB+AUN5WviRAafCVmL1L2JEBDD0mTRVwlmsODjWuLwzJVJPfkiWTI7OS0fp1mXxHKEPDCPRjdv+wPOkARXfGw2Z0aGbGfr0AQrR4peVPH2EVYFyMvycXLoYJxfMUn8oCTnQ3QPooKdxytudk/PnKH4HkbP1vfb1yTuQVdU7H1Axj4IRn+JTwniqPtAsfCTMqeYm1QWtj7XeKKaEs9oWvAkbM3o1Jxylg8mjPEfsszC8vb3acF/iDb9pk2T75ijEplKdKKwEIct+4LMSNvzfRQKoWb0cDNJDPZztCR3cJD6UMgs8MbD/HxoWMttfo1TrDxxGfcJtm1m7KhublBAyIYMp0cwxcm6NlxtjWY18lf5s6LRJkPhcqVutnjLxvQPXaBMSf2q2em/8Ffm5rHwZ+7CfZaC/QZq5i4p8EhEL6/5NLb/wx3MtOKlFYeibdNmcz8cdgpzhTDzTq80NVC7tpcJpB02H97KMk+Pihvrbf9CEXIC61cF1dE3Wdg/tNlmAbM8jkQEBrx+3vWo9pO6sWGF/etkxdZXzP8JJd99QdIdFOtI8lyjlh5MXSH/X92W3IDPnlb03Nf2f1uEt84AyEChNpGSb0OX+ggZ6KBqOt6QoNTRF/BgX7Ugtr4fK4zCiDUK+eiV/KidKbxn26KEkke7eGlhunLCi1CX+4/qNUXUDq+uj+SFXtvEuTf5LZolWlU4E64Lqt8oTa939bC0Fxb8HTsmdBvuFlQNrJ/XiLPzoJ3bExq3 8HTxbLfN FCeEK151NnN/WP4AJtIWqsjnaalTdeu0Dj2UQ/1+RBbcThe65cMJ3+fiX6V39ZTyzl9ZoJGkE4PdXDoi0dqBn0hXgG6Uko7tesmULTPPr9loZ+uzwcy47+CiOWo1nE6XwtEdFciu7VLl7o5RHsbUUzaHHmhLV0cIrrR6H3dhvk6HZlDkzgIsTdBuKaZLVxlQmup5A5/S7dciVSBazeH3tn+JjBqfbxDZRg6ZJsMUL2z+xqQTf+q9KfozSMgbp5A0aiwGnKIX80KC05gaQ8YZNJtDV4HZqAlla6NwoJ31M86fDcE18RzJK2KIOiqq1oRT+3tKgoPqncyzFotlKGFAsOT7jx04q90UtHcyOXTqQ6f8QJ1xjimX9aOlQnKAzb8sSMMgEzCzfgfL7wbA2ZYO93tIe5lJfCED0zlxbgY0E+mIjN4Axf7O0geDWp4x36FkpKtXI9P31t/pVkzsaf1NXPsruQ5bJeN8iZt7LcNGIUWpzsy4/Ezso8vjJWqqEHtgCJlZJrCaYUfP1soe53d6vffv/G4/Rh2PmtgLj5H9ZeyOHtwNNQ4/rj9yhGVUYMl8LrwZvn/vob4kICUgvR9y28Iy7ml2DmZ39AuMb75/VggZbX6I= 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 --- 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); }