From mboxrd@z Thu Jan 1 00:00:00 1970 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 00655C48260 for ; Tue, 13 Feb 2024 08:45:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8A7E56B0087; Tue, 13 Feb 2024 03:45:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 858186B0088; Tue, 13 Feb 2024 03:45:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 71F5D6B008A; Tue, 13 Feb 2024 03:45:26 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 5DE416B0087 for ; Tue, 13 Feb 2024 03:45:26 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 293D180124 for ; Tue, 13 Feb 2024 08:45:26 +0000 (UTC) X-FDA: 81786146652.03.8D62B13 Received: from mail-vs1-f45.google.com (mail-vs1-f45.google.com [209.85.217.45]) by imf12.hostedemail.com (Postfix) with ESMTP id 989E740006 for ; Tue, 13 Feb 2024 08:45:24 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=oJcG1EFt; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of elver@google.com designates 209.85.217.45 as permitted sender) smtp.mailfrom=elver@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707813924; 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=wGR9OBfIIG2a8T/GmrMex7SON3QGw3gSmsFfveRlgeI=; b=WigZ/hYOTaiVgQ81JIrou2+MsRAj0ZMa+l0o4h8N3SqHHLBm5Y4ofPvseSl/BU0QqzukTJ Stb1l2Gole9rssDKeEDGp7En80W4MDX6lAwbMBYCQMLSZA5wifU+Ngt5jOG86Bb+KglUYH rHNF7lutnUIfzWthyffvqNJfabwuVsg= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=oJcG1EFt; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of elver@google.com designates 209.85.217.45 as permitted sender) smtp.mailfrom=elver@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707813924; a=rsa-sha256; cv=none; b=K4FcK1wMpXTyhli7U48LrUmeoA0E9aOSsUUIE1ydgMYP1mNeVygw9m9m76dZB6PH8JwjYc fgc0VsXeyLk1HtF1+dv3Ayl9qUsMdxMgVhnFkbYrQ5FOGe8If1LVZ7DRdI9AjhzszgzeIU YEfsrsLTKAUh+nArMUeKORRfLEqJC/E= Received: by mail-vs1-f45.google.com with SMTP id ada2fe7eead31-46d2dff740dso539256137.2 for ; Tue, 13 Feb 2024 00:45:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1707813924; x=1708418724; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=wGR9OBfIIG2a8T/GmrMex7SON3QGw3gSmsFfveRlgeI=; b=oJcG1EFt5qRwgFs6SwQuQ7/AmRFZzVqxVtLg8x0mTy1QuPNPyE2syhoCWuuiMvjCL7 Hs4+MRfyva35nH6Tl5QFD04t+0QQ7gMsFfUlNcsi+RTCPhsoqN/mgy6AITXZ+pColJV0 5Qf5RC7fSoLne3VY0K+LMEt7YImWF6F/vDsGOwD/UwDhPYFMHtlGbzkQAfLV/HoBBTEd ORQSfPcUoachrYG18Ypfwoe6Cg4/ydDYKzP6SCcUdFjv1oX0IJowDqXq8JBf2++S5EC0 tVyh0x4+V+i3LRfvyDoOT/TUh3u/iWuN65Rpm67a1OMHa2lt/13UV8Z/hMOPuGjiPec7 cjsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707813924; x=1708418724; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=wGR9OBfIIG2a8T/GmrMex7SON3QGw3gSmsFfveRlgeI=; b=daNfyqfgiWYjXUf7vte2w+6nCvp8dvEXFf/I50IikeUV7cdhljf6Nro3qF7QzbbEj4 Os7EMAWEafGAZQ2c/BWM10HT9diYtfal1381DBJJHn+MJ0IFRxmnEIB2xkEdGALM2Lr9 S2C48z7VEYf0I2DIFUko4uJmdzMu5m3QoB5NR1fdSRIMsuoBnFsBZg5bfiPARWoCuWHF nFxWUfKD+Z45nZILLakPZrD+qLtvX9Fymel9oXX+PwivVYk+k71ilBBdjXB9ZeHCdrUM xpRwnkDXx93xFIFrvbe6DKqAjSq7XE9MEh3xOaeXlw98e1A70FXRMYewX0LLlO1b72nY 38YA== X-Gm-Message-State: AOJu0YwZZzB7+wAbeWauRUlguLFVEZ0lXf5OdhiUriNgB2gg+lE9dafC fb9LG5h1q3GkiX/sI52OL1FRIyfC3EPp9ksbV9kqsfQfqqdnzDOaRvJBy18q+v53mzXY3UjU2mZ J8LjdU/weyFFHB/QyQ2u3oLFkl5bnkfQZElLb9aa8pKerOMNxNA== X-Google-Smtp-Source: AGHT+IEl5yTIowUWT5iJgjYofd4P5Cqk9B+eF8LLlTMxGGeh/sNYGRU0dxumWxivjACwgNftZZwLQpR/s8FK7RDQYng= X-Received: by 2002:a05:6102:2856:b0:46d:6dec:16d4 with SMTP id az22-20020a056102285600b0046d6dec16d4mr4107850vsb.32.1707813923585; Tue, 13 Feb 2024 00:45:23 -0800 (PST) MIME-Version: 1.0 References: <20240212223029.30769-1-osalvador@suse.de> <20240212223029.30769-5-osalvador@suse.de> In-Reply-To: <20240212223029.30769-5-osalvador@suse.de> From: Marco Elver Date: Tue, 13 Feb 2024 09:44:47 +0100 Message-ID: Subject: Re: [PATCH v8 4/5] mm,page_owner: Filter out stacks by a threshold To: Oscar Salvador Cc: Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Michal Hocko , Vlastimil Babka , Andrey Konovalov , Alexander Potapenko Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 989E740006 X-Stat-Signature: eypy4y5pgfb47d8ducimkqmcm9zj9q7r X-HE-Tag: 1707813924-59346 X-HE-Meta: U2FsdGVkX18RGuRzX2F3A3fUCjs+T8rGse6Lz9ggoNNUDtFgWHTlRfN4E7n9xElcZ1Ba38HyUED9AtMh0i/smlma2XnS9lKYXPYgG1GsB+XHzCohy1su8OehLDr9Hj4RJ86lHg6amVxf7o1CgUxwb/11dvrWdTaYahNpuLWJjWLWn4pIYG2h/oETd5/85DGV9XKXHtpcgM2CiISARDQgxrK1g+yOpu86+k4hhJdGVXpJ1y0Nnp7qVI5kYS2zDi20oil72Jv+DxbgfMD9VdCHX7R2BMVAUmo52wAtwfJyRBP7oZsK0twFszZEMtF6G30y0BAGGz4iZ8NdQKbIorjw5D/ih0L8yTrAb5SW1fV+98wgWf/coD8DhotSXzpA6GIDvu/YpwGvaQgZspFzYh4ecuC8ez1IjaHn6kzjmAC3Bh5Jsxjvmf6C1JhK09GYl2jfY+XteNBRz1oKrzoSqPvZNuUonSRRXbjbJMOAXj81z0FKBZIGr1U/7vu+5A9uOjKhRgFlM8ozuuD5GtG1mJAo6YeIDASN5l8rT3AaHPJK5KLJ8bOSGOndqDMRrlFpljG9OK0Z4qTtRCL4stm7xouPmnKx02c3cZeSwL4hXPzLilHLKrNMJ5sXVrhjurzQWVpFyj3ML5X5cu5FHHy23oeJsBeP+Ykjn5HQvTGGkwCDrgwKwRTH0Nul+lGHoRKTaWY7yY6TW2lmAZCbZY7PR76qnvuBs6iezfSZClMXh/76GDZxtn3VXfNbZctcUOChW0b3yRIR7tH18lq+gjV6aoMjViZ6j1NnHuOaqQRCU8KB/CaINn5bqNSRxRaRgDlLQj3eyZF9de5bZbPdSoCQMZC3fcIDzFGrcM+lr/BJ7Qb/hkX9811qeRhOXy3RXhxGCugNbSm+lVM+ppT9tJb1c+A/tXUz0XsyhUVTR6MNkOS4PZDgy8LYJrEo4qmxbDL91Bnamz3XE8G5a75qeLmywPZ 1PvJwD+9 5BjYtZ3QCvXyEUSy1CrqQPeXY8RTYVddVPv77rSqyCOqqm2M= 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: On Mon, 12 Feb 2024 at 23:29, Oscar Salvador wrote: > > We want to be able to filter out the stacks based on a threshold we can > can tune. > By writing to 'set_threshold' file, we can adjust the threshold value. > > Signed-off-by: Oscar Salvador > --- > mm/page_owner.c | 24 ++++++++++++++++++++++-- > 1 file changed, 22 insertions(+), 2 deletions(-) > > diff --git a/mm/page_owner.c b/mm/page_owner.c > index 3e4b7cd7c8f8..c4f9e5506e93 100644 > --- a/mm/page_owner.c > +++ b/mm/page_owner.c > @@ -832,15 +832,18 @@ static void *stack_next(struct seq_file *m, void *v, loff_t *ppos) > return stack; > } > > +static unsigned long page_owner_stack_threshold; > + > static int stack_print(struct seq_file *m, void *v) > { > char *buf; > int ret = 0; > struct stack *stack = v; > struct stack_record *stack_record = stack->stack_record; > + int stack_count = refcount_read(&stack_record->count); > > if (!stack_record->size || stack_record->size < 0 || > - refcount_read(&stack_record->count) < 2) > + stack_count < 2 || stack_count < page_owner_stack_threshold) > return 0; > > buf = kzalloc(PAGE_SIZE, GFP_KERNEL); > @@ -851,7 +854,7 @@ static int stack_print(struct seq_file *m, void *v) > goto out; > > scnprintf(buf + ret, PAGE_SIZE - ret, "stack_count: %d\n\n", > - refcount_read(&stack_record->count)); > + stack_count); > > seq_printf(m, buf); > seq_puts(m, "\n\n"); > @@ -884,6 +887,21 @@ static const struct file_operations page_owner_stack_operations = { > .release = seq_release, > }; > > +static int page_owner_threshold_get(void *data, u64 *val) > +{ > + *val = page_owner_stack_threshold; > + return 0; > +} > + > +static int page_owner_threshold_set(void *data, u64 val) > +{ > + page_owner_stack_threshold = val; > + return 0; > +} > + > +DEFINE_SIMPLE_ATTRIBUTE(proc_page_owner_threshold, &page_owner_threshold_get, > + &page_owner_threshold_set, "%llu"); > + > static int __init pageowner_init(void) > { > struct dentry *dir; > @@ -898,6 +916,8 @@ static int __init pageowner_init(void) > dir = debugfs_create_dir("page_owner_stacks", NULL); > debugfs_create_file("show_stacks", 0400, dir, NULL, > &page_owner_stack_operations); > + debugfs_create_file("set_threshold", 0600, dir, NULL, > + &proc_page_owner_threshold); Can't you also read from "set_threshold", so the name "set_threshold" is misleading. Why not just "threshold"?