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 49B5AE77191 for ; Fri, 27 Dec 2024 21:08:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7CD0C6B008C; Fri, 27 Dec 2024 16:08:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 77D066B0092; Fri, 27 Dec 2024 16:08:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 61D2F6B0093; Fri, 27 Dec 2024 16:08:35 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 3A9C36B008C for ; Fri, 27 Dec 2024 16:08:35 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id E73B446EEC for ; Fri, 27 Dec 2024 21:08:34 +0000 (UTC) X-FDA: 82941976950.04.8B3D3C6 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf26.hostedemail.com (Postfix) with ESMTP id 584A2140008 for ; Fri, 27 Dec 2024 21:08:00 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=FULY2tdg; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf26.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1735333672; a=rsa-sha256; cv=none; b=srEJ+OAT4cU6IEA/0jNivpVaXkFWH6pzXSBXh94oxgYecaZ1xij6kHzBqqUgO2+MUzpnQ/ pQi8W/XF/B9jv2FKFeGkqLNL5kTuFkYmNTdsfO2zain1UieOlQnLrbfPEfHVUIg3sBIzxB P6eznaevANh1VgCt1oylQ5VIzOmXFgI= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=FULY2tdg; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf26.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1735333672; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=acEuFLeEFiA7OWxLPpKr8mqfrk0T8xKBw99KigAOUYw=; b=HCb0/EiLqUBiZBZx0l6QDYsUvEZb6UICS/ejpVpxj/wa11ZEsD4MXwFuz0NoCpMtBj9IT1 TbFSLPQ0sj4pSgwX34lRHKctIVAXo5B8ypABLo3JAhQD28YjNojssaYhpP7PgpvHDEUaRb S89gB1MDHqTXapXLBH8oxq3Id80bmnU= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 0B9665C5F8A; Fri, 27 Dec 2024 21:07:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2FFC0C4CED4; Fri, 27 Dec 2024 21:08:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1735333712; bh=xPDKx+cgGKS4vL2pTXGyaq2E/e6yLYc/uyg/ecrFVG0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FULY2tdgi1VaO4rrf16MKP58oixHQI2N2jJn/F/gnUlRh3zifCIZDSg+EO6KzQdaj 3GGh53n0FQNy8mV2be3B1SdfQpVgCKLXkieHaUKXKwzKDfZTTK9S80krp4qqnSZjrU 1ZyOge3igtQM/3kvplwrHdGCFPUNTcMv6cPUINRZHh+vd4Hf6bKp+wbRD26nIjC/uB Rz9DMNNmuvr3aArpTA+t56Ghi+9EasW8BIelI1Ti7Lu10SXXMmhj80Oq+YQqbfwOYM mEyo0DS+QQMz4ryu7p3XPrHF+lTLxIu3oGGwzDIP4i/1P/ag0YEw+/YOSCCVMp3hK7 IOZIOD943H1Lg== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 05/10] mm/damon: add pass argument to damos_new_filter() Date: Fri, 27 Dec 2024 13:08:14 -0800 Message-Id: <20241227210819.63776-6-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241227210819.63776-1-sj@kernel.org> References: <20241227210819.63776-1-sj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: 6rp5671csyx349e5uaccrumzfprf6rf8 X-Rspam-User: X-Rspamd-Queue-Id: 584A2140008 X-Rspamd-Server: rspam08 X-HE-Tag: 1735333680-744981 X-HE-Meta: U2FsdGVkX1/45gwuhbn9rbqbJS+npcPo4vTCy4mGCjZMPMMHXi5ZMOvbgcxcDs8sMyzDxzc8/2J14XlVX+fLhWBeGkMo8nxkYjpVyigHlGOIRwEj2JDym+FSs1WB7Wxwmkzye5jkk1DvHhewDP69OyId4z8imfnLnbdcGDQM9PbAOnZ4Lh0kBjUmO+uoO8eNee2TPfJPICRLMBKAWpNM/lA/DJyQH56KhgHeRQz3GpthlaJZDcekgfMLUpaSS6NNkCDr2bvJZCEGrdChch7hCghXA3D85lpEgmFil9IxrhCDZSz3mzv3PkK+mfWHwbah85zNhIJCIyeXVQgjLlanBduXNnWIw6KL4TBanM/jfNTcWl0Z7cFp0tyWMQpOENTcoRjxJXDtfuv7+FVX+h01d63RVPD6/u0VDhORvMeOlIU8cqHjmqmaPxcKwk0pKk7QFqYQpRZw5ZtzbeXAMmV03bcoH2qNezUO1RgZLsRez87q+j6z8fxVBxo+3QxSh5IFFJtRknOhbIx/u6kwUR5gYP0caSk5didpxPbceD6G3q9y27/0CcGakJINFbNZpqJe0T6kVs7Pu+6SL2I6CssdZ4WvZuHd1/6rC5rTIspzE40PvunZUxQrCuhtk05s6MNn0b5l8g1OIwPfMqb9qaVWN8PihzyLWFQ0s2AmuRSRJlS13vRvq9Jz7FXJ4PDN/JgRzNwH6ChChf6dLB3yZC/MGMbrA89jGlQiC/3GxZOV0WXc92mVktqp2HuJnIaKZj3mLI0DIPXz8sAJSSpk4Vb+Z80mnAANFOVXzw/wPG0UMbmak1QT5hrsHNCuw1+g+9JPGur8ao9aVwj24n6YT+jSIDWV61PEUeWQcMIeC6AfFBbZY6YKRAaVxLAnaTYJ6jGZLN8P7o1ZI8fAYxra6VhZWvdjP7gN9aRJDiznjfDKTqijC6huVBYfcU14Ri2VOJCYZ6BcSM2U26zXvhQ1VxY ZrutKSSx Tq2RHsoFB5gj28FP21idqVfzitpkCRD5oNGWhCUM0/gckvR4xb5BUzPu7yuczYDKyGuO19JqRRTJxxQsKqcmgZxhBBU/M/eT1YsAQIo/jCzqdDcY1y7KoMX3mGy773s99pXCjJSqUOSmdv6ztmJxIXpDIvCo0pC0g7iHRbQahle9+YXneW8x7JSFSjmlR3HkuhnmQOzYKiosQZ477sgb9vvaw8LrZ6JFWaisUGVdJg+Hi61jOKMQg3vyKZ/u/QJPmpoSpWAQK6yD/US7Mi/PVE7+3Ug== 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: damos_new_filter() sets damos_filter->pass as false always. The API users hence should manually set the field to use the filter as a pass filter. It is cumbersome and easy to mistake. Add an arugment for setting the field to damos_new_filter(). Signed-off-by: SeongJae Park --- include/linux/damon.h | 2 +- mm/damon/core.c | 7 ++++--- mm/damon/paddr.c | 3 ++- mm/damon/reclaim.c | 2 +- mm/damon/sysfs-schemes.c | 2 +- mm/damon/tests/core-kunit.h | 4 ++-- 6 files changed, 11 insertions(+), 9 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index 122c30e4ce19..ad0360711aca 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -801,7 +801,7 @@ void damon_update_region_access_rate(struct damon_region *r, bool accessed, struct damon_attrs *attrs); struct damos_filter *damos_new_filter(enum damos_filter_type type, - bool matching); + bool matching, bool pass); void damos_add_filter(struct damos *s, struct damos_filter *f); void damos_destroy_filter(struct damos_filter *f); diff --git a/mm/damon/core.c b/mm/damon/core.c index 71db2c754e6d..13f12d82de5f 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -266,7 +266,7 @@ int damon_set_regions(struct damon_target *t, struct damon_addr_range *ranges, } struct damos_filter *damos_new_filter(enum damos_filter_type type, - bool matching) + bool matching, bool pass) { struct damos_filter *filter; @@ -275,7 +275,7 @@ struct damos_filter *damos_new_filter(enum damos_filter_type type, return NULL; filter->type = type; filter->matching = matching; - filter->pass = false; + filter->pass = pass; INIT_LIST_HEAD(&filter->list); return filter; } @@ -806,7 +806,8 @@ static int damos_commit_filters(struct damos *dst, struct damos *src) continue; new_filter = damos_new_filter( - src_filter->type, src_filter->matching); + src_filter->type, src_filter->matching, + src_filter->pass); if (!new_filter) return -ENOMEM; damos_commit_filter_arg(new_filter, src_filter); diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index 71cb02128b46..cd89500efc22 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -259,7 +259,8 @@ static unsigned long damon_pa_pageout(struct damon_region *r, struct damos *s, } } if (install_young_filter) { - filter = damos_new_filter(DAMOS_FILTER_TYPE_YOUNG, true); + filter = damos_new_filter( + DAMOS_FILTER_TYPE_YOUNG, true, false); if (!filter) return 0; damos_add_filter(s, filter); diff --git a/mm/damon/reclaim.c b/mm/damon/reclaim.c index 9e0077a9404e..a675150965e0 100644 --- a/mm/damon/reclaim.c +++ b/mm/damon/reclaim.c @@ -221,7 +221,7 @@ static int damon_reclaim_apply_parameters(void) } if (skip_anon) { - filter = damos_new_filter(DAMOS_FILTER_TYPE_ANON, true); + filter = damos_new_filter(DAMOS_FILTER_TYPE_ANON, true, false); if (!filter) goto out; damos_add_filter(scheme, filter); diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index deeaf23c1fcf..9a883e8aea1c 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -1901,7 +1901,7 @@ static int damon_sysfs_add_scheme_filters(struct damos *scheme, sysfs_filters->filters_arr[i]; struct damos_filter *filter = damos_new_filter(sysfs_filter->type, - sysfs_filter->matching); + sysfs_filter->matching, false); int err; if (!filter) diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h index 8f58d3424c21..532c6a6f21f9 100644 --- a/mm/damon/tests/core-kunit.h +++ b/mm/damon/tests/core-kunit.h @@ -411,7 +411,7 @@ static void damos_test_new_filter(struct kunit *test) { struct damos_filter *filter; - filter = damos_new_filter(DAMOS_FILTER_TYPE_ANON, true); + filter = damos_new_filter(DAMOS_FILTER_TYPE_ANON, true, false); KUNIT_EXPECT_EQ(test, filter->type, DAMOS_FILTER_TYPE_ANON); KUNIT_EXPECT_EQ(test, filter->matching, true); KUNIT_EXPECT_PTR_EQ(test, filter->list.prev, &filter->list); @@ -425,7 +425,7 @@ static void damos_test_filter_out(struct kunit *test) struct damon_region *r, *r2; struct damos_filter *f; - f = damos_new_filter(DAMOS_FILTER_TYPE_ADDR, true); + f = damos_new_filter(DAMOS_FILTER_TYPE_ADDR, true, false); f->addr_range = (struct damon_addr_range){ .start = DAMON_MIN_REGION * 2, .end = DAMON_MIN_REGION * 6}; -- 2.39.5