From patchwork Thu Feb 20 19:46:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13984462 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 8E365C021B2 for ; Thu, 20 Feb 2025 19:46:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2C7A6280330; Thu, 20 Feb 2025 14:46:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 275BB28032E; Thu, 20 Feb 2025 14:46:55 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0C8EA280330; Thu, 20 Feb 2025 14:46:55 -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 DF00628032E for ; Thu, 20 Feb 2025 14:46:54 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 792551A2A89 for ; Thu, 20 Feb 2025 19:46:54 +0000 (UTC) X-FDA: 83141355948.04.8B76ED2 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf05.hostedemail.com (Postfix) with ESMTP id E6911100008 for ; Thu, 20 Feb 2025 19:46:52 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=maTwzYGK; spf=pass (imf05.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740080812; 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=ye2db3b43I6mo7ny5LZuqJgd+ZUsruA7dlV9fH6d0nI=; b=aEn/sl+D5osvcVg8cpQVcAE4ufoLCzjM0jxIcHs03tIBF1ThWCb37BLsaovXkTHdVEORYr 3oB2OdAa//RKGq/h7F9rSWUIJhJ/OG8rZRilq3wJEbwPI4cw1fwUcCcha50CI4udu6Ccc7 mmr68GvqicjSZsF6GHDPHPx8t17AvbE= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=maTwzYGK; spf=pass (imf05.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740080812; a=rsa-sha256; cv=none; b=a4u08AhKaPNCx6Hz9HSX7O+V8+Gne7o71g70v0NQhnNretzv+0I9HMO2EUjriK83iOhmeM bIpzDcCX1HwcIWhi3+lstkL6t6r93ZUrnJ3FlNWvIYZoDfLNF3d+GdrKnDJSZWh5lVID5n 77rXAn6mWVnBNMuQZFoxZmZt33u96KQ= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id C647F68308; Thu, 20 Feb 2025 19:46:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EAC24C4CED1; Thu, 20 Feb 2025 19:46:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740080812; bh=GH9O1+rW8ywRoDFEndKmAk6SUuzHHAhWNBp35Gw6b10=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=maTwzYGKA5skdxLquMlgD68qhQHKsYnoHbbYAoLeNewOU9hccV8E1abjLK3oQTDIA RSJnIfKh4yOjq3nkm3jUay/1zIbbLmcKE1cbUB/gybWIxAIkS5+FUmRTEKWsBBi5et y+f2C1ob6qQBTaX3LWJI3KvIV5qn1hKopVDuvamYi0W08t5KPwZTuIlbSi9V05mUTk +Vncl26DNFLLSkL6s5/jCrxCscsUNFpdmflcuUFjFLMTCFhBDR20z95B0KHYljyd/t vV7u53LOY+Az36gNffp59kmpS4u/amTgn/n9cbycqZn7MxikkYuV5/2SS6dfNm2gMT Eg0u49fhQILUw== 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: [PATCH 1/8] mm/damon/sysfs-schemes: let damon_sysfs_scheme_set_filters() be used for different named directories Date: Thu, 20 Feb 2025 11:46:39 -0800 Message-Id: <20250220194646.37726-2-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250220194646.37726-1-sj@kernel.org> References: <20250220194646.37726-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: E6911100008 X-Stat-Signature: ds6aspoaeb61y1fezyds95poka7gzd3i X-HE-Tag: 1740080812-962181 X-HE-Meta: U2FsdGVkX1/d4ul17ACqNoyLV4OvRvmE3XSlQAjrN1sM7UuRTuXsqvN4vkG7wQ5BQcGCAZDAzOFLmtDKIu6aDwmtlugZUyNL3uRhXmvnlN0fIir+qOZ8p3yig6Ju+BCIxVLbAVmZvgPMZ0LVNNPdI8k0tl/9mJnhObRfXef0Vdk5u2eboFPXAsntqmP/nMQwCrfao3UTq6n3SnNS7Ag0tN8oAwSijgI/XSAqHyjo8+loRdDKzFvXej3BZSCu93GJYaTMf22XqKXPFox4rNl/4bgtrtT/WrYIsNV4hr+zLBFkiQHRygkeINkNLM2/KvNtJkRqGQhCVMaYJb2HF8S1FuOxQ10Rnez2PV8qKfVTfz5SC1WF73eEp/4EDwXWA9HvStU1p9E6qmnXUR+5szCgGzs/9W3MnjhqBTGHtEiDZL1o6cZXXyGRkHLjBM/tHlLQ2HTLDo0vPQ159m/VITyZbDV94xJ/QqATDo5WowNQtr97ZQ/V3iulAEt4DIXkgtRh/OqrjmG/e9irQfm2F4CcRikTvEON32+n6Q1zbCEPQf50p8mR5I2sa9bP4vWWd9OecS5cKHm035QbcEzMcCwn4Ux7D9jGFIl9v2FO8ZIWlbu61RwPeo+Xjkz+hQ/nAdTThPAIHn1ZzLmV6VvI/1xATgjvgrgUxBusXwEHIup85xf8VzV6qHaqkDCR4tO3oPBkYqI1hAfH7TPPHMXPzwG+O6Y6ZDwJMdAVUzP7I/uCHQokM+7YkoW4HV9tqGF4SdAE3E/48dM/v8nRInjH6avYUBPwQpnUnScYLCsqaD1WrhAAkmDtl1DPIWzYgYs4PurSgYRxxtl6Ru6yZ/H6FjsypJHsLGs4Mpq97ocKsDbQQYXtukaufjenuu6GwlYjMvvdFZGgG/6Ms1mGbOkENBHdCh06Eu/f7ZVgjjfNZdgCSl5qLGAmMkK2TqJh588mwQc8HiEL3x54DMRLjNZvDn0 Aw2df0kP o58UCwqKOTZQp3d0uZDyJbeTXC8fKMNorPrD+g0F0Xs6iQNTV8keifKx/QAH+CtBRSvIsoVuWhXKTpS1kBdEQYtIZ8AKQRxHrx7ZAihvnX/iAclff16g/QQQ07z1xaOrTNSSEVTvzlz3F6j1vgvRoVYgvpw64pyltGd1lajbkjtDNi9Zf7sT80QKdt59glCG1yzm2jrKsw0nW7o17NxoZbMhfghi/of3kXwp963TZGKvjHSxrakI3Q1bI44jDBx+5n/JqhVnmAyfhjeKjqc4XZ064QA== 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: damon_sysfs_scheme_set_filters() is using a hard-coded directory name, "filters". Refactor for general named directories of same files hierarchy, to use from upcoming changes. Signed-off-by: SeongJae Park --- mm/damon/sysfs-schemes.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index 66a1c46cee84..541ca5887b24 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -1604,7 +1604,9 @@ static int damon_sysfs_scheme_set_watermarks(struct damon_sysfs_scheme *scheme) return err; } -static int damon_sysfs_scheme_set_filters(struct damon_sysfs_scheme *scheme) +static int damon_sysfs_scheme_set_filters(struct damon_sysfs_scheme *scheme, + const char *name, + struct damon_sysfs_scheme_filters **filters_ptr) { struct damon_sysfs_scheme_filters *filters = damon_sysfs_scheme_filters_alloc(); @@ -1614,11 +1616,11 @@ static int damon_sysfs_scheme_set_filters(struct damon_sysfs_scheme *scheme) return -ENOMEM; err = kobject_init_and_add(&filters->kobj, &damon_sysfs_scheme_filters_ktype, &scheme->kobj, - "filters"); + name); if (err) kobject_put(&filters->kobj); else - scheme->filters = filters; + *filters_ptr = filters; return err; } @@ -1670,7 +1672,8 @@ static int damon_sysfs_scheme_add_dirs(struct damon_sysfs_scheme *scheme) err = damon_sysfs_scheme_set_watermarks(scheme); if (err) goto put_quotas_access_pattern_out; - err = damon_sysfs_scheme_set_filters(scheme); + err = damon_sysfs_scheme_set_filters(scheme, "filters", + &scheme->filters); if (err) goto put_watermarks_quotas_access_pattern_out; err = damon_sysfs_scheme_set_stats(scheme); From patchwork Thu Feb 20 19:46:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13984463 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 5D242C021B1 for ; Thu, 20 Feb 2025 19:46:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 33D2D280331; Thu, 20 Feb 2025 14:46:56 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2EC0328032E; Thu, 20 Feb 2025 14:46:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 18BDA280331; Thu, 20 Feb 2025 14:46:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id E085F28032E for ; Thu, 20 Feb 2025 14:46:55 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9295BA0C38 for ; Thu, 20 Feb 2025 19:46:55 +0000 (UTC) X-FDA: 83141355990.07.5841D28 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf18.hostedemail.com (Postfix) with ESMTP id EF9E01C001E for ; Thu, 20 Feb 2025 19:46:53 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=azoYwA17; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740080814; 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=lIV3wExUit9xApAD4BiDPxks9HsxoHv75P27U/Kn9jg=; b=lGe79Qrwe7vnbHhIIbiwd+ECsa/DUyi4gRG6fMw1l0v9fLxtHz1cd4r/wao6XBe6/ciuD/ EjkmKoDg2eLMbEtrtSvVR6CO07QBuxwU/W/4XwvBU1JVy5ZzH/5CLZR1ukeAqmymj7C6F+ mmbKkqOtj8yvxMQD0KQPc9vpDIKqijc= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=azoYwA17; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740080814; a=rsa-sha256; cv=none; b=e1m1sYsqy5AEgKobZro2cwpOLfIDIkwgwj9YTzGPEY3grBP9nNxvxJhvRqDah5UOpt0Kju G4CzRcrkPih32JMzHQUKSjezw9vI0XJInil/jquKD0ddNmF8B3qEH6Vaz1blAHtuk12SiW nB8QsTugt5dqYnsdHWY3IReTA/UrCfQ= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id D08A66830E; Thu, 20 Feb 2025 19:46:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 22BF8C4CED1; Thu, 20 Feb 2025 19:46:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740080813; bh=x49E7WlC9jzDdYoMfkdigGCJYjlYQheM7yPC5VYZSrg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=azoYwA174ibgpxsa5omO/gZ6EKQsnGkEk4Ql2SF2Cy0Tj9zoSDHUXemgBNpO64T6U cvSp28YFClj3X9fS3NRI1PHh+KP714IZORD2IOG8JFCqJKpbUBXZcdVaJ0oKfNgAQD /SvEQayW/MtBtvBsu2bk4PI105CSB1SZfo09wwh9kcbEf0FR2gIqKpntM8AVVcewjd E8DhLOrwUW54aUlMiyS00gXij0XmoU3+06uWAH5hkHyJQUvz/DCymOeyo8QNdMV3h4 ar4O5h7nNZQuDFBW4VJETtLu838dvoLBGecYZRA54ufmuZWNOllIrN5YHkAwl+Ti97 DhwgBnBHIu4bA== 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: [PATCH 2/8] mm/damon/sysfs-schemes: implement core_filters and ops_filters directories Date: Thu, 20 Feb 2025 11:46:40 -0800 Message-Id: <20250220194646.37726-3-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250220194646.37726-1-sj@kernel.org> References: <20250220194646.37726-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: EF9E01C001E X-Stat-Signature: co8kp9q4ta5jwzeo3wh5i3roas6soa5n X-HE-Tag: 1740080813-904077 X-HE-Meta: U2FsdGVkX1+Rfbn1mgYcGL7fS2F5c1rIjkxblsOpJ3B09ENI65swU5i9Ypm4IxP1D/IzqEyWH5s+N4/AhDEx6tIQARP6QI7g35GDNWlXUlDLXYlMosmocR9zvx7foAuPTSjUzgJSccDUm64I3PYoa/LtmU0QYz5NxbxiXb+qxpImR5nGz4W8VuHpRt8Pg4Bdryk/e+LsNx99thA5r+jwi9xEiOzKO9IcjF/FCrU/DEr5rKdVV+8xEhL26U80OjGzJJAn1+AIzv5hO3fBpEb1wgdk6YvCw3WIfZHB385uHMVnU/Fx0j+/Tnd1I4lkt86KA4n08uJSn7B462L06xdqjVDQJ78tRN4bzr59vgNKFZ44UY0+Jx2OLeOj5WhWofUP6boCWVEAZlhknQQ3jgbHm6nvdN/ZC8YdcC3xWUKNGJ/DyPgJ6u5qUDcMyfWr3hN+4lqYv7aGeHRFtlCGFhUWHwQM9LofO0L/X66Tj5OYKFMzYvjdHgkWf+aFGjg4m3Ya8WbkscgYMV29Vf9jwjvQ6BskN/q5hcM59JXdTKS/KN4yXT41MPtsg8NM0pgiUXZXXzuv5GoN69fXs8+Aaca8JsLzAWsAHONPN11Gx7YKhdXR6Igbk5A3QfljdR7usPYIsIUiQaJ5kIs/cHI7cxxrAXNs7pm3o+olgbEvLD5iymcDoAAjVH5egCAXjoIHsnGPTLTNlupG4fNA1czeHC358MYNFyy31svnQIiIdfCx298pDtB4DvS4LOM1amiW3LLKLw5pxfbz7U5ZGJN2Hw/RBV6TFZtZuFsmpLSTP8Hdv7Jt4uAyDeNKFOahk4LQ97I7wROXLR1yKH2ELcSy8ggqRgGHSBUhHgl37NYXIBI7+fwNOVnYXuA7VkYWSSiPVe5y/1TWV49JZK7542JZJJwd3wBC4hRy/NIIJNkDPkwdkncE4Vm6oJd06mTxihKmqQSMqya//BT45JSWsS9D/M3 0B4KYkgN xVphos2YdohsNIG9bD3naQRUbe2g7q9h5OSxMTFjIB3qWvj8Iq+hJ8+RyOLRLxcstH/Vo4V49BOSM5/ehn2Oezfw6BKd8xJCrFqfpCoikV6IlQ0PzfmMnqftK0GXbNnpCvCZaU70xioeaJ4wnF8IPVhlc1yFOxTRYq2xYdwgnOWx4v8AmOxQFmC4VdSkcFq4KCnyD8T0R5iZd8LOayhj1SByU65u2ntDBWwoXSMDtrPXnTwbWWg6RUYlGmsjlgKrZnWsf0Jzs4MHc9h+ds23ti7U0Jg== 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: Implement two DAMOS sysfs directories for managing core and operations layer handled filters separately. Those are named as 'core_filters' and 'ops_filters', and have files hierarchy same to 'filters'. This commit is only populating and cleaning up the directories, not really the files with DAMON. Following changes will make the connections. Signed-off-by: SeongJae Park --- mm/damon/sysfs-schemes.c | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index 541ca5887b24..61ff800ce78d 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -1504,6 +1504,8 @@ struct damon_sysfs_scheme { unsigned long apply_interval_us; struct damon_sysfs_quotas *quotas; struct damon_sysfs_watermarks *watermarks; + struct damon_sysfs_scheme_filters *core_filters; + struct damon_sysfs_scheme_filters *ops_filters; struct damon_sysfs_scheme_filters *filters; struct damon_sysfs_stats *stats; struct damon_sysfs_scheme_regions *tried_regions; @@ -1624,6 +1626,33 @@ static int damon_sysfs_scheme_set_filters(struct damon_sysfs_scheme *scheme, return err; } +static int damos_sysfs_set_filter_dirs(struct damon_sysfs_scheme *scheme) +{ + int err; + + err = damon_sysfs_scheme_set_filters(scheme, "filters", + &scheme->filters); + if (err) + return err; + err = damon_sysfs_scheme_set_filters(scheme, "core_filters", + &scheme->core_filters); + if (err) + goto put_filters_out; + err = damon_sysfs_scheme_set_filters(scheme, "ops_filters", + &scheme->ops_filters); + if (err) + goto put_core_filters_out; + return 0; + +put_core_filters_out: + kobject_put(&scheme->core_filters->kobj); + scheme->core_filters = NULL; +put_filters_out: + kobject_put(&scheme->filters->kobj); + scheme->filters = NULL; + return err; +} + static int damon_sysfs_scheme_set_stats(struct damon_sysfs_scheme *scheme) { struct damon_sysfs_stats *stats = damon_sysfs_stats_alloc(); @@ -1672,8 +1701,7 @@ static int damon_sysfs_scheme_add_dirs(struct damon_sysfs_scheme *scheme) err = damon_sysfs_scheme_set_watermarks(scheme); if (err) goto put_quotas_access_pattern_out; - err = damon_sysfs_scheme_set_filters(scheme, "filters", - &scheme->filters); + err = damos_sysfs_set_filter_dirs(scheme); if (err) goto put_watermarks_quotas_access_pattern_out; err = damon_sysfs_scheme_set_stats(scheme); @@ -1688,6 +1716,10 @@ static int damon_sysfs_scheme_add_dirs(struct damon_sysfs_scheme *scheme) kobject_put(&scheme->tried_regions->kobj); scheme->tried_regions = NULL; put_filters_watermarks_quotas_access_pattern_out: + kobject_put(&scheme->ops_filters->kobj); + scheme->ops_filters = NULL; + kobject_put(&scheme->core_filters->kobj); + scheme->core_filters = NULL; kobject_put(&scheme->filters->kobj); scheme->filters = NULL; put_watermarks_quotas_access_pattern_out: @@ -1711,6 +1743,10 @@ static void damon_sysfs_scheme_rm_dirs(struct damon_sysfs_scheme *scheme) kobject_put(&scheme->watermarks->kobj); damon_sysfs_scheme_filters_rm_dirs(scheme->filters); kobject_put(&scheme->filters->kobj); + damon_sysfs_scheme_filters_rm_dirs(scheme->core_filters); + kobject_put(&scheme->core_filters->kobj); + damon_sysfs_scheme_filters_rm_dirs(scheme->ops_filters); + kobject_put(&scheme->ops_filters->kobj); kobject_put(&scheme->stats->kobj); damon_sysfs_scheme_regions_rm_dirs(scheme->tried_regions); kobject_put(&scheme->tried_regions->kobj); From patchwork Thu Feb 20 19:46:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13984464 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 9CCA3C021B3 for ; Thu, 20 Feb 2025 19:46:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 512A76B0093; Thu, 20 Feb 2025 14:46:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 49A4B28032E; Thu, 20 Feb 2025 14:46:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2C6126B0099; Thu, 20 Feb 2025 14:46:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 0826E6B0093 for ; Thu, 20 Feb 2025 14:46:57 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B0D79122A98 for ; Thu, 20 Feb 2025 19:46:56 +0000 (UTC) X-FDA: 83141356032.12.260ABBD Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf20.hostedemail.com (Postfix) with ESMTP id 0A37C1C000F for ; Thu, 20 Feb 2025 19:46:54 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=RKWygKjo; spf=pass (imf20.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740080815; 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=t4c4VqZufZRW0ivKxMUyfuYSeBvNYEgjMIo5aEO4wQ0=; b=MXN2H1UWal8oh6gaLB/boI2m1r5qsZ/E4OhBITrzTHZjtqZnXL4qLPjoH9YYjihzyITMO1 piWcUYapT+64XIubiuwtf4NMiNvfSUF6jyKUmL9QA5MFuxH/n+dbIGIO1D4BGkW9nffp4G LqDxfQD3wEonFhIi9SY5T8qBi9tekO8= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=RKWygKjo; spf=pass (imf20.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740080815; a=rsa-sha256; cv=none; b=jxJHeNxM57ZEtHoycVrifnqAfdcXfGL13Myp2YdLYFFw6IxMYTzDdG2FInzF1wp5SrbL36 fttDtB1MA9vnKw4RiGXqbno0hkc1VMVT+eUMfd5StdpZmerrJZig7Pw1GFHeDYySMoTRBk jcxhr5WowJ+FLlukyyjgl8SbgLaQw9g= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id D755C6162D; Thu, 20 Feb 2025 19:46:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 286DEC4CED1; Thu, 20 Feb 2025 19:46:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740080814; bh=wL/4Ps4xqCe4JY2MuJBUpgRAAyA49p5mtKK+mW9qR+A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RKWygKjoL1oSenPwdkIqV8dQ+WNR2ETeM5PdaAJFbqHb8eDuLmlNz3PPe270203cs FD7wIoi3aBMqxE5kFuhWQF+JhOfzbz7tQEYQfsXfxto6vB4Okv3E83HlZBegiNwE0R sVv4+zeFHbppPIUbvz9mjbMJJO0heWpcCOmvXSCaDUY5dpq2vvGS71xXnSVMSOl2vo jawR1UKrYM/8JVV+kg6dCG1aJ96RS4bwUdPjzXdhPsT041nr79zeP4cniEbYHjyNHP y8BANuduzs1tie4HkHG7B1CGoF/OQjJHDHrUR+dnNN5r3YeS7jS9A0dSUMnOS8xNTW 3/48jwN1j+Jew== 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: [PATCH 3/8] mm/damon/sysfs-schemes: commit filters in {core,ops}_filters directories Date: Thu, 20 Feb 2025 11:46:41 -0800 Message-Id: <20250220194646.37726-4-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250220194646.37726-1-sj@kernel.org> References: <20250220194646.37726-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 0A37C1C000F X-Stat-Signature: qdhjeqbo94rdr8ngf3iskdbcr3oidddf X-HE-Tag: 1740080814-496831 X-HE-Meta: U2FsdGVkX19QjkpR26UqBuDU97vdD/FN7678OqGT5LFQOu59AjslkX0iZarKzKNaLChfP5kilSxfUz6pUuYwyZ1VHDrMVjZTLHIMVKG5mhmD6KG7kryNXCGhckAjVYV+UWrMv6T44T0ODN7fdVTlM/79I2icjCW4S6E2p7cz9Tv4734LwNsivBg1gS1iGbL/A4nn91lqFw+dfiChFmFgwIeyU95VkDE2xxOAxtAUDotV0ORiVPYBoC7FzZDIMsmTDdWzA/lY2g7ITfysm934tk8jDo8CTSyj+Dsln5Gm4CKcwbbqSryUQpLOb7B2PaP+cW7WL7dlAq01wfxBqMpMonsYKYd+XgaVkGlNTTKLabsN4E2TIFXg5u2ScZoyiHUcPn6FdZ2uoPdjzzE9MgInsP7WpxLA5KNbdwOIgQfxhGsQaXVGiuU6pjKcjNGk2TfAaejquzoR18e8QHMlVMSoO99oB3VpVyGETIn57z5Sab99tWvTmCn54qu8jp/rJt3icIG/Sce9+GdD9ZX+5BdW5LuKwWNlCPlC1oX0gkWjrJZsgmGp6Mj5HLF6EIBZ6ZcQ9ystbRTgNnDQySYfE7WKU8itukE4avr1EK0nf2GDkFtngVI9gXjWwTmJ51jcDHalBcqHaENCcCeOF6ymcVWmh+EpvxHFQcwP2+VGWLZxO73jImUz0RszWPEK0Ip12z2gQ938g5F3XT6ru4IHCn9u+d1BAuR0bHMQXr+0majFBqOj/1u50aSRZUJ8DF0Av4uxOIS+kTj1n43gWJ46pxXXHNDKRFSkwM0hotBUB6XjIn7jwtG0dh6Xi2Iy+Kt0FbdQjBujjmTYmpS+srX5Lhi8pZ65t8hySY3uxQIHHUmMDOREcj00WcJMC3q5RkLgQuhIxfI3aY4pK/X7ljJTq5rPbU53aerdRSUYRlGYEVJXHU0sDFpc8rZQ37RRa9x11dUsFAPouZqYwhwxpSegyu7 yWGb8WPr 3dEomyuoIiLWWoLvWQZ73jnIVBRyB4UWSfqPN3GXX+fc56sMn2oWRpbon+Q3Z4T4eT+FbUwgI8mqFb83WV9/1KedFh6EZOF/R1EsjTeX2G986Y6AqPesr+SJDkO7eSC4VFtQnsWF8hItR0vC8Ie4p6+UuS5OgausTR2Up6aAH8KsFZnIFLgOWw1W5RTbFQobccFui+kuzvva+5u75xbfqNDcq2IUqPBup1LccJPqyimI5IXwDFrhqrBNMYPFl6W0Qr1LFSWRKkDTFwWNbzErDTeKB7Q== 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: Connect user inputs to files under core_filters and ops_filters with DAMON, so that the files can really function. Becasuse {core,ops}_filters are easier to be managed in terms of expecting filters evaluation order, add filters in {core,ops}_filters before 'filters' directory. Signed-off-by: SeongJae Park --- mm/damon/sysfs-schemes.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index 61ff800ce78d..e85feb329bd6 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -2143,8 +2143,6 @@ static struct damos *damon_sysfs_mk_scheme( struct damon_sysfs_quotas *sysfs_quotas = sysfs_scheme->quotas; struct damon_sysfs_weights *sysfs_weights = sysfs_quotas->weights; struct damon_sysfs_watermarks *sysfs_wmarks = sysfs_scheme->watermarks; - struct damon_sysfs_scheme_filters *sysfs_filters = - sysfs_scheme->filters; struct damos *scheme; int err; @@ -2184,7 +2182,17 @@ static struct damos *damon_sysfs_mk_scheme( return NULL; } - err = damon_sysfs_add_scheme_filters(scheme, sysfs_filters); + err = damon_sysfs_add_scheme_filters(scheme, sysfs_scheme->core_filters); + if (err) { + damon_destroy_scheme(scheme); + return NULL; + } + err = damon_sysfs_add_scheme_filters(scheme, sysfs_scheme->ops_filters); + if (err) { + damon_destroy_scheme(scheme); + return NULL; + } + err = damon_sysfs_add_scheme_filters(scheme, sysfs_scheme->filters); if (err) { damon_destroy_scheme(scheme); return NULL; From patchwork Thu Feb 20 19:46:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13984465 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 BEF9FC021B1 for ; Thu, 20 Feb 2025 19:47:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 18F95280332; Thu, 20 Feb 2025 14:46:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0CB1128032E; Thu, 20 Feb 2025 14:46:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E8655280332; Thu, 20 Feb 2025 14:46:57 -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 B27A228032E for ; Thu, 20 Feb 2025 14:46:57 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 562C3C2B58 for ; Thu, 20 Feb 2025 19:46:57 +0000 (UTC) X-FDA: 83141356074.21.6425969 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf18.hostedemail.com (Postfix) with ESMTP id C2E451C0011 for ; Thu, 20 Feb 2025 19:46:55 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=WewL63sw; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740080815; 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=MNLiKewn74yhXK4boODwOBdF/Cv4qz68SuA0JzusaR4=; b=CIughl1uGkS9ERHSlRgZ2uHfFH8pyDV9cj+tXZGQYwcvJTMluJkCfIf03kaBs0eqnNWxXH /tHa9scXY5D3328TlQJ9R4EjVg8de6qM3SDx8yfjzoCFPYePolNIKEc8/V5haTMOuBhlgM J/tdtxM5bEd2lvP3G1jS5XPGww7+blY= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=WewL63sw; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740080815; a=rsa-sha256; cv=none; b=6EEsC/xLm1svwpaXYrVJQCa1FEsouwKK9dNsM2KZ4nUsX+CCyMSLrg5JmqTVjBhhuyG82q 6ofUWaSSFd0tZln6O55B7Q/3LIeMUBL/yvvxrQtqenOVaPo4mn9mWRGXGAjkKpOf1no2c5 Ib1w+tO2p29SESNKVo2iVXvLYjDmTy0= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id EF5A26831D; Thu, 20 Feb 2025 19:46:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3D234C4CED6; Thu, 20 Feb 2025 19:46:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740080815; bh=unBPrgpwY4dqZxI9ZkGpabB3hwhCwXKpoAI9O5yqzHE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WewL63sw7nGHhNQcUnh0tz/dMaSYlbcPYe2RWUmVq+aytbTyEYmpJ6J5w3nOlu4tT GQ0ICGSmH408g7E32RUlQYub0hg/zDhjc44kR5LL+Sihris56f7X8MBijvaafdP99d TMsc1p8NcfjBl03dknhjDjkCUwNad8S1Zfg8OvSILPUwhYP6FJALgfdL1TYM4dAEzZ LuHi9slL+2/w7NKWzx0yIab130ftf+AcoJbYKdA89jVOGAfSlhjXCnjZHfBMgqaCiw b3Yw/gjvY+BOK2TxjFUCLDpJiUBvseEL/1Fc2ygXSCfhw4OXJQmjFSM04kbBTn3Il+ EPzMBOXW9UHAw== 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: [PATCH 4/8] mm/damon/core: expose damos_filter_for_ops() to DAMON kernel API callers Date: Thu, 20 Feb 2025 11:46:42 -0800 Message-Id: <20250220194646.37726-5-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250220194646.37726-1-sj@kernel.org> References: <20250220194646.37726-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: C2E451C0011 X-Stat-Signature: fd41m4o7h1d4bbdm65rj4mztuw3yhkte X-HE-Tag: 1740080815-674181 X-HE-Meta: U2FsdGVkX1+0J/EJ2peUKAQCwCbMloQeRZ5y7Z71gRU9qdB1rY24z/qVWCnp0ypNkJ7XENfRPTsvoeTEmP/xLfNHV712j5VAU3As8IhOpnR0xLoneudw+LIEvIT4HpUwsHXAIVptLBSuXgCOgseje3MYK2bq+UFoLt+OUK/hwSGpEgCM16QgIagdtpAz2Rb7JIvP7UEQNm7l8B4ojPXjp/OBBMSjQIBeSuzltnCEt+etZpnSabm4HkWj+ZQBVHFvOe04GEWkMW1S/6OqlM71o2YhkX0OkmWXWXHbPAP7+LKmt+cws9l+gMRoMchO2F+B6I3pA9ZBL1QQyORr7tomsNAKX/+6XgO2IqvHgH+pOCFLU8YnR8DpgDcGTzm1p/fy2MB0IbZwnGpOYVZkarNjF/xlWDa2JbezchxKX9gsecO2NdmyFTIIEWUjpV6p+UkPu01kRSma/v9ql6AZ5XW6Q+P4Vr2mKyFUPAJDhysZ4CaQwVfB6QSEfyTROGe45dYx9r32FkubE6l5ZjnqFQDmbmwQwKxsus86snZYio8ATT9m7BnUET6LFA8JU1fbat3aTjyqmRN63lhhowsvPGbpuA6/P+BregsrR+XB1L2ur6Ur62pOX+Un32RtTwPmiG7ae16R2Hjkcaa6GBDAA+cWxlzyPMzEX6IY/JaOeM1TZgVJGNXsgOGrK6s5DzsfV4iL/3bchUgM1Ghr2Iq6G7pzzYp5HQcHKhqAjWfW0zNypHmjXHVdRS7r1KF7xROABpo7svgO0oGcLxJta0Oou9GRm7T5IPae6HBrxqFPndRNYdZU5EiguYh8mW33iOHoCOTC6mVKdEGDiWUqjEkKlFuOOffe8KYPkXu22kNNSDVKdZUvZtfjXrzsjZTd75pu7NoGZa5N3v6N6Z44f3CxH0PmdgRumzV5dlj+PiCyHh6NkhHvmpGuRAAH4zUWhJrJyemUwc9cE6yHoncpCsat056 DRZiW24n 55cvX7t8C327rf+eFw76ns5AXDEFakF4szcLb4BHDKQigbLJHMj9YHYRhON8NEYI7rytlKNY3so9Uqa3PgMuyi0Y8NPuastTg824RB2RvRowBeNYr4b0TFQfdyaw2w4sXuataL26d+NP7w0GVUY02usFZixoGhOZYT4BCuF3lthGDiSQI9vaq/hCY1oUS2+UQn1In3Y8N72nb/3DYbu8+63vQxVT5wqbASqyRMwL5KA708jNqch3OEJCpDRXqz/YS6U9mxio1eQ1Y/1mJV3wJUWIFpQ== 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_filter_for_ops() can be useful to avoid putting wrong type of filters in wrong place. Make it be exposed to DAMON kernel API callers. Signed-off-by: SeongJae Park --- include/linux/damon.h | 1 + mm/damon/core.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index 1d8479f57f85..085f26a2e702 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -846,6 +846,7 @@ void damon_update_region_access_rate(struct damon_region *r, bool accessed, struct damos_filter *damos_new_filter(enum damos_filter_type type, bool matching, bool allow); void damos_add_filter(struct damos *s, struct damos_filter *f); +bool damos_filter_for_ops(enum damos_filter_type type); void damos_destroy_filter(struct damos_filter *f); struct damos_quota_goal *damos_new_quota_goal( diff --git a/mm/damon/core.c b/mm/damon/core.c index 9744ab9ca5c5..273c91e6df86 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -281,7 +281,14 @@ struct damos_filter *damos_new_filter(enum damos_filter_type type, return filter; } -static bool damos_filter_for_ops(enum damos_filter_type type) +/** + * damos_filter_for_ops() - Return if the filter is ops-hndled one. + * @type: type of the filter. + * + * Return: true if the filter of @type needs to be handled by ops layer, false + * otherwise. + */ +bool damos_filter_for_ops(enum damos_filter_type type) { switch (type) { case DAMOS_FILTER_TYPE_ADDR: From patchwork Thu Feb 20 19:46:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13984466 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 28F59C021B2 for ; Thu, 20 Feb 2025 19:47:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 22E40280333; Thu, 20 Feb 2025 14:46:59 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 18C9928032E; Thu, 20 Feb 2025 14:46:59 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EF870280333; Thu, 20 Feb 2025 14:46:58 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id C44CB28032E for ; Thu, 20 Feb 2025 14:46:58 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 77E08C2B56 for ; Thu, 20 Feb 2025 19:46:58 +0000 (UTC) X-FDA: 83141356116.27.35E36A2 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf20.hostedemail.com (Postfix) with ESMTP id E70661C000F for ; Thu, 20 Feb 2025 19:46:56 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=maUxGS9R; spf=pass (imf20.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740080816; 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=ikZ/tnHD9e3cljXpiW7EOHMvDbLul49SDSCLRjGTb2c=; b=JrdOvWoZfOzjAx3Gdj9mkVE+PYSI80bwbltz3f9M1UEU7hk7foRf6H4oycGJyLCF0GVKu+ gTCruXFbZg3quMSKPcKCj3Hg8piySESPLn2rBKdZ8rYtyP1RN9j/aq/Eve7jTor82lJTyQ zJtfybH4Fu9pzrX2Jmg3Nnloptg1BPw= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=maUxGS9R; spf=pass (imf20.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740080816; a=rsa-sha256; cv=none; b=oEy2HXvKgVyasn5J4Jw5US9p1ChzLRgTJrsMSnrXRmcwdGu+z43DcQYMCCi0SBQhLyuGR0 TCAJlNTrMlLGOTPQxxCoVnsJcVqLlEBX9jIKVwSwTNnI7xdvUoQJap8fPChisRmD71LdyF XdfJeBIc8xm/jivC7WECXEJwYEdnr0M= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 1AE136832A; Thu, 20 Feb 2025 19:46:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 583C9C4CEE4; Thu, 20 Feb 2025 19:46:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740080816; bh=Oq7zbJY/d75refySY9fqfwByqDNucfBFfKnaietebjw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=maUxGS9RJdK/mzBVdHSuSfIk7VmThiSz7N59euVqeFHpmaCGfRUL/9WfYVhzkNwFc /bv/0r0YnnNsDvxgNMcPkITwNP2+d+Y8uizGuWm1hLHD5CHLiGT8+5bHhyMDKrFD02 CwKNdOI9XLKrBmZCCMMyK3KpxdmxEZ5E67aUvcfUPE8HzzggqWLPfsbH50GnAEG9Vs D58in8g9O2J0YICICksTAR+qBmUF6zVfTOrk/06L2BE2e4turV5njT2kMPTyPeEzN3 akk6KIthCZdvwKXuZxNlDlziSTSGeT1DBuh+m31Vw3+AqpEvizFzWqO/DsRM9zwpwq F1XWNTZfmRUvw== 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: [PATCH 5/8] mm/damon/sysfs-schemes: set filters handling layer of directories Date: Thu, 20 Feb 2025 11:46:43 -0800 Message-Id: <20250220194646.37726-6-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250220194646.37726-1-sj@kernel.org> References: <20250220194646.37726-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: E70661C000F X-Stat-Signature: ogc6z59fdutmprxcymxf8n8ra8rww7fb X-HE-Tag: 1740080816-37728 X-HE-Meta: U2FsdGVkX1/Lm05HhPqaRCyuI9fUCsekxm8KIEU9u0REq8hzKFW3SXXXtuxFKY2qTv0wdhY8eh0iG27lX4zrDXN7KQlXIeDLOk/9Xkr3zhcep/6IfbpPUggwwdox72N03B6QlXfT6L/iLeEr79mhXr3Xjn1T4RhxTLbxyZmD6GDxeu8i5UuEtCJVrJm4AGt0n3J8RsXwwqmHyzs+6Z+yWHKduajxkAEL1PxzKQaTZGVHagaouXlPnsViAmeMthkb4kGxBioCGVszbBPaz+B1BcJg1CIIDb+76OMjqUPJPhLnFTDix2SGKMT1MkH1oXHCoH+9u6sAOIkRNesCHnLr7XeYiIe94jXKIsZG74i/aoyZeMX0mMB88Tj04rFE7tTZLQbFqovaY+NXlb+oSBeyDc1Xo98XtufyzWDK8WJiTPprIEZJjyf2ge3JC5SzTXNBQWsg+8ifovh/1CPPOvb0Jlgr/pWabZIp3mjQrzExDw5tt30M61rZWkO1BdQmFySxjc/qL3ZzRF3AKyzN/mFVnLPck52F7fiQ1/F26Ja56wCSz68s0TFNq3JqPvJHkDNuMkTA1pqaRxK6/FXqXJgNYz0oMw1MnFk3YxN1R79+LWIA7tV/abAge7FoEav4r53ZJV/b8sF8ctXy+hKdC1Weutv2WA2XmAaK10Jmc/i6YxIn1RdhYNIszw9Ws06/M4kflQ8pxr1IRVDMWtnh/1guj8hgLpBZrFkOx6MIO+moXfTp+V2V7D9Z78PBh3DUWq8E3+46VHj3aMKyKKG6Xpt6YIcJMRbfY6Y4ukGPC6gwPYY7Y0x7P6h1KGI9IjV6MMcf64pM64ukEfBRtzC2mfMYnX/C2+THoHgDeJvBtWVXvC4dFX0I8m05A+mtMCT/fwhHIOqHeTMOlMWfgJvPhUTL9P3qRMIeZupuBueIqUoYpH/FUV29ZeZ79QZPS7Imndbop3Mg2abWpjsuruyeIIU GJ/fZnPj 1Hjs16/x3H9Nv1WNGFJqhvs0GpMGw2es2awqPpzIFys0p/j1298rkHfZ7bpqhyU4LhgcLFHyArwPzcBaf2ptRYUfai3LDb9TmplVbKpUNG/FZkrhgeGql5mkD+RB4WyChE9tmBwe9XMh9/2AmOkwUsGtdMTIcf3a29YHZQYPLd5/4lAcByBdd9rYjgnGPXGahsqQ8wOoIj163sggcFBhp43BuYAZgojXwwg8baZJuUa9SpfyuqZuvQqV6C2hid7Vjwk/haaEYVb+7dTk= 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: Unlike their name and assumed purposes, {core,ops}_filters DAMOS sysfs directories are allowing installing any type of filters. To restrict wrong type of filters to the directories, first add information about filters that handled by what layer should the filters allow installing to DAMOS sysfs internal data structures. Signed-off-by: SeongJae Park --- mm/damon/sysfs-schemes.c | 46 +++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index e85feb329bd6..b9f035f4b00f 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -309,8 +309,18 @@ static const struct kobj_type damon_sysfs_stats_ktype = { * filter directory */ +/* + * enum damos_sysfs_filter_handle_layer - Layers handling filters of a dir. + */ +enum damos_sysfs_filter_handle_layer { + DAMOS_SYSFS_FILTER_HANDLE_LAYER_CORE, + DAMOS_SYSFS_FILTER_HANDLE_LAYER_OPS, + DAMOS_SYSFS_FILTER_HANDLE_LAYER_BOTH, +}; + struct damon_sysfs_scheme_filter { struct kobject kobj; + enum damos_sysfs_filter_handle_layer handle_layer; enum damos_filter_type type; bool matching; bool allow; @@ -320,9 +330,15 @@ struct damon_sysfs_scheme_filter { int target_idx; }; -static struct damon_sysfs_scheme_filter *damon_sysfs_scheme_filter_alloc(void) +static struct damon_sysfs_scheme_filter *damon_sysfs_scheme_filter_alloc( + enum damos_sysfs_filter_handle_layer layer) { - return kzalloc(sizeof(struct damon_sysfs_scheme_filter), GFP_KERNEL); + struct damon_sysfs_scheme_filter *filter; + + filter = kzalloc(sizeof(struct damon_sysfs_scheme_filter), GFP_KERNEL); + if (filter) + filter->handle_layer = layer; + return filter; } /* Should match with enum damos_filter_type */ @@ -595,14 +611,20 @@ static const struct kobj_type damon_sysfs_scheme_filter_ktype = { struct damon_sysfs_scheme_filters { struct kobject kobj; + enum damos_sysfs_filter_handle_layer handle_layer; struct damon_sysfs_scheme_filter **filters_arr; int nr; }; static struct damon_sysfs_scheme_filters * -damon_sysfs_scheme_filters_alloc(void) +damon_sysfs_scheme_filters_alloc(enum damos_sysfs_filter_handle_layer layer) { - return kzalloc(sizeof(struct damon_sysfs_scheme_filters), GFP_KERNEL); + struct damon_sysfs_scheme_filters *filters; + + filters = kzalloc(sizeof(struct damon_sysfs_scheme_filters), GFP_KERNEL); + if (filters) + filters->handle_layer = layer; + return filters; } static void damon_sysfs_scheme_filters_rm_dirs( @@ -635,7 +657,8 @@ static int damon_sysfs_scheme_filters_add_dirs( filters->filters_arr = filters_arr; for (i = 0; i < nr_filters; i++) { - filter = damon_sysfs_scheme_filter_alloc(); + filter = damon_sysfs_scheme_filter_alloc( + filters->handle_layer); if (!filter) { damon_sysfs_scheme_filters_rm_dirs(filters); return -ENOMEM; @@ -1607,11 +1630,11 @@ static int damon_sysfs_scheme_set_watermarks(struct damon_sysfs_scheme *scheme) } static int damon_sysfs_scheme_set_filters(struct damon_sysfs_scheme *scheme, - const char *name, + enum damos_sysfs_filter_handle_layer layer, const char *name, struct damon_sysfs_scheme_filters **filters_ptr) { struct damon_sysfs_scheme_filters *filters = - damon_sysfs_scheme_filters_alloc(); + damon_sysfs_scheme_filters_alloc(layer); int err; if (!filters) @@ -1630,15 +1653,18 @@ static int damos_sysfs_set_filter_dirs(struct damon_sysfs_scheme *scheme) { int err; - err = damon_sysfs_scheme_set_filters(scheme, "filters", + err = damon_sysfs_scheme_set_filters(scheme, + DAMOS_SYSFS_FILTER_HANDLE_LAYER_BOTH, "filters", &scheme->filters); if (err) return err; - err = damon_sysfs_scheme_set_filters(scheme, "core_filters", + err = damon_sysfs_scheme_set_filters(scheme, + DAMOS_SYSFS_FILTER_HANDLE_LAYER_CORE, "core_filters", &scheme->core_filters); if (err) goto put_filters_out; - err = damon_sysfs_scheme_set_filters(scheme, "ops_filters", + err = damon_sysfs_scheme_set_filters(scheme, + DAMOS_SYSFS_FILTER_HANDLE_LAYER_OPS, "ops_filters", &scheme->ops_filters); if (err) goto put_core_filters_out; From patchwork Thu Feb 20 19:46:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13984467 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 9FB6BC021B1 for ; Thu, 20 Feb 2025 19:47:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 75B99280334; Thu, 20 Feb 2025 14:47:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6212828032E; Thu, 20 Feb 2025 14:47:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 42641280334; Thu, 20 Feb 2025 14:47:00 -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 1C14028032E for ; Thu, 20 Feb 2025 14:47:00 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A7938464CE for ; Thu, 20 Feb 2025 19:46:59 +0000 (UTC) X-FDA: 83141356158.16.0E1FAB1 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf18.hostedemail.com (Postfix) with ESMTP id 22A991C0006 for ; Thu, 20 Feb 2025 19:46:57 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=qZNHY0Zy; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740080818; 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=yUjghrGCPHPpolKcPZBoEKQE2r7Gu36WsXw59Of9gfU=; b=8eyTqkZ7UDFcwwXSkqdnkSIPyZ4GfJWJsfzWi8oKRvG/e3CybmsxSOdloBLth2kOlYSqVr hCl1IeHqnKgqFjVZkLkLGTJ9WELQ0eQNAee5/DY6GX7QGC0PoyuH03eHfTiW//BURlvQk6 bie4wS1yzsTRNtJkaf5RBl5fjyk0Bh0= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=qZNHY0Zy; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740080818; a=rsa-sha256; cv=none; b=uaVgAsaR7vlBcW7GHkP8+PHr6v0ob4dZu42jwDNpGQWlJZcyuoIowegKrh09FeBBJXgI2+ e3snTLBwbpTdP3bwY+U+SayVMLVsi3Km+dCue/whDsHSRX1jVcoFwlSTc5C82D8ClNabKn SBGG2W3OW2F6Wo51FCp7daj+6jd6UL8= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 3D8FD6832B; Thu, 20 Feb 2025 19:46:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7E287C4CEEA; Thu, 20 Feb 2025 19:46:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740080817; bh=LQ57T8uZEfXJqRz+pJDK96lN4rwQ3E6I/AuuNUmLtpE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qZNHY0ZyUBDQqoyqcF8xXzG5aTN9mOB7+NBUj3oAhIQR7q2ignh449gJSWhBuJnPx kv8MO8bEU0Job844Cpw2DTVwapbIRaiR55bpnwYVJXdI0ugER5GxM7IggwGOTlPcS5 niTtkoPczx2sAjwr2Hw2ccuwqCwJ1E8knqHxkAkP0It1SIep4kDjSKWnYyeNDPWeGg LnNsDhURD9BVBoK8UgVfhTVaZDO4XgkRavvGI+/d5nP/GuC/LtRV8Zi6wIQY6e1+qs Csm/bVpSbSqSRRGaEhG6WeQ9g6kbDCLEvWit4MVV4vG3jpkxAL+os0CjAYNGOl/m0P MPlh/ikCgqNDw== 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: [PATCH 6/8] mm/damon/sysfs-schemes: return error for wrong filter type on given directory Date: Thu, 20 Feb 2025 11:46:44 -0800 Message-Id: <20250220194646.37726-7-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250220194646.37726-1-sj@kernel.org> References: <20250220194646.37726-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 22A991C0006 X-Stat-Signature: r5a86x1kkmhbq74m5kb63tjcx9jwc51k X-HE-Tag: 1740080817-160444 X-HE-Meta: U2FsdGVkX180YXYgwWgYpq1iIQxLTW/u0M8FxnSUPeyVAjqowS27fPd0/+iIJEC25I1PSTGJkK2SMQP2McXyyBLuQpxMlNIyf7f8YmfABZ+4A+sDLjxl/EMeEnQROFjgkcYobp0n7b8wDj32D2xt6UH7IiecUU3TfsNqmeZhcrvvxzUOIvqqrLaZWZ9KOLVcMuFKj9XfSu3K9DyDwk4lxtQjcyNLgtrH9kT4TdnB5FeeeSVnTwqQ0LFHQ2JgFmIvBslf2V+xZHLQJnIDek+Zu5jxJzN4fnh5ExjvvURmMOKpyTWPqG8LT3CIHRVt1UkGv6AA0dOPbjMNAQxCTsWiP0E5A9NY5WPTFFQsmGfBt67tJ6TfFJHlcJZnN2miAGI3u3JmkJ12o5Mag7++dee2bAR3q9XNMVS6fsDoMys8vZLXEttal3mnR0eF97K+2JnxC0tctDbMEwaol2l26NbpUkt4tbXFUM++aTg512EFqSE1jYQuB+SXA7zYj+bjJ06ZL07XjGh2jWgwe7KDmHptS8bqQj0wbFNrUsHQ9uBh+7WsYXg4gszmEFstn7WBMMt49OhYNYlaGEWsiAxBzj5KzzWJVEd4l1F0qpp/TMJEocu6PD4DHwmEB6M7ej/E/k0YTsohGAuCkIax40iBj+4CHGqKE7cF8RLdGlDS2DvkWhXc6TT5hp4AQGAe4xmCV5rVyvDRPLtvOLa+0VrkORz/5ag0hrlz8mXczdRyYsIuhsWvNE/59bpRJtt+N6zBbxg0+bwPTQpWNalzMvFyoBHwWNMsSs/5gH8BlqA36OfJR9zHf6jGuErN7Y5EfefN2VuKegY+eGsoEWWqhjoojMzhh1PjWuQooFpWwfeo4OpYBHAChT9iQ8Ceafk2uF6kbT9Xl5jFBhdDgLZlo7wTp/nbvLBBQ3WljkD1pghmViskgdUXtheJ0Os53sxTExITgNV9KLkZxSz7spBkgMoyuQO h/0M2Ylc PuGvUqIR7wHC55wfkBdq+LrVnbm2isI0/ELXLf0feziCQzLdONWG7DEvLV3uk0rIlhxi/hDIPhDmWbnQ/46tTFcSV3elva1qRD5lU8eJAN6SwmRA6e8ys5Lp8mPIjJhb8/CAEXPuTSrxARLxu2ZnSuRXDnjUgaLy56oAl4a42mifWUmfHrIRSSU6v2L1i3+nb7FO21nJcz5iIm5P43+5Vi2QgokbI+d0A1B3MBzjiXPr8BdLdzUMlon88a+0i2HGcAdRzAYl1JUs7rDY= 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: Return error if the user tries to install a DAMOS filter on DAMOS filters sysfs directory that assumed to be used for filters that handled by a DAMON layer that not same to that for the installing filter. Signed-off-by: SeongJae Park --- mm/damon/sysfs-schemes.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index b9f035f4b00f..ed834622df2a 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -362,6 +362,23 @@ static ssize_t type_show(struct kobject *kobj, damon_sysfs_scheme_filter_type_strs[filter->type]); } +static bool damos_sysfs_scheme_filter_valid_type( + enum damos_sysfs_filter_handle_layer layer, + enum damos_filter_type type) +{ + switch (layer) { + case DAMOS_SYSFS_FILTER_HANDLE_LAYER_BOTH: + return true; + case DAMOS_SYSFS_FILTER_HANDLE_LAYER_CORE: + return !damos_filter_for_ops(type); + case DAMOS_SYSFS_FILTER_HANDLE_LAYER_OPS: + return damos_filter_for_ops(type); + default: + break; + } + return false; +} + static ssize_t type_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { @@ -373,6 +390,9 @@ static ssize_t type_store(struct kobject *kobj, for (type = 0; type < NR_DAMOS_FILTER_TYPES; type++) { if (sysfs_streq(buf, damon_sysfs_scheme_filter_type_strs[ type])) { + if (!damos_sysfs_scheme_filter_valid_type( + filter->handle_layer, type)) + break; filter->type = type; ret = count; break; From patchwork Thu Feb 20 19:46:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13984468 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 2F3C2C021B1 for ; Thu, 20 Feb 2025 19:47:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4C3B8280335; Thu, 20 Feb 2025 14:47:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4738028032E; Thu, 20 Feb 2025 14:47:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2EB27280335; Thu, 20 Feb 2025 14:47:01 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 0F5D428032E for ; Thu, 20 Feb 2025 14:47:01 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id BA2A8142CF1 for ; Thu, 20 Feb 2025 19:47:00 +0000 (UTC) X-FDA: 83141356200.28.A45D531 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf20.hostedemail.com (Postfix) with ESMTP id 2D7221C0017 for ; Thu, 20 Feb 2025 19:46:59 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=bJn9L2Jv; spf=pass (imf20.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740080819; 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=sy3TVCGqjq9VHz62RcRzyJp8zNL4yS8GYzd/nOCMq/Y=; b=jWLe+QAei+a0Y+9vR70B0LyNFRpIB+AdZvAkAhrPIqyJeiYueIWHDaDqSOiLDWN+gLY1KT O269WVh0TFyDJ1m+lpdRRyHbOTkmwuVnzxqICf3JnXZLJaJsgHNNPGGvmyzkK6EwI8/eZz O0aIeQKhIW32ZeDagBZLI32R8q/Qj9o= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=bJn9L2Jv; spf=pass (imf20.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740080819; a=rsa-sha256; cv=none; b=ho39ZTPpQrfr59lvDeWMYwZgdO2A509tCND1FJtAjgKyaqFWtUf7kHoQbFr4nn8oOQ0ASf bdrbtlq3CGucEwdFX9qjjCODnSSXEfrFhu0xim0xMWd3TYQ+68cpF7GIK6Sl3BAQBXa8K6 jURkEfoPnPLf+q0B8QxyOknRIZuFj98= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 5D05F68328; Thu, 20 Feb 2025 19:46:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E249C4CEE6; Thu, 20 Feb 2025 19:46:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740080818; bh=nr8gMx8OR7643cAM6UGnwQ4mZJ3Mvv9MJo9TcURxfTw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bJn9L2JvryVbczIzy91hnqYdPtrPgnhjJM9l0ZjezGXCS0x+BVdPrOFnCMDIqxZNI njxzMFP7Ev86cQcsfM9UHV84nOHL/5vNcAiLjU9jH/4wLrjR4SZpTE2Lo99umM8Q8S 7qPXgPyVIcP7LiS1PxxK0rgxWkS0pHLA5XPedcbd2K4Tn6gmp52Qh/S3a2Him8sM3o 1FuAeY0J9BIFCPXpiukeSKPiGVnRiNZ+qLOjr4zfbx3ft6lALEcAKVBA3HlmiJqYuZ oz/2s3VMtu5BHvvk24CKo0mK0BxmJEJrZclq9/23BD2gmSEo4Xyz7iFFJ83wqBDXng Dk/V3GoVpDkNA== 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: [PATCH 7/8] Docs/ABI/damon: document {core,ops}_filters directories Date: Thu, 20 Feb 2025 11:46:45 -0800 Message-Id: <20250220194646.37726-8-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250220194646.37726-1-sj@kernel.org> References: <20250220194646.37726-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 2D7221C0017 X-Stat-Signature: 4abcjtkj3bfs85kzgjbmhc7br45wyier X-HE-Tag: 1740080819-364820 X-HE-Meta: U2FsdGVkX1+nkax16HNKH1Ti5+uTbANglr9wjXz2dEoOBk0ghIFegdHPSNM4Jdt5VhP5b40McvUupr9/taLHSJeazXzqczfOtLjbN0zHfb42NRxDsi2u5NzDGg7Qjq57I1XStiYP9P+9l+QwbvlVfO9bBc581Y0VA/Q8B3cMYnHfvw9tRzBdnA+9zZ3XHOkT3YAUcgVy2J8HPw56464hp9R3uZOHceOEVisNMy1500kG/STUVrdCrAkHITV60z35soB8B+qdwlEWxVvXVYuArBHg8jGRqQv1W4C3St4OkjqtVjmk0xeW/zMr2OPgtn5w4ZLgyhOXO9IULOPIyJwsD4nyDRLbbnyuhj6Q3RkZV3XqSWVZwjSULoua9WJgGBqdmQk1Hkn8+uVTh6k18l4iRDOpGNLtSB52EVV9pBoMZJ9XQ5VZJXbTIua5aZ4GM/RELiuAvqqSY1EifUVt64YHjdA/SfJyw3YXQK23RYyHm+1yZu0LepJ23ESHbx7yonT1hR3hd8XjdpmW56EkSPSc2raJocJPm08dUe50+Qgo8S1dV/Q6eDHsymLShnaTwh9YXPDBHrvxx4Jixv2I4AKUCUM1tO4rPmxCnVCuZtl7dkIxhUtHfSA/2kCumaPhDYSaB5UwqqMBSoJTiGXgdYKupfGaOAS1XTtXG2/92KnFmX3rcOpU7jjuQh4ozKhCUDrS2tXmyaXV5Ts4r/1UwsjbN8BuldtcpBYUUO/b2ICMu51Iec6kPRADq+RcMo4M5j4+/ZQ7xa+wa0yY47oRC1cKGueTWhvPOiEnWqKM6RMrM6vgcz3h5DX9rz5T8qBlMHxMAqIypWncVGbcpZeLKWgqLUrIGjrK3NWVEpY0zMS1c8xVvf2Y3rQNtR20VFDFM/vyjUIgdZ9u+/ypcpQCguVLmorwIAuxbl6CW05zpq9eUiWrL3Y/7d+nlSBe6hTmqFn5v2L/lKLvRRu1xkyF3JC 0/nwzTMg 0stBRz2n6Do8hF++6iPGl0pvt7fs4Kp7Azny5bd6MFCcOsr3UVtigTXc/tG9Fi14B2fXgF3qLvAvvhquVbLHR2NyqwFDpr+9Ml7kGm18WCy9eC4nq3o07/3dMLUoTDeOARa9aafLTYV45Tw6I5LkvzlCZ8sCfYcbVOSr0JAdH6BFNAZr3syzrcUD0YHqSbUs8fbmg/pG/ugATv9WRp/iEoap23aev5YwZZWwNXg2Tv0yPkEOfLkRjvEzSq8qOXYnflLUGuG6ozq3KUCRqPB54QYuQ6IzyP5Engba++rMPCfx9x7Urcqw+RD6RVQ== 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: Document the new DAMOS filters sysfs directories on ABI doc. Signed-off-by: SeongJae Park --- Documentation/ABI/testing/sysfs-kernel-mm-damon | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-kernel-mm-damon b/Documentation/ABI/testing/sysfs-kernel-mm-damon index ccd13ca668c8..9666074f06f3 100644 --- a/Documentation/ABI/testing/sysfs-kernel-mm-damon +++ b/Documentation/ABI/testing/sysfs-kernel-mm-damon @@ -379,6 +379,22 @@ Description: Writing 'Y' or 'N' to this file sets whether to allow or reject applying the scheme's action to the memory that satisfies the 'type' and the 'matching' of the directory. +What: /sys/kernel/mm/damon/admin/kdamonds//contexts//schemes//core_filters +Date: Feb 2025 +Contact: SeongJae Park +Description: Directory for DAMON core layer-handled DAMOS filters. Files + under this directory works same to those of + /sys/kernel/mm/damon/admin/kdamonds//contexts//schemes//filters + directory. + +What: /sys/kernel/mm/damon/admin/kdamonds//contexts//schemes//ops_filters +Date: Feb 2025 +Contact: SeongJae Park +Description: Directory for DAMON operations set layer-handled DAMOS filters. + Files under this directory works same to those of + /sys/kernel/mm/damon/admin/kdamonds//contexts//schemes//filters + directory. + What: /sys/kernel/mm/damon/admin/kdamonds//contexts//schemes//stats/nr_tried Date: Mar 2022 Contact: SeongJae Park From patchwork Thu Feb 20 19:46:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 13984469 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 B3BADC021B2 for ; Thu, 20 Feb 2025 19:47:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D287A280336; Thu, 20 Feb 2025 14:47:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CC21A28032E; Thu, 20 Feb 2025 14:47:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B2A02280336; Thu, 20 Feb 2025 14:47:02 -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 7F3A028032E for ; Thu, 20 Feb 2025 14:47:02 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 2CE24B8BD4 for ; Thu, 20 Feb 2025 19:47:02 +0000 (UTC) X-FDA: 83141356284.20.0953FD2 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf18.hostedemail.com (Postfix) with ESMTP id 82BCF1C000D for ; Thu, 20 Feb 2025 19:47:00 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=XQ1j2p9F; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740080820; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4IqhO9hVSIqxkT4XwjXfyTCAv33K1L6tlmH7jNKLC+4=; b=mdj6hwQFFbr9xMtM9fKC6EYaJf1+o/1IkUgP/Ofyn670kaGk40ccbPBQ2tEzTsDmidqVGR q+n0RkmOMXL4n+ssiARi48gZznin2TL4b5mhVsVyz3V5wnPeG5yuR537iMF6zip+hqug9Y ylkIoP/ef3vI/AQXfwPhs+RT5QDqMDc= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=XQ1j2p9F; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740080820; a=rsa-sha256; cv=none; b=lF7+0w0xJ74fepn8bA9K3DfEvTodcYIKgUXmVjXf0OCzmNhAkhxircW3UpT0gHwcsFBAnF LPS4c3KMtsBd3cnWQLj+dO+qjmJVn8Su2jIbueT90tXDSr2oOkd5AbEM/psZduTf8aFPiI IVQ0KDmS5RUz0rERpH8N8iShETKBABg= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id B26396832C; Thu, 20 Feb 2025 19:46:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3DB2C4CED1; Thu, 20 Feb 2025 19:46:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740080820; bh=gpLkf9zlQXx9+WdyCFmZfQMDYQZmdg3U3lwl8lQVU8U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XQ1j2p9FdJNVRlZZLTAB9nZE7l3lDOPSuLJ8cwJcZTqGShGQ0Ez9WwbtFRW19gDU6 ny570yEzYzz473rbwtVzOEBKKLamsqJBsFXuIY6NZiYGXjZXJtrPulkpvgfSK507JJ OKrQTeu50f3G38/jZqdWlNcYxAKgAfROJWMV9AWGiU6DzhP0xWwo1cuHXDt5Jy7roc E3VoKYCe9fpZyqLLeq3BktBihQyU3BHY1PTPZUK7gGK4dEMzvJmPFl0bfM87u/cuYu bH/O0Vr6mecY5vzZgpvaD16rjTWgZTSA/vK4Zi/LEMh4Mo5OqrgCympoBiYHWFXilr ib65nZ47RmwMA== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , Jonathan Corbet , damon@lists.linux.dev, kernel-team@meta.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 8/8] Docs/admin-guide/mm/damon/usage: update for {core,ops}_filters directories Date: Thu, 20 Feb 2025 11:46:46 -0800 Message-Id: <20250220194646.37726-9-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250220194646.37726-1-sj@kernel.org> References: <20250220194646.37726-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 82BCF1C000D X-Stat-Signature: iedy1knpeo8ykc5ktyjid18t6r8kox1i X-HE-Tag: 1740080820-119802 X-HE-Meta: U2FsdGVkX1/hYoql+P6LnRK+b6owTSuXQ4TExLF4fpspNXCSE9U5lzRkSjnOkHJ09suZra2VDF6NCq+usS96NlV3v7qGBsteMQyOVTdsGQaEt7BZA7Cu9VWZbMADu7i42wZefbmRDFtH3kj4QyfL2ABJVgNnI/hrSv2d1f1TftjsoPmWpYCWNlFfyka0yPPiKMXq2e3WZQC1T2gL5JqP0OkNrJ3Q23xEOgUl41qUIThaPQWz2eZuUgf3r2iuwxHCCgBOD5Z+Y/ONKGoRwmBQTe4noGv832IZ3/hnsDza7OqNzma/sGvEBU73LWxjRIKkKDRqYKVTwcA6Ofbbka2c5DvUfBpMXcP/oe3fhnCvlN0LjbFnC1kPZ/hsXALrYyQAAuYkw32MBn8JFauuMUZswOqoLAKVnWMcx9rE1L4oMcJw/nzLMAMQs1dY0qG4E6I2irGlHtTZed5mbwXOsR8JO4Ktk716BP2Ivrh3MtorIO9DZTlYtQwmK+bnseDnfLACSKnhleNsWc3aMzhrc5TiM1OcDcpQN3SKJqx+pmzZM73uDxMW9R0aXSe1ihhTeU7Oo6GG37P1zh3wUiKwimVoIFOs5JRAJw/VXaPfC4wIw/c3/p6gD1qu4OpCB56+PwzTIvWaVQXWyFoLvlGzuKbdK734r/JzExmeRVG2744GLhsplsNea56PbgpPOm4rYVYZbJJbbNmPRqhJYG+28RRd/hvDUqYXYWo06sskxSZCIlhOHgiJ/2HMOcg4RV41k7P+IRyhn+zgnIw47vmtCmrtJ1VuGgk/UGyBY7pXSBMBO2va3rJssfol8k04lSm1D1Prl7q7ojdKAJLuvOwIKkl1Eis9smN2Z25Xd+jHevDbXdsJIF7IH8vUkQC8fLbCqL1Hld0zBfVT+l6MfAff4//GXuDAFhIYzo+AevJO4NgCoyWHIBru6sENI6e9WTi0fuKa8nHnlm29A5YvRAdW+XS /E1b+qFs 6doBwUh64CEIvqyJwd103YRSIPlv+JCr7+8a8FroAqHSomuyt44NPiRMCi/dp6wt0m8rYZ+K07rXhwJ0jqizk5RJrCvRbnHhrkjhCh0omDlAiXy7Q4dpxRQF/c8EvQGC2wEknI3ErRkRx+oib0+jtex3tlVkpuTpxgTbtBLZKdcIC6Csu6UlX78lLuZEUd3dYHvQZUyvPAQJWQK8G/x+8W/v9LFuYvgmmuG7WHqXS6bk7rbuN3OvA1OTzoIRDlLN9MDUSwqcnGumvS1cAbH8Oz8SMGqWIaL/QKbAH/Y/PqBEb3jCeNArJ+KnhE28jy4+0DungQ40dsg54qdkyMyac48eN/80Q/uK5NRXLRBs18UlN9nPu/4t9Lz4rwXdXNkPMECnq 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: Document {core,ops}_filters directories on usage document. Signed-off-by: SeongJae Park --- Documentation/admin-guide/mm/damon/usage.rst | 31 ++++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/Documentation/admin-guide/mm/damon/usage.rst b/Documentation/admin-guide/mm/damon/usage.rst index dc37bba96273..4b25c25d4f4f 100644 --- a/Documentation/admin-guide/mm/damon/usage.rst +++ b/Documentation/admin-guide/mm/damon/usage.rst @@ -82,7 +82,7 @@ comma (","). │ │ │ │ │ │ │ │ :ref:`goals `/nr_goals │ │ │ │ │ │ │ │ │ 0/target_metric,target_value,current_value │ │ │ │ │ │ │ :ref:`watermarks `/metric,interval_us,high,mid,low - │ │ │ │ │ │ │ :ref:`filters `/nr_filters + │ │ │ │ │ │ │ :ref:`{core_,ops_,}filters `/nr_filters │ │ │ │ │ │ │ │ 0/type,matching,allow,memcg_path,addr_start,addr_end,target_idx,min,max │ │ │ │ │ │ │ :ref:`stats `/nr_tried,sz_tried,nr_applied,sz_applied,sz_ops_filter_passed,qt_exceeds │ │ │ │ │ │ │ :ref:`tried_regions `/total_bytes @@ -282,9 +282,10 @@ to ``N-1``. Each directory represents each DAMON-based operation scheme. schemes// ------------ -In each scheme directory, five directories (``access_pattern``, ``quotas``, -``watermarks``, ``filters``, ``stats``, and ``tried_regions``) and three files -(``action``, ``target_nid`` and ``apply_interval``) exist. +In each scheme directory, seven directories (``access_pattern``, ``quotas``, +``watermarks``, ``core_filters``, ``ops_filters``, ``filters``, ``stats``, and +``tried_regions``) and three files (``action``, ``target_nid`` and +``apply_interval``) exist. The ``action`` file is for setting and getting the scheme's :ref:`action `. The keywords that can be written to and read @@ -395,13 +396,24 @@ The ``interval`` should written in microseconds unit. .. _sysfs_filters: -schemes//filters/ --------------------- +schemes//{core_,ops_,}filters/ +------------------------------- -The directory for the :ref:`filters ` of the given +Directories for :ref:`filters ` of the given DAMON-based operation scheme. -In the beginning, this directory has only one file, ``nr_filters``. Writing a +``core_filters`` and ``ops_filters`` directories are for the filters handled by +the DAMON core layer and operations set layer, respectively. ``filters`` +directory can be used for installing filters regardless of their handled +layers. Filters that requested by ``core_filters`` and ``ops_filters`` will be +installed before those of ``filters``. All three directories have same files. + +Use of ``filters`` directory can make expecting evaluation orders of given +filters with the files under directory bit confusing. Users are hence +recommended to use ``core_filters`` and ``ops_filters`` directories. The +``filters`` directory could be deprecated in future. + +In the beginning, the directory has only one file, ``nr_filters``. Writing a number (``N``) to the file creates the number of child directories named ``0`` to ``N-1``. Each directory represents each filter. The filters are evaluated in the numeric order. @@ -410,7 +422,7 @@ Each filter directory contains nine files, namely ``type``, ``matching``, ``allow``, ``memcg_path``, ``addr_start``, ``addr_end``, ``min``, ``max`` and ``target_idx``. To ``type`` file, you can write the type of the filter. Refer to :ref:`the design doc ` for available type -names and their meanings. +names, their meaning and on what layer those are handled. For ``memcg`` type, you can specify the memory cgroup of the interest by writing the path of the memory cgroup from the cgroups mount point to @@ -430,6 +442,7 @@ the ``type`` and ``matching`` should be allowed or not. For example, below restricts a DAMOS action to be applied to only non-anonymous pages of all memory cgroups except ``/having_care_already``.:: + # cd ops_filters/0/ # echo 2 > nr_filters # # disallow anonymous pages echo anon > 0/type