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: 14007406 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB6D21C36 for ; Sat, 8 Mar 2025 03:46:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741405589; cv=none; b=iEUvlGaIgbIRk30MGQjoScCmTQzHbMB/uhS82jOI2pI9mKuIwfNxXnYCIlaN+Z/L7fgnlCArHeihGYaEMSHTTG47StCDc3CNFt9xM7SPTAZZMRE69YS9XWuiZYY3h3kCsyLqbgHbT/e52gfNt3XWtDYpOuOhr/gX6ZgK33rPInM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741405589; c=relaxed/simple; bh=rvQRWCu9cS772ZrTi4BEdrbP1w2fnh2vicivjIigjvA=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=hg2qtJc7Z5I0ew8upWR/ueZFkDppkFHX5y2DuZyeizxJxi2KVKTePcpnFVJk/EaFX6e4syYIa6jnocQuMzBNdn1DD56nUARuTwEIo1cehRjsyNEInErE2017/U20uwKqw7AXjR/IqBjOuXq3kLuckrmuLUm1CNrVlYSs5uXXh+8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--liumartin.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=IbxbZLMZ; arc=none smtp.client-ip=209.85.214.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--liumartin.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="IbxbZLMZ" Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-2242ca2a4a5so14854695ad.2 for ; Fri, 07 Mar 2025 19:46:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741405587; x=1742010387; darn=vger.kernel.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=IbxbZLMZh++mBXcNZvDirbOzqKxEpwtTwEcnNmvMV2FgVDttzpLg2YIE77rYq7KX5R Sl9Pe90BlPL8xy6UIM5Tw7AE1ZtaJJQ1jWBxO4EJAd5NievmLMcWpCb6GyHxqaB+zIo6 bZdnhbZPKihMQfvMNrvKc2xKZllLnwyvAnqxZRCNXjLSOK6HFBD8cYjLVm6lJDrCHcBl iX8Fk7/gjopnKKFVhzypGSGo0kL8FjtfYNfeCr6TY41dGsl/VqNGs5a5zT08hsQe6+dm Wb2Zw94KSaPJBXlqROTQ83fpZ1ezkSEWe4EBlJM0CoZighK8bXmVC/45UtsL5tnHcTfW QE8w== 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=MMwSN6cdmkVZPRc69+UWqDQCMVzN52yF0iJaVyfHee2+LQkKOtImXGzqU2Q3+TVUnN yHGGXbPL/5jXJgXdqx/p4U3Ugjnm9OBqncQ+Bj8wS0XKgP/gLmM++0+PTHiUX89+rSDM 1ZK6LsBliKbfNJnk36LSC4FXt4JRwvbam/uyVYfKWlcOq0NWgchaioSd5SBmWuxFQKrA dvDZOht7ovj2WkYyxot5D2dbykXHZy8ZUVex8OA/brylq71NRDHRhc2EBbZCn9BWLGUM NmfGd5oMVKfMa0F+VY8LW+SUhe8LHOQMjPsvuL6waBjRnRferWOobt9ZR36yzA2JyFR6 ChdQ== X-Forwarded-Encrypted: i=1; AJvYcCWoH0cnohvB68X8CbJqfbQ/+WsaOThtURQ8PE8FZ6U3MZR5+F3FVAJXE9CI6OwXR5/xxnQLmwmGIFg92FlhnkXXMPk=@vger.kernel.org X-Gm-Message-State: AOJu0YySa77LPFQ+VSaytBs8+vcg8ksoxPKasyNgx4VfxXJYejB9REkp I+l2DOdNat7YodtR01y452PpVLU8FGk/l9nk9/sia85oUpPgMRlMoWsSqRUfC/N/2EROVx+a9Gk jDkwdFENUA4ggtw== 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> Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 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: 14007407 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 70FAA17A2E3 for ; Sat, 8 Mar 2025 03:46:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741405594; cv=none; b=ZjzSJhkONfxiylhYkfqqM6PeGKsg+nkd4K0/lx8ND9P42B9KcWc33O+i+jFuuakAL/4UxY1EISgEtsCAsNod43RSCwOYyAw79WAb1W8xk9gtOjkfsRIdkLHixPsFq7qLInK7FU0tnr6bzTH+2fnbL+S/Iosg1LeXrOpQShm94Cw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741405594; c=relaxed/simple; bh=vJHy2IUPEgEsBBHwQ9JzIOPIFYSSfIpFmAIUuojoxHc=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=KHvlPvzNmENQoTSiAt5T/Hl1nnFplLaat5cIhGhmxdcZuzdVB5ZNKiMtrbg+8oToYwehsU/8XPDX5xKWuqMsJ8JjGVq/naFrHx8I+x01Edg3sGBI7rammInuLNUspVrh18Yw+ix6oTNhyF7E9Vg9CSXBgEIG/dBgbL8Ozu6MdDk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--liumartin.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=DaqW5zSc; arc=none smtp.client-ip=209.85.214.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--liumartin.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="DaqW5zSc" Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-2242ca2a4a5so14855295ad.2 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=vger.kernel.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=DaqW5zSc9R3bIT7BZaJw70JB1mkltx5vN+rL8w5f2XV1Fmu40DPZdx8VLECQnKagJF P5WSkkNWUTYcQBzDZ8EFJK7TKUlkcAxkF5V21hnUkGKK3b2EFGtFfoklJbkFZMBoQriE 6EshK1fBLVCF6lnAI0kOr9hzFMlQ2Yi3sKJsjZ+jkDCHDTOTJs0Acrcx67jLeK7nPiML Q8tV3B67ussWvvU/IGJZJI2KJX59w7DaHnV6jLzD/gkgYeFDB4a29x9o4aH8s0w4dDNC FCnY/PppoxFFwAMaxcJRknrv/7Qm+qcASEoUNxHCxTvnUujDg7RwKec/eOvqrL+rtkb4 2wkw== 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=ngx2pTmZ2j8TbcftBU9Sb76VVqGMvuNuGrzpueTBEap5kmc/oC2vox8KGvNCbyCTU5 MDNS5/1odrue8N9xb6bfvf4YXCMJav+2lR/uyj+Ah75UuIO++kq8qkcLsVWvOMouHYEj VbgLZEmvaDPg+Hx4+et11Vshk2VOJIA4crUj/jtG5oojfzxusdQRhWoSllf+DKvm86jO ALvWFBLIyxuSOq3vViayMGH/NBR9YHazbA1EvcHMn49mqIozgtY9DbzLzml0rW8wc0x5 9Le9ipYFVuQtr9xQ/8H670t/QOu5Bulof8C5wdJBlZPmALaC9SvTzqWBXgygK25f0+zF KdyA== X-Forwarded-Encrypted: i=1; AJvYcCU69tLpXPpxRBcyyoLmn8snfhoig7EY1Wi5UV75ydKWxYPMBtWKkZIA+CTgCUNalMwl4xBU/40ExP58e/gDJ+eXgDc=@vger.kernel.org X-Gm-Message-State: AOJu0YxLele92qo2DXD0HoP3KfXRUNv1gjnJvmtdh+YMQOcpUvCXfDw8 w3bOqXvV+NeKJ3QBtH9/cWbFOOHtr5p+HOHFoYsIVcgTENdNKEyzRzVr396JzYRM5WBSWDg2bk7 howMi+YV88+sY9w== 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> Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 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: 14007408 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 28F8817A2E5 for ; Sat, 8 Mar 2025 03:46:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741405598; cv=none; b=Ym7x9EQYUcGSkd7lCEqT0cdqdSDedN0/kVGchC3IgGBk6a2LwG7Qm/3KDSbjojayjdTU6TIce8QDCPV++iJm+QuyRKZ2g/3fG2xU366rSCGm8SI70EJRtLtOD98mqxC6b/CpdQf5OWuvBlBX5e/NyztH2MSGSpnKSh3NaVFgK60= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741405598; c=relaxed/simple; bh=NI9X3DgbmxaxolEB+CWeMI2e6PnbwQP48nhp90OwwL4=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=j7sccr92jdgMYQruTocKyWRgCCJoZJeAYpwKogj79wmSvckvC9TbcLdyksj37CJ/xB3SRjd3FL2d6YltKD0pw1vK4wQtI8rAhkisIkmwoDWiq7Jrb8pCJO2yMamSWbehtV/M55UM/Kwh2iih8s5/JogrkMuKyU8yxpt827sHSuI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--liumartin.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=28TNrnVK; arc=none smtp.client-ip=209.85.216.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--liumartin.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="28TNrnVK" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-2ff8a2c7912so1151570a91.1 for ; Fri, 07 Mar 2025 19:46:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741405596; x=1742010396; darn=vger.kernel.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=28TNrnVKTu9M6VyNHTPFufBtewo0ym7vgZs5rk7FTTZ5PvdkvsJaE1IYAaY9XxCsvN 63uifaSaSCZlW7bbiF6qCvYASW+GkdXznXoIjpMtvgRlDHhLRX/t1fZ1EBT69E0iAxBl s1ykV3KE4rDO8b5kV6s8R8yZ0QDOJj98EcUyv4MF4h8PcQ+Ta71cxEJgtVpZEG2SnTSX rWd0vaOhcoQ0uKYyINrPEKjPIwVZIMF+aqHdfZISA3NZK/mT2ZyPwkKa/X3qoESO4zR9 DXpNfochfIBrEKB6MoQnvBMkQ2TkypAIxnkELg+fl/m7t/V22zrcCKSN1ZDmtF8ByNVr wa4g== 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=tWWDtCb7vqVg2AY36lI2HmgkCk4+v49W0mlRMBZUyJPWCzA/S1rbX86fqEdiQWYDsn 1MftT+CRCSDLzZqozu+hMUQbiwsAZsfjxhL35bFj+OhZ+fPd71G/a/w+xeTD71hAksz2 92Y678WnFsOGlAWjC30MmujcEA0XXznUKxPG3IghMaGq6gHViJgbTeo3Ss27L8Vm39eC 8tgo5gx8RrRAtbB89BzfuLvvGO9v5gSmcQbOZxXEv99FpzIW/vFFD+jLp9I4Ab2YA2i4 fDmXbeezcf6VZ0DGxPfwrMGMLprr6QOoZyCP+rAETL0Jq5OHEA0uDMf+xR+KHiLu6qRx rf/g== X-Forwarded-Encrypted: i=1; AJvYcCU7FVvGScp8dp/NugDtQiVDQOrCQc8Ud4ftsjGshonr3xLhQ6dE9/ll2ZT3MQOzxZ0uYY746eb3w1rnc8VKhfkxhqw=@vger.kernel.org X-Gm-Message-State: AOJu0YxNXZliPXwrjja+eZ3zaXHiA9aSIC6PWXe8P33Ie91ARZSBxb/D zbUdW6FodRSP4YxhyBppPF9WpCLfkdkTCuBU6J4/mnyrac4sN3pP2AOSS+eHyxuUnW9VV88WS5G El9ETzohzIGjZzw== 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> Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 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); } /*