From patchwork Wed Mar 5 22:27:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14003529 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 904BEC28B22 for ; Wed, 5 Mar 2025 22:27:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 01621280006; Wed, 5 Mar 2025 17:27:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E8FCF280001; Wed, 5 Mar 2025 17:27:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D58F2280006; Wed, 5 Mar 2025 17:27:41 -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 B872A280001 for ; Wed, 5 Mar 2025 17:27:41 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 516AC80B93 for ; Wed, 5 Mar 2025 22:27:42 +0000 (UTC) X-FDA: 83188935564.16.E5FF6F9 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf11.hostedemail.com (Postfix) with ESMTP id BD90E40010 for ; Wed, 5 Mar 2025 22:27:40 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="I6/FBMSg"; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf11.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=1741213660; 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=w5TZPjvdaOA1o8TH7efgDZnSp9P4wBJQq7sPZtH+4vc=; b=iXEhu8DKf5lX82rlTeuauau1JS+U9JI8XZVbfehdzL7hIlspth+YgeUzdwvI3fbFa/ekom gXpDwa3mRgg5HUeqnSbpq1YWSWKx0WA2TIdo7puBgRGd2uW6M0aauKsvFLydkdNn57kqK3 1iBth8LiHqfhsLFgjbIS7Lh0/LYn1mo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741213660; a=rsa-sha256; cv=none; b=HcsIDnJD/vAePsNi4hcz6A3Rh9pfMLipdNE6aMGcJYNzBGv0RVhjHinurRI+BOO9jt+HOn 8wiSLm+tq0Nw6iqnEKK9UJSAIeH4P/J7KGXpDcNgiDPBcWZCmwz1VqN/PSXTu3RVkblCbM j4KrYsvLo15zzzBHx+B+ukI4rr7BX7U= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="I6/FBMSg"; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf11.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 344825C63C3; Wed, 5 Mar 2025 22:25:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 85EA9C4CED1; Wed, 5 Mar 2025 22:27:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741213659; bh=OpjcLDxsccLyhNm0FxG5QdoWmIkJ0HjMaFtLsbzpWMo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I6/FBMSgQVrOici0mbqK5Zz2q121hKQ90mpoRt1jvWNL4rdHuUukYMSqZHjwWeIYn ZSu7YU66rHiK91B7IA/lmZWNK9aRZigfjjnSaIDQfAx4Eqyr6Nz/1LVI6nofqL7Wir 01RdrzhjTteerB8sEERse1+cmDZOVqmYZ2zvxKzN56dG8/+hwYLJIwsb8oRkc6L42T 3sNodszdWMb4IW5T/zyltjJW6WU4TUIic5Rt92fyxpA3GLCywpMUlxb+7ZXdbwLdI/ qImf3tpp8hKjm9RyGIooK5FDtpOuMkn+UymvRcINrAwX3yv5OwzkX9JI1gHC3WmiRD xECHKJ83hwFGA== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , 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: Wed, 5 Mar 2025 14:27:26 -0800 Message-Id: <20250305222733.59089-2-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305222733.59089-1-sj@kernel.org> References: <20250305222733.59089-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: BD90E40010 X-Stat-Signature: zuxtz1rcyjyobdscnpe8eycdzr8mw8z3 X-HE-Tag: 1741213660-816129 X-HE-Meta: U2FsdGVkX19I5dg7aa6z1hJmut6RhVVuogt23A8kRno+aKae0ca7RF8PQWnj5E6ka2L42RwBIXvDWCkekCbEIM6c77aLl+zXX05e2JSZTGghVoF1w5iGpMtSsPBsvSEaT+wjHa+fVmuuAHoquFu8/3Rh7MhDtTNymFMsuFWY5vN/L8FuKXnKOvV6UmvOdCLh9zyjIQHIsDo8u6jqmA8/nzVREJO7yTzHruDZjHPFVjaJ+r0kXCNoPvRKdXsXp8gvzYp1oGwujR5PQx7HAHL62MQ13nzMwpTyAzah/91XLQXqmbX5DyhiSY0rrQz/fpadIyg7iUmVKsa/FCwt1ts+i6b8SDlL8RszvsGWobXHTz3ffKLYcdG10dWt7ogJDBC1OlIdoswHBM5e0xPeqRjhO6CV7DYf8tKm4ekhWXEiclST/EqtEZmh1R/nO94p+A08apz22qsK+1CI+4NR0Vu5ITabtUHcb8OXPptWDoWoX7t65GXUtiA/NfiuaASfeE+e1lAcQslMA6dY+wYYjUl9YwnXaPg0dkKHXTg62X/DCe1IjT3Yrlz7J94onBHsMlobey6Wj5tOQkt/Z7EpEu++HGCtc0+wN34Le6hEqq+xPKD4oXdTa/wxg0jnJ990h9A6WLzdbgGV+hE1dAhhpTN3L1ngLjGsl5EvgT4pkkMNIpPFZIKFxzLk8qDwKO7hi7ZGxH2AvRXc2EjgrITh+9l40pkhAQIpMGO39ak429h6odUpDCBx2Tq5bs+f9VSI02wCHQJBIJlXqaN71GZe1+sVdp2Z5nADN0iODuGvfLx3lukCM28+Lk/ETY6CFzc07w71AUHxSwTwCkidPEGIBaj8hczTiFOU0xt61CmffS9KG7UACeLW9JYmi9XrglLiowbt7M6THxiHeOWKVzmbnXxb4EQ3qRigI7lLuqo14dC4NISgbW3D6tMAGTG2K4TCNZpsaXBsL7sycxVPvH7r2kk EFWnxLBE v92dx6dW4haJMA5LjXnuLERzw1cqIaCpwN38bqs/c2ax8SIEtctrorPwQQA0CVIrNGYJYdyO7soS1+qkdUK9V7XFcNMjgrfFeW7QRcehaYHDf0ygTPLXNAuBvuqRGr9Bstnju9v4wkDTcDI+GbcoQjEsBm6QC5liCPiRuuyvhE+Heyay+EMKxmtUWWMS95s4/fSieuy0oH/Sqkjm7NsX3QP4E8BShwOLokdPoQIV20Oq5t1kQ4L/x5C86NPLVwtyKzAZfWAQF5YHs1cqOwMQ7l2Hkfg== 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 for adding sibling directories having files same to those of "filters", and named as "core_filters" and "ops_filters". 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 Wed Mar 5 22:27:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14003530 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 A517FC19F32 for ; Wed, 5 Mar 2025 22:27:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 254D2280007; Wed, 5 Mar 2025 17:27:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 207EA280001; Wed, 5 Mar 2025 17:27:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 07FB0280007; Wed, 5 Mar 2025 17:27:43 -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 E147C280001 for ; Wed, 5 Mar 2025 17:27:42 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7A569C0B77 for ; Wed, 5 Mar 2025 22:27:43 +0000 (UTC) X-FDA: 83188935606.02.EA7EDE3 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf13.hostedemail.com (Postfix) with ESMTP id D95012000C for ; Wed, 5 Mar 2025 22:27:41 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=MBq58oec; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf13.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=1741213662; 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=JAxCuMcvL29D1SOmmNGOr37K5swVLKKjmsz/IwJp9S4=; b=CjEWjy88JRH6cy3IY5995QWy/l9M5f5w0Zk0wbKALeIE+84fyCCXSDXJmHF2y7qnB6Z9fD v01xtlV1snYM+IEC6s9BkgiShcJm1CIdqX4qle44D9zsZCi323LM+Hf0LO8I4/FPCLyxVJ WE1eeHbMDpOFWOleAbQDWGEHL5HffU4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741213662; a=rsa-sha256; cv=none; b=WfMZyzy8XKdk7AgYwfQt28Ot4h9siVm8hvGQ8lbRzb4YuyOXmvNHqI206nlNvJbyTQiDpZ 0ehXZEsRnzU+5uAl+MILy0t1/tpmxNNxOV+L4o4AgbZATJDsivRTY8MP+vitgwdYVp1FLh ECyAlpW1hi9uGAVaWuJhDhLgmW5jx6I= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=MBq58oec; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf13.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 4CFBD5C677A; Wed, 5 Mar 2025 22:25:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C03DCC4CED1; Wed, 5 Mar 2025 22:27:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741213661; bh=AUd6l3/n6b21S89N2joBnG5ZkxmjuNuJETDzA5Bc2qA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MBq58oechD8L4MQkW3fn0Tpw6vXxl4DckF6IuMpfAZ7cRURq4LSqwmGfJ2Qyhyl+j xILQ+rvDl6RTD1+f8ioKV8c6jWQOoW+VKKSFQCCUDpTOy5zTntp8YOL2Ul2FM6Q/af CWalBjWTs6JYvgEetmJxcTcs5mr0fyzFJWMTu7dcVCAWoG42xsD6uS/M1F9I8MQFmn 8fM0m/anAg5J9hdnj1Eu9L6OCHJMfIkXtXUhKlzYl1Dp6wnS14ktdfMXU6P+JQ81v4 OT0jo8U6A22XAubNVLmW4qRSk5ihvC+FEdxwfMo+UTKw0czWbtMkZv0KBNEooRypkv +uwxQJp8YCNtg== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , 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: Wed, 5 Mar 2025 14:27:27 -0800 Message-Id: <20250305222733.59089-3-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305222733.59089-1-sj@kernel.org> References: <20250305222733.59089-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: D95012000C X-Stat-Signature: f3yiarz8sb6etbzntqiwn64z59dkyizm X-HE-Tag: 1741213661-98978 X-HE-Meta: U2FsdGVkX19KlOtMY9WRfK2bBpbrklF08GY2Q/EsYCpkf+EkpwrR90mjWWm8kVHgI90NhaP8x+R+2fyC/i6HwgCu/OsQvPsr+MT/Ey72ioX57/OVH4AAWGeW5qbynqxzXF5PTF2BOLK4scK77ARfYwsfmNhF9sXtJkDShRlMG5YbaNw7h47R3QVsxxbTjcDAPN0bMexasls0ZK3lbVMCIELo3ppzd3cUB46Klm2nuaLOOtCJEwcrCQaGCtf0grNXqq37mdhFo0m/1WfFO9Q85YHjkGqk5rkbG9KD7raFh/83FWntQey2OfYhYaaKYaSlWZZuSyAH9Zp4OslGDeRlFVc0VKiF836x1ZEtWHtPt3kUzvXtFLjJk+Q4VrZaQfnTH70+85GrX1DGoTDP/PnDksQugb5s+RKZHRQj9BKAKO5CfCuDRl0/Aw44PpMZHJdf2552kGc90DPiOOmutdqvA4tCHJUhfxgn8dj8jkXVtWVKDaN0yCc0061WhfIs3vFSBZurFdz+EXaH/YcH7ZYQmIvK8kUleeXGV1DP0JlFnwBkioxwFU8+Cvud3pN/XooPPooQJWPVp9i8LLuovtzvexslZyinBvdrF33WM6pTm6Vfay+Jwnx4KZ11QvVhHSlXmn4jjvQLJOU8kw9tJbwFLA6uMgRLr3l3d9KSL+KfRYZ9FZ+Rdl18Bq8imF1PxM/L00lsrtydsvx2u/ifyLEumgvpHsWvrT0orz4ZG1jOgk6KISfx5PwLibZMIBGfCb+pZomr9uPYebcaLOfZSvZMk02W02r2LEJ/SebxRM0HN6tsfSQ935+JFm9OnCgNZnOZWIkIZ445T5lpFUqBJNcdMFBW1WuLLt64FcDvoraTwCVN7MSrGGEQBbSpsSxlf16ZRupe2gbYzWMCQZ/TuuetP1agmupuUwrbW4Dh0UbgOB64DgZ3s9IxKKEispG2HwhyH3LI/Ad+nUSrk+EceiK CR20HbXa hXK3CQx5dkB+BU6cCK2JQ0n7TySWx6+H1V6cPqaicbe32ptJQyelp+uS8jCweXK5Adg/sQjpgRT3Yt/JOCXpa/gmuz4B6PPl8YPFsjmm+kL+H1p0atzu82zXv9Zmo2WHYCEh7HR2jeGJ4QLLHWH/SQ8A4XofFbWUw1PRM7LKxqRke/l1JBC9XSa4pIZUyMvcP+cUtHI6mwfrxXUSUAltW7cPZhRZRcdJg3NDrOhGoWKcumrzGEGuAj+aSM96YAx47wLbgJCeuu1o+ScOXyPc/0BnhCg== 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 connecting 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 Wed Mar 5 22:27:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14003531 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 54986C28B22 for ; Wed, 5 Mar 2025 22:27:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 58767280009; Wed, 5 Mar 2025 17:27:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4DFF7280001; Wed, 5 Mar 2025 17:27:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 33379280009; Wed, 5 Mar 2025 17:27:44 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 13BE2280001 for ; Wed, 5 Mar 2025 17:27:44 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9CE5580B93 for ; Wed, 5 Mar 2025 22:27:44 +0000 (UTC) X-FDA: 83188935648.22.A05E153 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf01.hostedemail.com (Postfix) with ESMTP id 1860440003 for ; Wed, 5 Mar 2025 22:27:42 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=StLNs9+Q; spf=pass (imf01.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741213663; 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=tbG06JjkcpCRpdPieu4AXkUGoPM3BCo3z1vP3PSt330=; b=u8S3q1biyE5YbLpqEMBpf7XU8oq+AQRk46OOiFWSF03sy0CWMyk3N4EaLO82E/OvtScl/q mT73q3emErQe9ytyVZfAHJ5fnUO6D9dGlWFjjHT5dlsL2ZyeNPxebs+2hxwYwedQtux35C PY6XXO8yznnziG6Y5JNDinB3b4XON9E= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=StLNs9+Q; spf=pass (imf01.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741213663; a=rsa-sha256; cv=none; b=ViZg/5PDF8mU9g7E3mEuFnlwWyIjqZQ3nlOJX7RSWqNTFhkcUVmxq/UaByE76pXbPczm4p GEtqaItEP9GQ8fxFXRAij6rm5S7BFJUd+zGpKsSZa51LQnLYpfrwD5THwCNvLGLe1lbVGU 22Hdwh6iK0iZ24C/vP7nWZXQ2y7gtbo= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id A100BA46552; Wed, 5 Mar 2025 22:22:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DA715C4CED1; Wed, 5 Mar 2025 22:27:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741213662; bh=yhxaKnOdMb0lPXI2cJtKjmbcibbUG7nUMZVQwaF1kHw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=StLNs9+QuCwCvenK6UtEtHVajVFoZHMemB/YxtPBm6pXj8MCgXS66OJkSA24KOgqt 7tiAu4vFhWdJwhB0spu20qZVw1DanxBeyJKMjgcYfPGcY4o1EP28+5UZ/80MBw2wp2 P3jY90eW5xR9UCuC69NpNiQ/nJcohBpu8lYjU+rwyiiY8DdoB96A7Tk6dl4sDk2DJw IuBUd1ld/3ffac8T+OpdtpRKKCLyHEtRadq/NLCb3L1mMIhLH/aiLLyvDzVO2epTuE G7Y1RYNvvgYQEf8+uSoqAc4pYvQVgWzZDDTBaUfMbuT27DdrwDau4/+pZmI/eY+nyx 1vPHQWy0Lejag== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , 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: Wed, 5 Mar 2025 14:27:28 -0800 Message-Id: <20250305222733.59089-4-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305222733.59089-1-sj@kernel.org> References: <20250305222733.59089-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: reenxtr1ug9ek6ecau76gqmpzw9cpf1a X-Rspamd-Queue-Id: 1860440003 X-Rspamd-Server: rspam07 X-HE-Tag: 1741213662-179027 X-HE-Meta: U2FsdGVkX1/vSJokRB/WMrd+Wb/zhrXYt5U6kexb1rm923RTja5K3V/cnyHTHFW5lPG46em3rGDHd8sPQCIwRnddbEWKe0eZW0asVBd41PJmppUALqon47uWjwki/SKYHRQKIW0DTffXZntWxBwoJH9h6o/RXVU2ShXJSzwnd3kq8oSV30my091XhYDM6+8juEpKB0u5QNqysM2alF4VCYzVEFI1Guv1EpT1p/NFhuchmHIIlaSVy0bmfQ1x3cfvWSjuD4pt+GnaOZUf4dhV097OMuuvR4YSesDBDFPlPlP0kTsQd6O3Y2plwV/Vdur2043wmjcNrNbLcoyrD5GbvbxajT1FT0VY0Lqw/oQhlmIgRUyXRUe4xNPJ8i+x5hY1Xn8CRwh71La5REoswEJSkpAj5/jPwHnhmQpeINHYH4h1OvpZjPH57aIevA1tzPfYzZR8vPalHK3mJ00lc3Rmk6zatA9K0pO/J5W7OVfYKscQtFNVEQLPnTZDepQ5y8ROjANVd3UAlS2dBrZQEGS1FhzpY2w02EtasCVMAejeK0fCf+4Ts4nKkZ51bV6RfFCIawMGuLS0plScAxWTiTMnmKezQv2Q2m8E/BdN5ElYeldbG5BzgVFbvH7Ya7ZfVpsFUXS/juX3yytgerBEVsWpI0PVFNVN61W3vyKzSm6Lvkkk6NC6kDioQLIbYpScAtXbs9g8AkiL8Meiy5yzO4a9N6KVIIq5Tuywk/pMuIx/74/DEwVM4qr5RKUOd7vuZaxXN3euYN+tB4PwcAhTOxCGGCO3xrsBQ6DQtUWsxFyBnUenazZNEY4jfTTeLPalxkM581bzw8sPXz4oinu+abyy6C90TVqbZqO10MfYiYb+cpO902nWjmCKbErFRKddUk63fCOpZy06QrtevFgUGpJSACH1zS0nkr8HzjXTdax+vEm/c840zRCyDVxf9vV/xVkymi36vcOw/vh8dQLM1sx ju4OypD1 gqkBe8X2TOm5oUsoIoH23p+BNZbXaHFbeemzqSBO4E1CGfJ5k4OU3cmbZBDv32EqBtL9arKz4Idz03X99ohszh0yIRVfhEg9KOw1l88P8Qq9mwdXq/SwW9icshxJ43/nXQns/G9uRZ6/ZEd7vPHWU/BRxCpYtRKJITG5zJnb0pe7N9GD/oeZGJj3pCFgHR+uo/IvvjglS69jEtReAE59QxmpuIP2IzJR2HmWJBW/XRXN9tSr8RoJN9az1NFrnUYR32MyASGbnuUK8RrOqvFixlXmzfA== 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 for 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 Wed Mar 5 22:27:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14003532 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 3CBA3C19F32 for ; Wed, 5 Mar 2025 22:27:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6FCE928000A; Wed, 5 Mar 2025 17:27:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6AD67280001; Wed, 5 Mar 2025 17:27:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5274A28000A; Wed, 5 Mar 2025 17:27:45 -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 1E2EC280001 for ; Wed, 5 Mar 2025 17:27:45 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 94C77140B86 for ; Wed, 5 Mar 2025 22:27:45 +0000 (UTC) X-FDA: 83188935690.19.4E62A0C Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf30.hostedemail.com (Postfix) with ESMTP id 0E27C8000C for ; Wed, 5 Mar 2025 22:27:43 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=PaY2kj8A; spf=pass (imf30.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741213664; 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=kG/jU0+Dzelv+9G4tueIeS81yUpieLiJZhlQl63G314=; b=YL+K3ATwm/jrPQuGetwZP66U5fKvFt3+kAubAqb39pvVpyRaZUwCHbDBJXBOdQEqkj3b3f UWZNfntl8zow3rXZWqK0YD9hNctIG3k3jKBa3PaVqGq6CU5V+wp28ZYRafBb0g6IKvm3BF BbDDPKKB3EqbPRgL4xIlJ+A5+yj2+4Y= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741213664; a=rsa-sha256; cv=none; b=6lMekAnLBWYopITuSRW0k6x8vT1qnyS4m2qt72HKNrh0Vk97BdmDQ1O/nUgm5sBS3g/bV5 HLAZw8KwXoKSYpEiX2dXGDlKAJligWJEOTgQAjrGa3d0APDNleP8yTlgc/Yd56ehqtU3qv HF4sjUDQcgd+E+htC8TrPN33e3K7XD0= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=PaY2kj8A; spf=pass (imf30.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id BB668A41D99; Wed, 5 Mar 2025 22:22:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 029F5C4CED1; Wed, 5 Mar 2025 22:27:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741213663; bh=eJ79aIy+KAG+2fVOvrVZnQksHxdlrGRDAyQqbJ9uXyQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PaY2kj8AmWawguEdmCNUQobuUZHVxSQUPY3b5C4KFMLUv4x4MgClffxV2X2SoEDmo 2QqZPI7a1ppdOMf9pS+qOLU1TMtgeEQJsM4WZ6N3HhzfLqqTJ8FdIA0B9CAiN1V/7E KNsqIPUen/oTYyX9liEVgJgtF6VVcFjV9WrWRXw9lxO8Qe5Ke5DPx3kYmPwgeB1R01 psCz6Phx6uBOfw8mwIsAo71+l7gOhjw6+Kf/Es1y0xUj8EAVNqWH8dIWWzasDICDBv Cg2QmH7h/JLcjLYCzUNoOwpoO78b3VhFMQlld6X+6sh13kChAf11m85kcfwc+480UU Qa0iKKbwEl5Cg== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , 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: Wed, 5 Mar 2025 14:27:29 -0800 Message-Id: <20250305222733.59089-5-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305222733.59089-1-sj@kernel.org> References: <20250305222733.59089-1-sj@kernel.org> MIME-Version: 1.0 X-Stat-Signature: p7hdgdganzsmhrxkgdjibcfcen335qcp X-Rspamd-Queue-Id: 0E27C8000C X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1741213663-210422 X-HE-Meta: U2FsdGVkX1+QMBQfEn/2mjIGgy3aiMxhfoIbNNGAoj3//HtpuZBCjuhLv+IPgVPxPbnYCdIdc4gH6kmE5JQU+mZ/TqK65oTnKaQyeg4x0Ri60dbro7pXW3wvDRsA6ouo/C3N6zOUbwB/PqOym8U8lP1SUPt2kCJ8V6dcBmiNW0L3IB0odo5Tx/ubjr7fwELgWhgM7rHsUd6at6hknshbOXjJzcXGklbHPNEXtY9KI8HNqIZoWpvpPFXTkx05oVucyzszYHpxtnYlb+A4lAVDF6OoCA+P62QH7otMRvesTEnsK2qQh5hwezbbx1dhe58w3ZuGYcOY600AUgVoHD6Khhgn2y51JJS3hn2737CYYKetNX6IFg2ODgwK9Wb4VVPL5E0fRsCSUcvc8++cvxyjuj7gEEKCe7xVWFm8AihKgzHZ1MTmZSTjkm4XrIH0yhQdnpRNNlKkV0zOU4BLkvI2qPSCwrYMs4fnsRo2pkXXkNttzEg+A8mFj73ESS0y2GuNw40wY5A0N7K+nWFKSSyiA84FouuHTbHQvr5J7aM4SG7CR+qxZEAeVw3EaitJDM7MRlfq/YBK1Q/sQWaszuMPwDQ1cLZbRuh4pJasbFAD6X6LlJSZGw2wQiSmuj6Pn3d2UskS/T8SyL+3Q2FfqZH0y8SEGch3b3aLxV1igG2/RUEE2xTHpO+xlWRRR/g+yfgh44tVfYhZF2rj2jvUYf4qluIXTcCh4gGf9gvyFS8mBy+SUK2he+iBWQzom2XyBa7WEqO9A9AywjDS3358/wDrChCkHR58cTXPnB4KF7pPHCYJH3n0QTPfMF2Uv47TwA2Qt0ljFhRx3797rcl/DIcUkcm5sASDTLqSX01ZPj4x3aMTEojnN2rAVHS5byVyYcp+gOasiOHYrUn4f1MqL+1ESBxoo6Ge+9j7sTUfDjs5EJH2pj8nMcRDdWIqj+ed7IbIILRIp6te6Lnoecc27RB 6KjVtm/U 9excb6+ElFNsO7JV4B7F7ifP28CI3LIGUt6Scj7t+bAzEeHnJ/q0SLv5UagLyqBa0nsKHCLGwgSWfGfb/vITm9mKxCxLIS1zA2HfVGiT/IpH3UXQPqVrrrPKJVEwq3m3odow+t3cbL5Gt0aZEgA5thhfoXrJmeks1NdaC2Eo26F5WzcnzWLsDw1ns5Tn7VObWqAcg9B/XTzJ4HXdweyzmsi7K8m9ov4tzFxhnYzvfzEuO4REhRnh98RVEHMtORb0ilf59ErrTr3+xWQHoKauTLzfHOA== 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 52559475dbe7..eed008b64a23 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -894,6 +894,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 194550e033b1..d4fc2c907cfc 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 Wed Mar 5 22:27:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14003533 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 152B2C19F32 for ; Wed, 5 Mar 2025 22:27:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AC2EF28000B; Wed, 5 Mar 2025 17:27:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9F9CB280001; Wed, 5 Mar 2025 17:27:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89EE928000B; Wed, 5 Mar 2025 17:27:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 59EEA280001 for ; Wed, 5 Mar 2025 17:27:46 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id F1FEAC0B7E for ; Wed, 5 Mar 2025 22:27:46 +0000 (UTC) X-FDA: 83188935732.23.0C9CED3 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf18.hostedemail.com (Postfix) with ESMTP id 4BB0B1C000C for ; Wed, 5 Mar 2025 22:27:45 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nPCf65V6; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741213665; a=rsa-sha256; cv=none; b=Ax7n4ovfGUdWSesKSYBOdYXCcbu8NmPQMuNki8T4rTeWzFg2WmEYteskdY5SPB+HolOFmY e5Gani7CVAZ9eTeP5JCabJqRjuqvxuy4Yd3f8/SPWWnmBGR62k7GyyF0qOUPoSD+mFoerD HXEizQBBJKIAzYjra2LfOwx2SWMfUmM= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nPCf65V6; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741213665; 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=ZyUifpdZ3AB1OnDMPC8HBHJTPaBkonQr4n/qRblCwZs=; b=zRkDsH7/zAPPRI+3LrPd4rQQLifJkm6oJsBiWE7rwrdFXh9NHsoeYJuWtOAQF9RApxiBBU K2GdTqgaJSqeSjLLfeRagiqm1bTTaXAM41QGXtONBL7HF5bd3/nc7GHsE7s1nEdx2yiTQ5 JYUkoAXg00LxLdrvr64QoLkFsCg5hTY= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id E3253A4655A; Wed, 5 Mar 2025 22:22:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A9FEC4CEE9; Wed, 5 Mar 2025 22:27:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741213664; bh=omzDcLQxOt4b1eAtHmmakixx0La83wEbeQMY0qApQrU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nPCf65V6a35HkE8QBy7nmsiyOHOU4SuTigF0B8sRNGJ4wLWSSKyjjfhQ/STTBPP0A gXEwAFSr+JuwMNcFuEzucZLQipdOf4Lcuhw5EtFtOAjwHCDJYMQv1iN/38o484Kvrr U9e+rdqtUJ02+Qq1s4OSqNENlq++fM6niYZrcCNij7yecPp0P3ZLAmAzkBODE1zhLy 5+QQNfYKWLEmji0XggkpOLCnF2aGMu4jjDknAeenNHsfXpqD+0uukb7d3CIwEZ2s3M AV8WGF0r2XHOvDfw5U9NSQZI7EAR5ojT6hwLpqi6fNdQlf8oykeH+VPXxCa7uD6ev9 zOZ0T9WB7DCgw== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , 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: record filters of which layer should be added to the given filters directory Date: Wed, 5 Mar 2025 14:27:30 -0800 Message-Id: <20250305222733.59089-6-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305222733.59089-1-sj@kernel.org> References: <20250305222733.59089-1-sj@kernel.org> MIME-Version: 1.0 X-Rspamd-Queue-Id: 4BB0B1C000C X-Stat-Signature: 8qjp7r7tcunx9ne7iirqx8ht55b8tqf4 X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1741213665-425400 X-HE-Meta: U2FsdGVkX1+OVHQpjv2gSN97puDzL6uOqAKHQFZrAuW2OBN18KZnuKCh2dzqIG1Tn3KFNo1lqo+4J3JcCPTRS2zPeInpMHogTjbIskkKv4BzZuFM/aumkgd8IBmp3hK/RKmw3GTnVrUvc54+rglwG2CaUhqTpLl4R51lj/A9eUCMBFdLvcCTTdwJo4TejK/Jpkf12QidfInAcKaJ+NZhS/c/HKgcHRLQ4rwWnd7MHkD4KFfuU+EO+5fWaMHRpKRjlg+m1EZYe1uueUjDUdujpr+3XTougYdXTUezXopldJD0/8av4d6AVVBX58IhvBxesknBQPLGIuwb2ntbhHMTvndZz7Uje5kIpO5isCXaMXIZR0vivT7R+D+aLpFM+Xq4S+Byn5KQJ1nXbYVLI+09FESnGJgKkRppK6y1csJU8XmFlKj7t61buaHzgf6tf0bS8rn3+rOKTOirzza/IxaZ/aSeWz/TJCoCOzMXusfsd7RBiHgX5h1LVkMlPnYcCsZXs/RRlaiaayKkqvmsUC+FJvDco/vSq5Lfm9P4nv8mW60UFV1RFfZ6I2lderQefEutXldCB1PM9MvsDYBe1z2+2WovrtmiZWiK7EX5UZcI+kPhyGUQOLD7KrXjZyiHhSUzTDW2L/rdrfuf4d6BlFbM2nLopMRui9iVbsB5I534GcnkpPkdAD7o9t9mFQNY0+4WTA9pHu/zsj2lGWJMpgm4QEPVAG3fYHHB/atCFJdow7pJkRRLulx6dbRtjhXTZloDeOgIdN91l+n0Thwuse3j8j6Lsa/WKMIgjUZbMZUf4aJvE80RUpT456Hl1p9J9ibEdMT6C01Ccm9PtT8vNNO3es1Rmo5ZoNmVlihYCi2PLsrwls5MAKxZuLs4usXF/Hf53vZlNjpkP6RmU2B78jpQBRo9UXqT7SzJrvZBWOEpAlHp7+BIierG9KsnhfazyYD9JuGh9u0FVYYctcrVlAu 1jd8NUhC UopRT4HCqhT/UT4LvJJsOdK9GhgN7sv5sv4lQDIcTHdHS1ohQWMoP98Id1pyAAfr1ihrFxmx/XNo+XGXGKh9I2Mxw/gpilXuXmTjDKktMSblOPyqZ4nj6PuC9TyASoEJ68VFCZPJfaLxBGzPgSt2igyRwkbqZfsQnPuG8U5JOSswqna2DwT3p58zs+QeisGyqbmYrqt/08YwK6gZIT2mCRxqZMmOv55LGUhX/NxLtEV7DrI/BrvPhiJEXFSIDdi5ccOzc8x5fA4oCT55kam4WQL2wZ6E/L4Rcb6y0 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. As a first step for preventing such wrong installments, add information about filters that handled by what layer should the installed to the given filters directory in the 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 Wed Mar 5 22:27:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14003534 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 D0DB4C19F32 for ; Wed, 5 Mar 2025 22:27:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E9FB128000C; Wed, 5 Mar 2025 17:27:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DD942280001; Wed, 5 Mar 2025 17:27:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C549C28000C; Wed, 5 Mar 2025 17:27:49 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A36D5280001 for ; Wed, 5 Mar 2025 17:27:49 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 4C307160BCD for ; Wed, 5 Mar 2025 22:27:50 +0000 (UTC) X-FDA: 83188935900.08.AFBF2E0 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf25.hostedemail.com (Postfix) with ESMTP id BD56BA0014 for ; Wed, 5 Mar 2025 22:27:48 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=G1sZRBPm; spf=pass (imf25.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741213668; 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=t6mk4ahNtzSY9p3SWR5u8G+9HTNf7Z8DG6U0OZxhFuqzqPZo9CAO3NBk7geq5tw7nz0JgI eTHy6/E5vWo5VVush98fr/kx9dy7BL6RYn1Kmqv+wG5/LCDpS4lyByiXxCR4wM/76K2H/p d7MXoaaZcfpjrEtWXHxju1VI2knlifA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741213668; a=rsa-sha256; cv=none; b=8jS92GIhtKDqX+GI4FojrcTIllG5U0HlkPdO8FURYLgR2VW0GhBL4YBvtwGP8N10xpFrLH ZYqvaCQCR+vYeHCB2r/ueEsFq4xjc74IkUu3FJ7zCJMruY8xxdD+tSlyT3PcjvnnJSWs8l aJEdtwVmlkEA8KPUXt+YGM+yVqTXTfQ= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=G1sZRBPm; spf=pass (imf25.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 6DDF1A46561; Wed, 5 Mar 2025 22:22:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E4D8C4CEE8; Wed, 5 Mar 2025 22:27:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741213667; bh=LQ57T8uZEfXJqRz+pJDK96lN4rwQ3E6I/AuuNUmLtpE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G1sZRBPmlSradLgfTY8Wkkc3WmAPdnOChvdMQ/QNf7Qj1Fi8Igg1jebiMMri7A425 +4DHZ327YpDb+aBY8hx3FRdyRVP8cgAXH5ecp3qpHk1nn76aMUr8BI2v/HQnng0YOL aEMZsi1xHCpa7ArUaAz7zUtwJ5cLTx6+xQRq9/Y9IBzhZ9OYQrtwM9jzagWCSJBYZo RKoPRPZRFRnH2WHDIXexP2uMoAySqiGvN6XKkV5XF4EIzjbHNLQfU/wUswZ1ftmIRM PLic60AraWQWa9PnEUUf3vUDk1bC5N+HFYypf8ymHa15hcxDvBq4V8Dk7wUJsUlmJN QGUpA9eKKMlzA== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , 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 when for attempts to install filters on wrong sysfs directory Date: Wed, 5 Mar 2025 14:27:31 -0800 Message-Id: <20250305222733.59089-7-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305222733.59089-1-sj@kernel.org> References: <20250305222733.59089-1-sj@kernel.org> MIME-Version: 1.0 X-Rspamd-Server: rspam02 X-Stat-Signature: p8z6cnutww43i74bam34dg44dizuw85m X-Rspamd-Queue-Id: BD56BA0014 X-Rspam-User: X-HE-Tag: 1741213668-752032 X-HE-Meta: U2FsdGVkX18Ki68NLSdjnHYlJjDN66so8oQil+i9avtVwE2EoV6RZAjh3OhiZh7TOd6xrC1diZ6RRz0mi7zY3C+WsFMWLLkKXRWwHdvdkDt+E2Iyc3OoT0i+PKPAOrs8z6ZF7z+YVniCY/AvMHiquJ/m9Tj5aXeck2WteIVoHGyNiu9JsCvyWehvidbppYxWI+IzMghqyiqrmz6T0ZiJhkT23O+9ixqtw3bzPijJU2BM+hBnsdj2qUrMkbV/Z/owfEGUvJ/s1mvLULLVVWu1KunqCBlNjvyA3yP5sNPR3EpYtEcAcwv9VcxnmcRF5iB7cpXtYJOCAXZ/OmdL72rM5En8VnBD8uKC7svV+sNosPgNcFXm0afqesa0o/39JiCFRIvNBc4bd4XwnlkqdfqrH2PXreNgT1O3dT0aMIvzH7TjESV9dKT20v8N2lgwCyJZz8Pnalzvak38z9aHACoH32CxtWZvKUyaLduVYSmxJ/0DZg+ZopCVwoaFl/zv/Xbbo0vm2dwOfQmWQPXivER/E0Oc7qznMXuYxY/MckdIFpnyWcm2U/Fe7FPnaNeacoQ25tlr6w4EzBR0pKLmO8vuKv/QxE9Z3ZEHu7OhIlkOjpbpaBzEdXTY3bLxWLcYrFk64s6iC0At/Gpd9uqNSYd32NBXcYxAd8G8iaivN4oIcF+mZF1u5MhENSrEQpTzJBofxHaLZkt1rAInEnxYuY5LVIlDrr5j1B6zyEwbkRj7J5aZF5qMQidANbD+xbLScjZWmJw3NTWR/xifjJeJuNfamluSA1b/ykep43M6lsS7DjyGChNZZn3Zo0Bnq8kbiBiOiciSHOlSypRi6eNlPflPwiuzSI0rmOca3EdZ5t4mZtnfJWen/ElAk2fq8CMw5VYyxmRkyFsfJK1KB35GPApf+/ALdm/SBpB+eXjR4rOSGxJptc0a4OSBp54EdAIRe51Sr2DmIVWlpOV/JRXo5wC oZUJOQV9 c8AXIrBIuEm+xFrq7mLilLx7VkYbTX6v3x45wUC3H/WuDPr7p+gMOsid0PWzZ8Sk8vRaYoRwfHsx7DoAdfXU3MPEUcv0CIkMLoT5y6xS/y5umpvOb8BG4yq80qijg7j6yF8Tjt+iyndP8Gt/nEac6vJu3kNPCVeQc3pqRvt8AWHscOhpChlfERN9F3msArOEuKmkHv7DatgCMXY7LRFbC7A9bk+/NnF1/U9Wo6KZD9HaZ/nA3OzbxCKixh8L8ljJql7ML0fEiA3B6hxw= 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 Wed Mar 5 22:27:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14003535 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 31512C28B22 for ; Wed, 5 Mar 2025 22:27:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3B97528000D; Wed, 5 Mar 2025 17:27:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 36DD6280001; Wed, 5 Mar 2025 17:27:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1488428000D; Wed, 5 Mar 2025 17:27:51 -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 E608E280001 for ; Wed, 5 Mar 2025 17:27:50 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 71A65A8FE1 for ; Wed, 5 Mar 2025 22:27:51 +0000 (UTC) X-FDA: 83188935942.09.4943325 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf24.hostedemail.com (Postfix) with ESMTP id B13A7180009 for ; Wed, 5 Mar 2025 22:27:49 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=COhYSUvA; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741213669; a=rsa-sha256; cv=none; b=F/bSJd6s+ZZzOHa1QD4fGJSk+tbXQldfwVUZfC0W/xLP1Vdz6Tc1wPP8HmJyWTEtXbaV4F 5//WW4SxHm1g6m0dBn9BwKyG4a43y+e/qjUEndC7ADWHA5tcKwFDZ6IlQUFbHvzyBK9mfY 0tvZ8nFnqeguQnGfjKAI+Khi0rCzVW4= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=COhYSUvA; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741213669; 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=7eQDU7dd9tcVBd3pqCeDTQEcJl/HATpvB5EIJ13twpM=; b=gP7OQ3iP12DpezLY46JNwRncL0PcXZP0Ux4eZNRX7JCFZ9QbkK+sklIxJZ/xihV/Ncc8si /7f6WhFVwmdW1MsKXX3RWvEOLGpClfYhzbTvIWvHbrpHuBoi8L6+S8HvfJpQlrsMwYsuv8 qZ+Jq2hPznPnvw8eU932VnSmso4xM6g= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 55DCFA4655A; Wed, 5 Mar 2025 22:22:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B88FDC4CED1; Wed, 5 Mar 2025 22:27:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741213668; bh=OAEdxxcc77GPmmDMbh1z2HLH683wgymD1nDX7vY4PmA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=COhYSUvAzM/kIrKA3AIr4Du9Hvlu5Te9LUGuEq19YnsUYn+PHUT0LxZhrJmHssQsI et8zSnnECgIb7CdD5fvIWqT3R5MCm/24gFhlfqXJ6+O0McSyoQ/zQ+JX/7+K5gdDXc QwQhf5D79gWHRKx5mVtzCCihKUd7L9O6MI8G9Ui6MTwscIV8FyIOhPOD8ZuUW0Z3sm +cnwGnXSdSxrpWRAM7UoDPJiIRxNWMQW7CgSW1pa51z/5kKecxY2D13ySCj4WWYzgv T7raOiUiRed2NbTygrroHjrA3EX035XF/A6iJyrxlBZX5Q9wZmmyAqHKaRLVRkjaBa 06oAFx4nWGOww== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , 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: Wed, 5 Mar 2025 14:27:32 -0800 Message-Id: <20250305222733.59089-8-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305222733.59089-1-sj@kernel.org> References: <20250305222733.59089-1-sj@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: B13A7180009 X-Stat-Signature: qhzed3mjx8ofogunoj7it57oztc43tba X-HE-Tag: 1741213669-564372 X-HE-Meta: U2FsdGVkX1/ZOdmMZ5doS2shcR+XoMKDL86UwFcB5bW/puT+gRqygfcSrYvGbAeDK2yZi0ZlmxSu9o4+0hPFTJ7kzdT3UiJLxRudKnDHYbYEO6lsXw9erR0vCDyTfrs9TkROzEbjx3gTwUUphdHCVvrFs103YHxU2CamwbDE4iGcyv5gTMdNlViT6c4QwL1d9MzH8e31dv5KHFDM37qSBssbbXgj9Rj6NXyQgUwvmC42ZdK6ZK15GgXodB5ARmxlgs+gS6dTKjA0RyozCNubp5PsvuBlmU9gu6Tc233495W/9N81VguiH7tvcaiYAJyLMqyigqQocfrPF0aLrZOdH1DxFzORM5nvYh+bkbo8CHZu26WoFAGUkSUd2bg1xJI4beWZcQx7SpDPfT4b4UgPnbn/iqJFaptvJ0ISJQseH0Ozem2t+cGtiP68JE5ylU6T+FfdFWJU2VNIkIRRN2Dr5Cm2hdqg2gUt0ufJWdo3PYnM54pNV3RtnkTEdqgRzQU5PCU2oVQom7Wg+bQ38G6XMOXk1AkqmYn7goz7f7uL8o+ppv7FQ5S8h124nztkosD+kuPLd8Rbx8cjYbYOgCxdiXHF4MNYTXd5mLpU6hA8lcgez5jc9mGS1OufezWt54paL7MlbibDbkK2PguHOuutG5O6t+6nv7HPPovlzhrJwMNKTDgmAAQyAkGK5eJPtY3YiFbz/NrkbpyRpZZlRLd+Q8RjrLb0HPBLJogzAdTSzAEdIhliKXDqQkFFlAxvYjQ1efyMilzV1V5vvbwGFJo+nwTXBm6iF2le4dDfouE5AAHXqS3H0/iqN+1AImc5PFNSye2Lj5pPr+MU0BvPWuCL+aCQSRKSxoFSqxBBF6AyzmHDAPBBWvjRzNjPnOhx/FJaDKTK/+6OtwqzhIRg6dksYExmQUcgIvUyqLx0mMBvLNcVu+4GFhnIlpOcaJVRCyEbBTSrd7fK9wP5hMNON+p iqu6wywt B93dIsukhXwm/9JbmgzUu37845ZJS0LXKl8RR8mApbXbvnwXwnFFRQGALBNMp3ml9GZIe4G21MbTmV5XBdEIZOxN7vanOxRgsYCKaPKgFMwXreDD7DV1K4MWQRianRU+UT1VFugyBSpJXBfW3S17UMFmX0a0B9OMQotIRjHk8GnhZq4e+OzV3oRG4fUawMehzl0y0oqZ6bTyY+ATBEeQy8Xh2vqLyChE7n9TGYa/tfVhfSfp4OP5206IOc7d/MKLrF6v0DcVRUfDek9Q1P+imHVvzprj7vwwjQ9EUl6ykDaj/Ci1GZHVsAQWp2A== 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 76da77d7f7b6..293197f180ad 100644 --- a/Documentation/ABI/testing/sysfs-kernel-mm-damon +++ b/Documentation/ABI/testing/sysfs-kernel-mm-damon @@ -409,6 +409,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 Wed Mar 5 22:27:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 14003536 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 ADC23C282EC for ; Wed, 5 Mar 2025 22:28:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6228E28000E; Wed, 5 Mar 2025 17:27:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 585BE280001; Wed, 5 Mar 2025 17:27:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 38AF428000E; Wed, 5 Mar 2025 17:27:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 17DED280001 for ; Wed, 5 Mar 2025 17:27:52 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id AA62F120BAC for ; Wed, 5 Mar 2025 22:27:52 +0000 (UTC) X-FDA: 83188935984.16.F947E00 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf19.hostedemail.com (Postfix) with ESMTP id E65761A0009 for ; Wed, 5 Mar 2025 22:27:50 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="A/8GAGHV"; spf=pass (imf19.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741213670; 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=fxXx6+XRjzwH46Hzb7o8dYkpqRwyMxyP+CfrGt+0z8s=; b=dnWDsmzxF41P2vopw9plsY14fFIvosC679+6s03S0Q1FRsjFEAeg8qY45OhEXaaGVDCM4t /gCq+M3DOwpX4Ix75sdsDie0C8KtFnTodJDIzzc+iD23HDsKAS7qSHgWGIfx6cRcQ69OXs Hx28M7PGj7VvdPPTyIPXjQMUqdA4NQ0= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="A/8GAGHV"; spf=pass (imf19.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1741213671; a=rsa-sha256; cv=none; b=OkckLtmm3Q2JtxcJqT6+KbgPYogiYKH+wC9hxlqSXDkFdFRF6XNHuuLcWJjVVc/Q8hqAIe PzlWBdqlyiJ8hnxM9akSxKRAr1y9WW584C4r3DRN7O8irzGzGAfwcNdIKrodzrud7ctYIr zAoHUg90We0dSp6a5TE2W67My4n/QZU= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 9FCEFA46563; Wed, 5 Mar 2025 22:22:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DAAA9C4AF09; Wed, 5 Mar 2025 22:27:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741213670; bh=47X+eEoNM4cXPe501kkxrph0V2B2kHrGH6GZrrO40z0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A/8GAGHVWwEyJKU9fX+3btSUYqcbCJkD5n70OIIlgDwm2SUWpPrPDbgxWw2cz96Es +WQAAgzNt4rpfKnvi2yeWDbQQc4vdZwg4Lr+Vuyi2vdRaSeakhTMsAIsJVw4iGjauD sRwiK15hqLuulWufZxCON720EA5i0DGS51il9e1f7VKcKWK5nYGkjos/8WRuZLonUg l2berudzd46p8iz7wleIwOxOdVYSNf2dVbJlSkUSs87VPX9Jj1bHydurGROmUaA5VU LF8KlS867WeivAEb9gS1mQbal5hzEOwS4i0X9B2bSr2ukZnVtnljz3Wh+iPGoTT9V0 unPes/owhWHpg== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , 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: Wed, 5 Mar 2025 14:27:33 -0800 Message-Id: <20250305222733.59089-9-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250305222733.59089-1-sj@kernel.org> References: <20250305222733.59089-1-sj@kernel.org> MIME-Version: 1.0 X-Stat-Signature: 5wdpimd954diw9npneenya7m3ts4ec49 X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: E65761A0009 X-Rspam-User: X-HE-Tag: 1741213670-736062 X-HE-Meta: U2FsdGVkX1/lpoTVPpvD0tiTOP/x7B1oEoyVFUNpLGebX9hoa/LF+Vod/wLvjh7TGkNTsRljbskAaJxqjNyuHnRtatw880/6hwFv49y6Cv2oDXMq0yQfrIr2aTKQe95i/bKTySN+VSLmfAVtet7zrIslXaXxbwB5SfmEfIXLQ9rNKoGi+8WyMLZ32KeqtSLgXj1DEC2fmoP7afpCHFvtZsxpVLMSGq+Zp3h604tSkZbUErEHUXj8joNdBzQIrDknyjSbDTHMnm8Ydv6daQy3b84gzPV08eprV1u2BLvgf4erfwAwEDKemPszSTxMLcrWxgXs10YWU3wg2IqPbdI7y0kO2f2Fdf6EvbzZElLPYTALlQElMji+WLZAriE9ErliRf+6Nk8itD7R31rqnLZ0WzpcABFSDfcEf97BSBjnmigLk9PScDeoax1Y9SnCi2wVnJylP8umvhvtlrsg+6TG6EQetBCl2fUfAOkOw3rY9+EAedTsbYVak/CzJbRjdU67CkG9XbXy6jGbGIVulPkScSroJn87AHz7sfvKLM1K1ROcVoEuj5EwsB83ug79FnU/dnyCH9TxcXhJUjFBA2wfCdL2qgXtSibiChX83zPRQtIYdCgZm9sO3BMh4NrX7MwRDTxufDf7e36yKlVUrvoE1NudLykkafAIWkxHnX0j6VGNwaqEyDKxGrDNPFLU/4VEJtxIhRdUn5N/yZJw1wD7zdUO1fg8GcJflg/KSM0+fMmm/Xjz3Zfuw2InNFvc5yxfzFkS1Lvvb60cweeiHCGFiBOKiiba5+75YPOoKrIPUKaa9iBHtAUO7DAGJEBd0G/MGe2jxcxqclp/EBrnviuaPUcvB7HNXxNlwib/wbXrJdFCp108FHOwbsMa/YOcjZ03BpBaZv5elfaTJiAI+LnpwbATFFwt4w9LtegAa9RoRGD3qx/npuDoJgCUwZdK3ma7U3Y9pTkFA+rFBny5gVB 3tBdMdlU aqFNk2FoBaecZ9dMgiuAutc94pbbtLyTC3Bf51lZP7KwsmXgtPhWjaP2iKhjyPCaSf3+kIf23dB6nznwxLxMzJkHASeE1m6dSdz8aE4KmjctoD40wOC6BfbJkRxG7cVF3w5M5A1/sFq/jITt6eOXqKASQjFuTWigTaS8KTVnZQY7XNrgG2U7hLnIpzdTPZBdlZVIOnV6GEaQxzdrxYyZQN1S+xUJwWNkR+fJStG9HRORG2RJqLm8EcFtLSKtEKmpkLq30zdgLhYhF/bs7bJ4FXg/9qfkBkRlgtVPJYag8BobDjlbsr0l6CJ1gyA== 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 de549dd18107..ced2013db3df 100644 --- a/Documentation/admin-guide/mm/damon/usage.rst +++ b/Documentation/admin-guide/mm/damon/usage.rst @@ -83,7 +83,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 @@ -307,9 +307,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 @@ -420,13 +421,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. @@ -435,7 +447,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 @@ -455,6 +467,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