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); } From patchwork Mon Mar 3 07:35:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Liu X-Patchwork-Id: 13998264 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 4C0A6C282C6 for ; Mon, 3 Mar 2025 07:36:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B7787280008; Mon, 3 Mar 2025 02:36:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B2709280003; Mon, 3 Mar 2025 02:36:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9C7C7280008; Mon, 3 Mar 2025 02:36:33 -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 80421280003 for ; Mon, 3 Mar 2025 02:36:33 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 029CEB07B5 for ; Mon, 3 Mar 2025 07:36:32 +0000 (UTC) X-FDA: 83179432266.19.C59BFF6 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) by imf26.hostedemail.com (Postfix) with ESMTP id 37553140004 for ; Mon, 3 Mar 2025 07:36:31 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=cyBPsHT9; spf=pass (imf26.hostedemail.com: domain of 3_lvFZwkKCBE2zB3r8Az4x55x2v.t532z4BE-331Crt1.58x@flex--liumartin.bounces.google.com designates 209.85.216.73 as permitted sender) smtp.mailfrom=3_lvFZwkKCBE2zB3r8Az4x55x2v.t532z4BE-331Crt1.58x@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=1740987391; 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=aT/2nSIpPl8xyZ1gGY7JrxR1j88FRu8+V1+vDt4/3ZM=; b=se9hzI4pM4Pe9z2dNksuyEAChfjZBjBLPLDdxkD0LF7egOSZG4JVDDE/xkE7bnNR6Kojec JoduI58Rc3kPwd88a/gX19vtohvo9wh4h88AN3x2KYlVdr5niVCjX+9JxEly4IPVaO5Y2x VSgbTgVY3PW025VjqRmgBsl7zJBxdxU= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=cyBPsHT9; spf=pass (imf26.hostedemail.com: domain of 3_lvFZwkKCBE2zB3r8Az4x55x2v.t532z4BE-331Crt1.58x@flex--liumartin.bounces.google.com designates 209.85.216.73 as permitted sender) smtp.mailfrom=3_lvFZwkKCBE2zB3r8Az4x55x2v.t532z4BE-331Crt1.58x@flex--liumartin.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740987391; a=rsa-sha256; cv=none; b=pqOWIkcltq4/NtEDHBK9UNc2np6xuks4pjz7lE6aQHy6UyvyCU9WnbmMI2yWDZfMMdkb3F +n+vE2y2mAPF4pdsSTn/eep8mHPKtC3VFNa4LacrGSoAGrkb6ZHwcorbvetrycP12xIMiM 8lPaVF6ZYbN5pN/h6b1gcZnZh7cCNok= Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-2feb5cd04a0so6233835a91.2 for ; Sun, 02 Mar 2025 23:36:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1740987390; x=1741592190; 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=aT/2nSIpPl8xyZ1gGY7JrxR1j88FRu8+V1+vDt4/3ZM=; b=cyBPsHT97YqpFL3mss8vQArCD0MlO3AqOCDQGt5/z43hkj+2CxL1HOUEU0nLlrAenA NMEtgbdQaduKpd9a7t80RSuU27huP7m6G9MCXnTniEcXFvWXc3bsxhrFf1w81tC31kK7 WooRiM3pzadsm/t0XcpEu+ehaDNDFrmNGDtFflYNH7uIqOkAeLp3gSIR3dkXC62Uy40n u7S52ru/1Zauy/2lgOVb0e462jiv5Cwc9UMDlV0Jo6As1j3bNPYgvyPhleuDcqlT9TQA axuXBcMpvinDHL/MmaVP84vRKF4psNf23n9C1b/TePRePy6ISfB37UEU2xP1PoUURN85 qi3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740987390; x=1741592190; 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=aT/2nSIpPl8xyZ1gGY7JrxR1j88FRu8+V1+vDt4/3ZM=; b=Za4IIJFXQC5lqHWrtzcH2AMOGGE8E/+7fNy/RDzq+f+2D2xcDrZeEVgaxekMDrClLX mfvnGYc15zpesTV2tZ6roaVV9l61FRzFzStTPYlLk9+5SbguuzEc/4qNIesQqDwl0zbf act74Pts0kiIJqqBZt6Kcjn+jf8e1WpymkOPSAbURteWbgCUwb/pV6t9ZDV6ecrrZ1YZ D5DlvicFWQSs7dT+jcwlg5JpJqGduyUmd/dZAdmXezZUCXSJTxZTrSsc140wk5WKivK4 mj78ZELcH+VZRRCfQ/L7cYXuSlfQnbcIpw0Kdrno4j0niiaxuCEs1pv7HRvmtVPJThaY eTJw== X-Gm-Message-State: AOJu0Yy9TjmlevjJrbI7JyNJjGkurLHyz/CldtGW/VhIaiNrDAYc2HBM E+JdXtm9S4YpkVG9s5SswTgO0RP2crxpV0PLOBPMNOkIXXhHLEu/V7QL6ZAS6eaLOgxj6uSCqaD AqC3xU3ks1S2tiQ== X-Google-Smtp-Source: AGHT+IH9xWaP6IfuE0TuyzoQt7qzTU8tqUFcTCEN74GKtaJSI9mVt8w6BiRXCAsqt4ROqqU70bYUDSl3KYv/AHw= X-Received: from pfwo4.prod.google.com ([2002:a05:6a00:1bc4:b0:736:520e:b9dc]) (user=liumartin job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:cc8:b0:736:5ee3:64d5 with SMTP id d2e1a72fcca58-7365ee371d2mr1948240b3a.23.1740987390125; Sun, 02 Mar 2025 23:36:30 -0800 (PST) Date: Mon, 3 Mar 2025 07:35:36 +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-3-liumartin@google.com> Subject: [PATCH 2/3] mm/page_alloc: Add trace event for per-zone lowmem reserve 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-Stat-Signature: tdzf7autt73xftkeddmpe7j5b8btb87g X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 37553140004 X-Rspam-User: X-HE-Tag: 1740987391-880349 X-HE-Meta: U2FsdGVkX18U/8ra00gKbQeIScXUj+rh5jqcm4GofxR+qVUsiDV9fI5PgYkVlk0lsufkoshl20Hgv7//mJyt6Pxm403iOjZbeEmMo8frz+0vUlvPdOA1TtAbjisQIP3wM7pSY/f2RS8RYNIaCI8QfrNhfSlINU3xpt7LWVjzTrJOh1hQ0dq3zf/ANdBNw2nLUy5Us0yDMMfhX/CGbVjd8NlNdCigbgJZjjCxnacs8goKRUXijevBjVngilEd+FOGkSBEUeiL9RHd7Ex3pFZpJAC0iUJ8LmPMyKnrkuSSBhqANCfDYJDG9l2/r7CBYwF+jguaMmQw2Ez2hGU1Ey+Mz3rFvLjmJrSVYcPlCd/KpPPKRYidTi/wiYRLXtSCJFiEMv7tm+/3nPBCAE8WG3rBSGi3cfvsUFKhjhr5a0WtMkT4xVOVFz3jWJClB0wVE6RUsODn2WY5/GpVdCmadht5FPmheiioRV/m4jax5d5R509F0m4TxEFreklREnV7gIyl/LhAV0VSdK2Sfvs6QiKjgjJLuQqr7QOM5WEvRI8m5FZFNE1LcGcu20bJsxVVzGfgdhRaZk+oQk/k68lYgGripwrsdOeUUguxrXPuFPHeWJQGN2eS7R5euQ4NZHaR7b8aSZniYh3ZIKN3lqWLI1aEmh/b5euzEUHri4dM7iFqslJwTlkh4DMUlTCqHzz3dt/ptQjfatIF1eqceQFozjR46pW2iDwrrB5R9uUTk3sAwSlQ8V98TN7thFxMs6rS7fthV3Z39WCg7cNK5yZDRWWEkBUtrRyh82O8BCsVWKvHeUi9fInTMLGfSgzjHjPz+nx4THRgRqvi5XENaoPH3oj10V3MpMojRnHHXy28AgijTIXLjVRvE6bsrtahycgnFrOw0jpl71hshhrBkswY6ZVdIc+iTBwxynvpghltv3bpX+t1iieRfpaY7dyACQ92+Vud9sANgAp3m6OZwchNh3y 7Or0/OqH 4Ibm7qGPJ4zIxpR1XR+gDLxNWLnjQ3vY8xAhKWfRnhdgftIVaywSeHgWq+Dn133kl2L3pqe5lJN2ug7KOA+UQEVJQE+nnnAJ1kpA358ERUZ2hm66YOAlqdr9It2o/acO6afu2ppAfqPm3DXvNpAFaJhdwk0culW8GXbpifAuTJZ8VyhhZ62yw9VF6AnKaNV5zMb7dxYPhPhF+o5+DA8bxhELObiAy+2QdFX3mvOh00J8Tu3LBL8/E4iB1gAUuPyIDRg/jZVnTsQQPSjq9OF4kTIwcFGdRiwJb6OD0oa832NuXv8u5axa4UimOrROiezs5fiK2ZFd6YFL51fJsSWpqtT9Dq9GRuDe7Kp34p6ixD1a7inxmILC7GuliU+JWMxcwo4Ps/LNTQWfVZhf/9wTR23vUq9y5gY5sPVr4kPFx8uv10PhOpSe6NyDPLYSJhIutjKhKPUYgFygEEa/EJAR0Yguc60w1zcpolFy6qqX96dzOkw7OcY3znD8dNPXCaYhphZA/vUBCRcD8r/bnZG5bokDfr01tYZ0FIYcwEf9bzf5WTQWVkFjHD3iFij6rERGa71g1zl45L8Bk6c4ZNkBMF4YU9XOcYm4wUh53hDkCWe2EEyw= 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_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 --- 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..48623a2bf1ac 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 Mon Mar 3 07:35:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Liu X-Patchwork-Id: 13998265 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 AD715C282C6 for ; Mon, 3 Mar 2025 07:36:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3D71F28000B; Mon, 3 Mar 2025 02:36:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 387C5280003; Mon, 3 Mar 2025 02:36:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 24DEB28000B; Mon, 3 Mar 2025 02:36:37 -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 00B35280003 for ; Mon, 3 Mar 2025 02:36:36 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id B11481403A5 for ; Mon, 3 Mar 2025 07:36:36 +0000 (UTC) X-FDA: 83179432392.23.D1F8AE8 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) by imf19.hostedemail.com (Postfix) with ESMTP id F2D4D1A0008 for ; Mon, 3 Mar 2025 07:36:34 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=K4oE0S4f; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf19.hostedemail.com: domain of 3AVzFZwkKCBQ52E6uBD2708805y.w86527EH-664Fuw4.8B0@flex--liumartin.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3AVzFZwkKCBQ52E6uBD2708805y.w86527EH-664Fuw4.8B0@flex--liumartin.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740987395; a=rsa-sha256; cv=none; b=XcfxxdxqRVkw2nyfZUY0jDTYvM5c07lDbrmvfJExo4+ckhqwWhDcvifMv5w1gUr77FYrmI QeLYhYhmUg/g4NnlNAfIKrloQee/HYoAgvp6kj7SMSWd4ynTmi7MRmXNc3+u+EsPTYf73l jEEG7LnF2B5reoJp8KBKZYCGgVAPIVo= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=K4oE0S4f; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf19.hostedemail.com: domain of 3AVzFZwkKCBQ52E6uBD2708805y.w86527EH-664Fuw4.8B0@flex--liumartin.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3AVzFZwkKCBQ52E6uBD2708805y.w86527EH-664Fuw4.8B0@flex--liumartin.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740987395; 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=m63VHEsKYrHaiqlADM6hIgfCjgLMjgmnzzOauJ/386I=; b=c4vks0iZ2UdrHPFkTBABpzSNX8dxNw+0Fqr+ThPjQ4r8zBzpnMEax7A2Ee7ia9iaQn9I0y MKBbteA2amOmF9wa/st4Ug7tWjzVmg+At76l6AGKX8wWluRgkthIYEGxRFtERWXudmyEFB ACEn/leTJf1/2FEq0CD1zGFkwirtIkc= Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-2feded265deso2695396a91.2 for ; Sun, 02 Mar 2025 23:36:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1740987394; x=1741592194; 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=m63VHEsKYrHaiqlADM6hIgfCjgLMjgmnzzOauJ/386I=; b=K4oE0S4ffM1GGf9INy7YnFuZ/xdIcsep0ZSSYdPBOU5bqqSoJwzBAW5m/5daaFn/pW 8IskHCfLfbZ5fVXIdbnh37kYc20HEWv7SgHDKrE5oxysbzPn1STsY1J59IWDXXiOREvx ev7n5zJcAsTzDD8MABxyA17IBGMfT2/NFKd8NJVB21yfcpUHZQMJps4moxALMSbM8VCG UBcxKSDy9ZsI9TvGdCIQAitA9YbpqcqT6cYItwiJOcx40h4utvXgxMzbrnuFbeELWw2X YUWMUPkpoy2D0YyLosd6MnRXlHcZ5OXTbTZtl1AGTilDRlFC8uMBCrvVW0KdePEL1wXo S8Qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740987394; x=1741592194; 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=m63VHEsKYrHaiqlADM6hIgfCjgLMjgmnzzOauJ/386I=; b=ueMNt8VK4tnr9VnSeAYSM0kXsgR5EHo7mPpAdSDnK6v3dDx9IfBtZTGUwRibT0Bagf Jb0g+ax7GWTYyZAG9xm9zxsS8MlOd31uyfmb8iMHw4o1Ti2HXxeaX4Ajb1lKDoBvFrDx EIf8Sm9wkTUNTNPoK5Pys57bXn9NGc/dteWgeIaHtqwsrXYSFSxOIFpoBphrIDxIdsmW Du9iReOWyJGNBvF4RztFeOZ7R+gyg+BtD60+K+RplIr5za6bUTscb5MjFAUuEWeWiHib SEgcHU5WBJDDAaNJoUqN4opMxWknpjkAbUa3QdU/cHYlmNstesQn4/SpRFaiA+XPr36O eIUw== X-Gm-Message-State: AOJu0YyWTnpPTFr07UlgIxZLVxwo+D5foEwWCBT6ljhwmDLik9u8Mbsk I0QbfBOR21WW//ntc2gpDN9uELaN4qBe5oE4MA0WQ5REc4BI8+YVqODN4fiMUdS6/LRUri4tRiY uWs/tpzTqj1GCwg== X-Google-Smtp-Source: AGHT+IErgYq9lXtFMV4cVkh4MyCaAshtHR7DvEL54W+BKW+axJMUpK52DheZuTQwGau3/Ppy3UJcyIWuhRsXbZY= X-Received: from pgbfq10.prod.google.com ([2002:a05:6a02:298a:b0:af2:2a77:3a67]) (user=liumartin job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:498b:b0:1f3:1a5b:fd6d with SMTP id adf61e73a8af0-1f31a5bfec9mr5286768637.17.1740987393859; Sun, 02 Mar 2025 23:36:33 -0800 (PST) Date: Mon, 3 Mar 2025 07:35:37 +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-4-liumartin@google.com> Subject: [PATCH 3/3] mm/page_alloc: Add trace event for totalreserve_pages calculation 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-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: F2D4D1A0008 X-Stat-Signature: 3h8brwa93skedrs7k8mjmx6ddpeh7kx6 X-Rspam-User: X-HE-Tag: 1740987394-367327 X-HE-Meta: U2FsdGVkX19fF086OXG1kd3VyWn8pg/Lp+X+rrnU+EnIlCt958pQ6xaTvVrLcf5REH24pvGW+eGklC21TMAjgQieLXd3HYT411ywzwB+1xYhqJlf0LF17NIpjMfpTG2AWf0h0+sMywEJFF7gdgq8opqFQuUw6E+Ixisk10WSQNdjPVPLQhdjrfRQ+S7TLRh7tfrDZFCNHypLcTnP3q30pNWSbOHGuY5D2koZNScxC3qp6kTynY/tKzOLlX0RbMGxuDgPhWqeSk8LL2ADwO0+00t6x+hqMd7GQgSui4iOEOkAeDrEqt1RmhG0Mb7j6Ax0c8x/4eSscUCUbPnSrW30rWCC3+wxa6wYGfgols2dbgiP74U1IrafE7NRhBwR7JJmh11adLF6Gog7ncE3G9PL2EeAYz4DYG7MDUD9DMTsiSvp7FbnnewfwXhG/igQ8NoUtxqi1KhSB/C9jISF+lvPcyvju709xSJnzfxpZ/n+hiyGB1osuJoPjl9cBnGEJ7y1dU+tBkpQUQvKySA8tdidPKBQkGSwrazN5T+Tpqi2D+DMcmCZn2vZEIw4dZPXdJqscs7LxmnLD6404i9yUYp3DmzDJdEJRjcvoygJvETftfTl7gOFNLCbeATsVzWkvX/Ls85cEs52dYva4eGspKWGj2/xFLihaqEP/Y/tfjhs7JhCII3Btgn1zAvRboq4IK/pBPLwKVng3S+4sDbbO90zEM0jVoFTvXzvc+7IzQLOvfXqdXq5Nm7tP36y8oV5qRwMwP/c66b1fxCK/Tmpf5Epn68fMUsUcEFSe368HmRjjZOgRdfn+/Lm/kCIXZpOEyte9D1UCqMBNngF0Sxy8Ht3cupZR5YezKaDxukLfsbWm5bEUv87yfaeQZfkn8wxl88erNz19i7EuGCq9e8qxB/Cm/+5nLcii2aadbAJrfuSz+UTb2N5/9ZY3T4Q2B287EVowJGnSoL1D/tY79OtdAM H5CUqo5i rMmM8Maua36G/FMuiay26uwW32fhG1Rva69gjQR0WMyYGaMO1pKaJ7saBKNfepcsACTftVGy9Bl9NKTaAQt0E+h5aFmeqbe8Vz6SUFHUpCfWXv8UyKsa23f1Cx4fJNo85n7umsfLdPMallPCao38ZwUO9+ITKlm2Sb6SfQWqEK21uSq4Dc82Dn6pPGu71uBPVkG5rsjGEyQy2Aus5FeXBJVlThVfvKFuoiWe6E85nWvO2ozkfQnkeirIfoi3pXsQb1D+zisSu2B0ceGL2GJjeQV8EI8HO9AuxbkBRIVisNe/WjPMgJqEifx0px4LYZiXUPUy1V7AnTmJUUh/RJ/YZGKLXuKTBN9cofDLbgtxbsQfxGu5f4eSWm85wKRwouZ8nohlsEbv4Zn5dsSKz2PzHsPz1Y0kZOOm5ZcsIO2OdkwMZm90Xte3fbzGkyJdqBRD/VmS57BAfRSb8RfRMHq8JogmN9iN3BkT7VTGSIN2+MvrAF2B8jNxd36tcSDtWxlSl17nrSgYS8uHSxJx2lIe0N+T8WxbhNatVAE8ELRew1cMC6X2Prh4n1qli88Wqv8yLnsLZYVeQfEDjZ0b+FyZsQYdAP4h+P0AAZ3QlYDXFT2F4ihE= 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 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 --- 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 48623a2bf1ac..dbe19b0ffb46 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); } /*