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;