From nobody Fri Sep 25 09:19:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 736B136C588; Sun, 13 Sep 2026 17:17:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319836; cv=none; b=IEsYdiAf9HFUjhcYe+xApVBZ2wsDz0WXI1qnCJYGRuSfX568Kp3YeL6Dx/njmQJXQMQCL+jl72rNZFD3MFliXySvfUxht1V9fHPWrjBNYC20SMGwd1kMFM0+9iTLLXa+hsdrNLlzVGLZwQUjrURWtDdTEGXxkVanM2Y+FbdsMh8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319836; c=relaxed/simple; bh=gZK1bNR/6VsrE2g3Gf0chVwSQZHcPPaYBk/SDLvircU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ul+S7uskQcw/00CXwfTzdGjyKZu1tsnzXZ2Z9JOPuvXaLWWTMPfm5pYkbAus5fIwR8LSeZcxPNjpz2SeUWc6sv0A25ojgcpszoeQrZ3LTBWIPhXrGv+w57B3Ap+Cqw+kIP6PgR+Sje+Vx4KIrX5+rph6bo64aRX4yj8QF6GbKvM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j1k7zoJA; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j1k7zoJA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CE5881F00898; Sun, 13 Sep 2026 17:17:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789319835; bh=umQcJFGrr068QYat6Lud6jcAzEmAFL/l4IbhvroBRbM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=j1k7zoJAgMukJ87qFcCabtTBQywMrBVQHbaRWC/DyUpvXwM47ftkD1bexp32XZFF7 b/8M3iKWwESa2g4k/bLHORL1gcqtYrbrIuL0R3jcq5K8meV/q3ARaDyHya0v70JCi0 huUzxAOePyQ3EDjdN9OkxU2Zp1uiIWShkEwoyu09GUnDWnhLcTdtzLl3mGDaDIhC6J pprqvoHR9GKtmX5r36JoYzQY8h9pDU1befab3UYj9t8gFTaRHk/FLZoUdIeThDSM65 4RLXgTsEbCZiIaqbWZdkwHSWW/qUSdwHa953t14G+u7XY35F0Iqm7WlghQavn3TZfu BW3yxMAaVyREQ== From: SJ Park To: Cc: SJ Park , stable@vger.kernel.org, Andrew Morton , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 1/8] mm/damon/sysfs-schemes: read sysfs_filter->addr_range only once Date: Sun, 13 Sep 2026 10:16:58 -0700 Message-ID: <20260913171706.103052-2-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260913171706.103052-1-sj@kernel.org> References: <20260913171706.103052-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" DAMON sysfs interface reads the user-provided address range arguments for addr type DAMOS filter twice. Once for validation, and once again for assignments to the variable that will be passed to the core layer. If the user updates the argument in parallel, an invalid address range could be passed to the core layer. Avoid it by doing the assignments first, and then validating the assigned variables before passing those to the core layer. User impact of the bug should be trivial. From the core layer's perspective, the invalid address range is not really invalid. It just works as having a weird address range. No critical issues such as a crash or a leak could happen. And sane users ain't do such parallel arguments update anyway. If they do, such racy behavior is arguably somewhat expected and deserved. That said, there is no reason to keep such races. Fixes: 2f1abcfccd86 ("mm/damon/sysfs-schemes: support address range type DA= MOS filter") Cc: # 6.6.x Signed-off-by: SJ Park --- mm/damon/sysfs-schemes.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index 3de4d804e049f..3c1c1cb387fec 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -2831,12 +2831,12 @@ static int damon_sysfs_add_scheme_filters(struct da= mos *scheme, return err; } } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_ADDR) { - if (sysfs_filter->addr_range.end < - sysfs_filter->addr_range.start) { + filter->addr_range =3D sysfs_filter->addr_range; + if (filter->addr_range.end < + filter->addr_range.start) { damos_destroy_filter(filter); return -EINVAL; } - filter->addr_range =3D sysfs_filter->addr_range; } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_TARGET) { filter->target_idx =3D sysfs_filter->target_idx; } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_HUGEPAGE_SIZE) { --=20 2.47.3 From nobody Fri Sep 25 09:19:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 89B9C370D41; Sun, 13 Sep 2026 17:17:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319836; cv=none; b=ECDpstBhsm/gTKR4zLqBBKp5SZupGt0X2hk2xgZKp9TLslMiR4d3ikeY9b4yn1JGn9k+e5YaaVgCRKYw8XLCAfgijVFKtqymuy/pwW31HOSErF6lgv0f0nvhoifEWCxon3qpk/dkmxuC35qUm1845xJIwrxdeivt0WVCgf1VAI0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319836; c=relaxed/simple; bh=coOKyd0rtvaMCxH/mKUGhnrdea7b8MWsrIPmIS/QuxI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fftd7LhkGm+RMmzRkGWHknXH10xDcr5JW+32yVRN7eeS6rc8/jfevENtzFVK8IC8VOCTF4g2Thx5JDEbxG5X09TbeWLHcZjF43guOh0F+4MZ9fiJsyFkLF1t/bGMgq+7GhVeNIfqQX3sTzedJ+8/Mx6rtTIlUEjmqPZSOCEt3ls= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=M4JVabPr; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="M4JVabPr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3108F1F00899; Sun, 13 Sep 2026 17:17:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789319835; bh=hAIupWOiZk1Nz5VeipyYWCDtbEHKa9N+XsP7giaox3I=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=M4JVabPr5tlEOIeYIplnfYT0Jag0gmzQIJfF7+bhSEhJBzdlSiVJ5AIOObS7DEA2U Yi+Od02z8zbTQYmRUu0zi3Bg8x4hvohK8dJbPx95zCKSiMVQFiXTipmQginA7IFj9U mho/tBP8zswcf81rltqN8mN8kOKnPH3DAOHylzBiIHsmX5xo3MhvZx269rJ3SbHiYj DaGUef5aQCdfamdWKcth/YDiYtgDx4jo6puUf417+W/6KfzZxDGNJe15HDuDRAagK4 mOb/iNTAeGek/ZYHTo9WlI+uS4n/mmpFV9VguPlO6DceJBx0exlxB6ByhImS3OvgoU D/6IdS/x2OvMA== From: SJ Park To: Cc: SJ Park , stable@vger.kernel.org, Andrew Morton , Usama Arif , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 2/8] mm/damon/sysfs-schemes: read sysfs_filter->sz_range only once Date: Sun, 13 Sep 2026 10:16:59 -0700 Message-ID: <20260913171706.103052-3-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260913171706.103052-1-sj@kernel.org> References: <20260913171706.103052-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" DAMON sysfs interface reads the user-provided size range arguments for hugepage_size type DAMOS filter twice. Once for validation, and once again for assignments to the variable that will be passed to the core layer. If the user updates the arguments in parallel, an invalid size range could be passed to the core layer. Avoid it by doing the assignments first, and then validating the assigned variables before passing those to the core layer. User impact of the bug should be trivial. From the core layer's perspective, the invalid size range is not really invalid. It just works as having a weird size range. No critical issues such as a crash or a leak could happen. And sane users ain't do such parallel arguments update anyway. If they do, such racy behavior is arguably somewhat expected and deserved. That said, there is no reason to keep such races. Fixes: ea1f204ba29a ("mm/damon/sysfs-schemes: add files for setting damos_f= ilter->sz_range") Cc: # 6.15.x Signed-off-by: SJ Park --- mm/damon/sysfs-schemes.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index 3c1c1cb387fec..8c8ab82c8facc 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -2840,13 +2840,12 @@ static int damon_sysfs_add_scheme_filters(struct da= mos *scheme, } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_TARGET) { filter->target_idx =3D sysfs_filter->target_idx; } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_HUGEPAGE_SIZE) { - if (sysfs_filter->range_min > - sysfs_filter->range_max) { + filter->sz_range.min =3D sysfs_filter->range_min; + filter->sz_range.max =3D sysfs_filter->range_max; + if (filter->range_min > filter->range_max) { damos_destroy_filter(filter); return -EINVAL; } - filter->sz_range.min =3D sysfs_filter->range_min; - filter->sz_range.max =3D sysfs_filter->range_max; } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_PROBE_HITS_WSUM) { filter->range_min =3D sysfs_filter->range_min; filter->range_max =3D sysfs_filter->range_max; --=20 2.47.3 From nobody Fri Sep 25 09:19:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D01113812F0; Sun, 13 Sep 2026 17:17:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319837; cv=none; b=mN1BVk+V3Gi92WluWxbRP2h9Y18ryDOmxnJai7BPWNSvkmD4iNFZKiaDIJjdS3rXQ7D5ezwKh8PHCMl/19gJTXprBUC3Q+8itz+JUYe9InLcWIlOyA0ccDyiFUyRU4arZix3L5HeP0kssL8Y6gr0tCtJf/AOYg8zmMydfASWJqw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319837; c=relaxed/simple; bh=511pkTn6VnfeRoiABJeZKOSD3w5pR5NkGsXWAY1PVFo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EVpHynOtueeTm3fTgmto+C2QfsGDe0cMe9HmxPB07OALzdxc4dMFhhau9gYR4llMUEaXms6OPBzi213lNTx0C1k4tvH3q1fiF4WZzb2J1wkslZvjLiu0RbkTbIpsAG/y9EuiBCRC8ODs67hX8IK+tGwCJkf3YeXuHv4CSMA4Mg0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OZqCBSZU; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OZqCBSZU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8E9061F0089A; Sun, 13 Sep 2026 17:17:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789319835; bh=hPljEC41AE/9V3Eb7L+bcMCBYD4RAk8iJtQDR/e+uUw=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=OZqCBSZUf/wQ/7MYqIfkvWxbZ4LmvLyMBfTw8zz3VNihGmgE3PHX+t8GljC//GAtv IXTqNmPCVRLj/0+JPAfXmbAJh3vqi1T5btpqHhI0y8l+FIc3vXJ903nUnY2JXNB0hd FUL/VGgP+3+M1fo0Utf/5Ep3AAwJULWe7mL8QiHYjMoThnKWhtjazHkPLKvQ3DfLON IvivD4wTgidbdYci5d9MkpedjdF+oR4gXwLeAsDi/HpiMdmAPQQ0v8ZH11RLIVjDm/ 8e3Y3e3HTlUsLdiAPPpN0fAnCty1kx3IzL6JKcCvmW2OKLD8S69I3vuww+ObjQwaaS a0we1B1eAtS1w== From: SJ Park To: Cc: SJ Park , Andrew Morton , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 3/8] mm/damon/core: return an error from damos_commit_filter_arg() Date: Sun, 13 Sep 2026 10:17:00 -0700 Message-ID: <20260913171706.103052-4-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260913171706.103052-1-sj@kernel.org> References: <20260913171706.103052-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" damos_commit_filter_arg() is supposed to always succeed. It may not in future, for example, if the given filter is invalid. Prepare the case by modifying its signature to return an error when it failed. Also pipe the return value to its callers and let them handle the error. Signed-off-by: SJ Park Reviewed-by: Kunwu Chan --- mm/damon/core.c | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/mm/damon/core.c b/mm/damon/core.c index 3d7a973ea8b6f..ea7d8d5a4abf6 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1317,7 +1317,7 @@ static struct damos_filter *damos_nth_ops_filter(int = n, struct damos *s) return NULL; } =20 -static void damos_commit_filter_arg( +static int damos_commit_filter_arg( struct damos_filter *dst, struct damos_filter *src) { switch (dst->type) { @@ -1340,28 +1340,32 @@ static void damos_commit_filter_arg( default: break; } + return 0; } =20 -static void damos_commit_filter( +static int damos_commit_filter( struct damos_filter *dst, struct damos_filter *src) { dst->type =3D src->type; dst->matching =3D src->matching; dst->allow =3D src->allow; - damos_commit_filter_arg(dst, src); + return damos_commit_filter_arg(dst, src); } =20 static int damos_commit_core_filters(struct damos *dst, struct damos *src) { struct damos_filter *dst_filter, *next, *src_filter, *new_filter; - int i =3D 0, j =3D 0; + int i =3D 0, j =3D 0, err; =20 damos_for_each_core_filter_safe(dst_filter, next, dst) { src_filter =3D damos_nth_core_filter(i++, src); - if (src_filter) - damos_commit_filter(dst_filter, src_filter); - else + if (src_filter) { + err =3D damos_commit_filter(dst_filter, src_filter); + if (err) + return err; + } else { damos_destroy_filter(dst_filter); + } } =20 damos_for_each_core_filter_safe(src_filter, next, src) { @@ -1373,7 +1377,11 @@ static int damos_commit_core_filters(struct damos *d= st, struct damos *src) src_filter->allow); if (!new_filter) return -ENOMEM; - damos_commit_filter_arg(new_filter, src_filter); + err =3D damos_commit_filter_arg(new_filter, src_filter); + if (err) { + damos_destroy_filter(new_filter); + return err; + } damos_add_filter(dst, new_filter); } return 0; @@ -1382,14 +1390,17 @@ static int damos_commit_core_filters(struct damos *= dst, struct damos *src) static int damos_commit_ops_filters(struct damos *dst, struct damos *src) { struct damos_filter *dst_filter, *next, *src_filter, *new_filter; - int i =3D 0, j =3D 0; + int i =3D 0, j =3D 0, err; =20 damos_for_each_ops_filter_safe(dst_filter, next, dst) { src_filter =3D damos_nth_ops_filter(i++, src); - if (src_filter) - damos_commit_filter(dst_filter, src_filter); - else + if (src_filter) { + err =3D damos_commit_filter(dst_filter, src_filter); + if (err) + return err; + } else { damos_destroy_filter(dst_filter); + } } =20 damos_for_each_ops_filter_safe(src_filter, next, src) { @@ -1401,7 +1412,11 @@ static int damos_commit_ops_filters(struct damos *ds= t, struct damos *src) src_filter->allow); if (!new_filter) return -ENOMEM; - damos_commit_filter_arg(new_filter, src_filter); + err =3D damos_commit_filter_arg(new_filter, src_filter); + if (err) { + damos_destroy_filter(new_filter); + return err; + } damos_add_filter(dst, new_filter); } return 0; --=20 2.47.3 From nobody Fri Sep 25 09:19:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68C33353A85; Sun, 13 Sep 2026 17:17:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319837; cv=none; b=Ar4fKFWCrd0OnkgyUjJ5uAHIMhMfvcSBU4G+kcyXMyTHf5I7gOV/Lln7k2j2cFpjzQk/vPvPi4vNELmN+5F/5OYqK5zOxDtETVTuLIH2AzM1cp8DiVLVaf5DnKDcAlFjHIfSfppuXt+anBqp95tVfK1rs8+ffHmFHaOlc7AF2mo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319837; c=relaxed/simple; bh=1TQB/zd3/cakG4J9zdL3sTQwr6f7ClpMOfdh91yRlBM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Bx6FH+b6v29TqBKOqufBBNRWlUfRQi2GzbKe15qivetBKTBuLGXzXfQ/zXnt1GFIL25sxHTxu9kipWl/GBqPTYLR/sBOpNslN+sNEGYHlZoWn4jrZrCE8ADifJCSAiVJRsvJOOWjWQDi76fakjAhfsOq0cXmoUT9ZZWFiLT/bvw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jQjBiGLP; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jQjBiGLP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DCFFB1F0089B; Sun, 13 Sep 2026 17:17:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789319836; bh=Af0P/XKXdgAAzkHEeahdC79McKW/w8Lwx3TN8N0HP1Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=jQjBiGLPWEvT7nWrogYH8mpKAIP66m2WtYqxhrebNUTe7XEeut+RvP0LoZp5EFyZ+ ZZhH+ilUbK3eVLqxzuUX6tidBcAbd/GhIY+1dUGldEVL3suAkq/yQg7EMJRHvye7y+ 3wy68lbNFrITT5HzMPwjJeuSd0TCy5Xs8ob/LQ91PeSSM+y4kb0O6NP8yN1KycTAnk nN2lKSF6pyntZEHu/OhG/vKSILHt42lCxIdQxryBStGzWE8+na+afloRquZIUi7pRt fQlvkS0nia4PflJPcUfOag6Qs7PfDoWPZOt776ioSL2vbO/9XAwn+lRDOnwVa2Lddq NrdcaFohSG4DQ== From: SJ Park To: Cc: SJ Park , Andrew Morton , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 4/8] mm/damon/core: disallow max < min damos filter range arguments commit Date: Sun, 13 Sep 2026 10:17:01 -0700 Message-ID: <20260913171706.103052-5-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260913171706.103052-1-sj@kernel.org> References: <20260913171706.103052-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" damos_commit_filter_arg() receives range arguments for a few types of DAMOS filters. It allows any range including max < min range. It is fine for the logic, but makes no sense to support it. Actually DAMON sysfs interface is doing the validation on its own. To avoid duplicated validations in multiple DAMON API callers, it would be better to do the validation in the core layer. Add a validation of the given range. Signed-off-by: SJ Park --- mm/damon/core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mm/damon/core.c b/mm/damon/core.c index ea7d8d5a4abf6..5212bfb8f85f2 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1325,15 +1325,21 @@ static int damos_commit_filter_arg( dst->memcg_id =3D src->memcg_id; break; case DAMOS_FILTER_TYPE_ADDR: + if (src->addr_range.end < src->addr_range.start) + return -EINVAL; dst->addr_range =3D src->addr_range; break; case DAMOS_FILTER_TYPE_TARGET: dst->target_idx =3D src->target_idx; break; case DAMOS_FILTER_TYPE_HUGEPAGE_SIZE: + if (src->sz_range.max < src->sz_range.min) + return -EINVAL; dst->sz_range =3D src->sz_range; break; case DAMOS_FILTER_TYPE_PROBE_HITS_WSUM: + if (src->range_max < src->range_min) + return -EINVAL; dst->range_min =3D src->range_min; dst->range_max =3D src->range_max; break; --=20 2.47.3 From nobody Fri Sep 25 09:19:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 82E8A38655C; Sun, 13 Sep 2026 17:17:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319837; cv=none; b=p7tH9hdwWFqwwBM64U76cCK/Y82W2PNYcrMRkoam9Ts2Hu6b/h5fYjJUVHq3y8rOjJQKHG3533fJUY9kgUgzJnOGN1UelNeQlLjMIMp7algpOnKGgd4GvcwpD7KqHuky2+ItKZEIGRlIQ5w/V6uOICwlkArQ+XqH4Ish1DV7J6M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319837; c=relaxed/simple; bh=tpVaEb4AYEZ73fAxIIPOmUa+AX18NBp3TqT+frNo5vc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Syfm+NLjNdNwlq2u2+nDF9exky8BjR65+bNnDEM15+8cF4sYiUSjohhmFvlLVNtuTDGCeIle1A6gKUhU6aGw0GFizCtq9lIrWBz1dtcLZOXyWjDxQr1FAAUPYfLuBMtUjOzZuP/qvJirjJ/lxkanZdxsjKsimHdjQbtfYrNG+5I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=k0k86qgT; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="k0k86qgT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 386A21F000FF; Sun, 13 Sep 2026 17:17:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789319836; bh=SymGB/Aunbf5NpktH/MrAmxXwvCzvOB6NopidPvvPWo=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=k0k86qgTdxcrL1TMu3BFfRdT5rho6ri0dpAB17vwosjSrW6Kf/EV9EfrTAHitpmI7 2ssuYPLAyQ+hcc2Drmq1omyEDdueVowfnLlCpaIwu3V0X3prCI8exkKB//W0aqsHyS FSk8mUb8vlrX2ra47BQIZeXI1lb1XxKsSYqj7UVk8taj3jkIop/n6zswfR2G9ItFj/ pQPQ1cQs0pvS8wdyF42jPHSbX2DsymaJCO05KDHU34kFKtgYqHD/+k+LJY+DG/d58n qcrTjiQnE8VWVLssKq4UBWKEIzeFib5SFkV2al5VTeSZ9AWLMW1rT14P8LL8NAoQqx u6g2GmwXQOMqA== From: SJ Park To: Cc: SJ Park , Andrew Morton , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 5/8] mm/damon/sysfs-schemes: drop centralized filter range arg validations Date: Sun, 13 Sep 2026 10:17:02 -0700 Message-ID: <20260913171706.103052-6-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260913171706.103052-1-sj@kernel.org> References: <20260913171706.103052-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" DAMON sysfs interface is validating wrong range arguments for DAMOS filters. Now the core layer is doing the same validation. Drop the duplicated validation in DAMON sysfs interface. Signed-off-by: SJ Park --- mm/damon/sysfs-schemes.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index 8c8ab82c8facc..a4ec5d54cfbd1 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -2832,27 +2832,14 @@ static int damon_sysfs_add_scheme_filters(struct da= mos *scheme, } } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_ADDR) { filter->addr_range =3D sysfs_filter->addr_range; - if (filter->addr_range.end < - filter->addr_range.start) { - damos_destroy_filter(filter); - return -EINVAL; - } } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_TARGET) { filter->target_idx =3D sysfs_filter->target_idx; } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_HUGEPAGE_SIZE) { filter->sz_range.min =3D sysfs_filter->range_min; filter->sz_range.max =3D sysfs_filter->range_max; - if (filter->range_min > filter->range_max) { - damos_destroy_filter(filter); - return -EINVAL; - } } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_PROBE_HITS_WSUM) { filter->range_min =3D sysfs_filter->range_min; filter->range_max =3D sysfs_filter->range_max; - if (filter->range_min > filter->range_max) { - damos_destroy_filter(filter); - return -EINVAL; - } } =20 damos_add_filter(scheme, filter); --=20 2.47.3 From nobody Fri Sep 25 09:19:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CBC84386C22; Sun, 13 Sep 2026 17:17:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319838; cv=none; b=ocjGpZG432JnyY/ZELZ1P4/YcNKT2M017ztx6WU4BVw7ol6ux5qpcTewlTFJAyMryKtDRZ7yZzF7nEMOjCRWPkzc+K0JIpwZGirlR0aJirhUxmGmHcPX1lp9dPcpfpbnMLjc9/tCj/WsfC/4syjhybjJm3aG3M31IHMG0j8rKhs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319838; c=relaxed/simple; bh=dL2tCf9R2yFYdQyhb1vg7KlOpunIGTvyq2ICqewh28E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UXqX0kHtMmcsx8ctk1M1+Y+wtuPJju1K+W20HwynwqFUxCqcs9YgNtS3ICRZu8H09MrOlD2octUCZI0oojsHa/FjB7YX1+YpKK5ftkc8EDIM+uttfyZxYPYE2rLESmBmZYH3/AzWk1AytLsbANyGBPoxPUwz3QhLtU17cTzuANI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=i3theO8w; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="i3theO8w" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 87DE61F00893; Sun, 13 Sep 2026 17:17:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789319836; bh=MBpdI9GABjSpbOSBeiuA8iViUPE/b+K1BLYoiHpgDDA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=i3theO8w1YobTHF6s/PdgEDvl2RO1oiaxzM5QTabU5Q5f4hgM09YO48RE+xK2BhS/ 2PuETBuVcH7ddsdPJ1zFedK/5ncsVlKrMQiXz/YjPXq+9/OhhyEePrnBb6U7O1G6r2 /evjeSjdmRNl6b7X6sQrbgFIJubDAmmsb9H4YoE7p5O1VtOHLURdIP/G6TY3LLyhU3 IVeWc3L1J3huFBK7uzwLqnSPOt6arTQqBW53DKUxnjmgiH1BWhxYMhKMowA9UZ5SsL hJG+jWq5t3qz2S0bWlbnDlrUntTv44zOf2oskBEz8Qn8dAtyqJR7XAVcY3kKa7lM5P GMUHq6z+wFD9w== From: SJ Park To: Cc: SJ Park , Andrew Morton , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 6/8] mm/damon/sysfs-schemes: use switch-case in add_scheme_filters() Date: Sun, 13 Sep 2026 10:17:03 -0700 Message-ID: <20260913171706.103052-7-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260913171706.103052-1-sj@kernel.org> References: <20260913171706.103052-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" damon_sysfs_add_scheeme_filters() has long if-else chains for DAMOS filter types. Convert the code to use switch-case, which would be cleaner and more efficient. Signed-off-by: SJ Park --- mm/damon/sysfs-schemes.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index a4ec5d54cfbd1..bfb6f0bc3f213 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -2822,7 +2822,8 @@ static int damon_sysfs_add_scheme_filters(struct damo= s *scheme, =20 if (!filter) return -ENOMEM; - if (filter->type =3D=3D DAMOS_FILTER_TYPE_MEMCG) { + switch (filter->type) { + case DAMOS_FILTER_TYPE_MEMCG: err =3D damon_sysfs_memcg_path_to_id( sysfs_filter->memcg_path, &filter->memcg_id); @@ -2830,16 +2831,23 @@ static int damon_sysfs_add_scheme_filters(struct da= mos *scheme, damos_destroy_filter(filter); return err; } - } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_ADDR) { + break; + case DAMOS_FILTER_TYPE_ADDR: filter->addr_range =3D sysfs_filter->addr_range; - } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_TARGET) { + break; + case DAMOS_FILTER_TYPE_TARGET: filter->target_idx =3D sysfs_filter->target_idx; - } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_HUGEPAGE_SIZE) { + break; + case DAMOS_FILTER_TYPE_HUGEPAGE_SIZE: filter->sz_range.min =3D sysfs_filter->range_min; filter->sz_range.max =3D sysfs_filter->range_max; - } else if (filter->type =3D=3D DAMOS_FILTER_TYPE_PROBE_HITS_WSUM) { + break; + case DAMOS_FILTER_TYPE_PROBE_HITS_WSUM: filter->range_min =3D sysfs_filter->range_min; filter->range_max =3D sysfs_filter->range_max; + break; + default: + break; } =20 damos_add_filter(scheme, filter); --=20 2.47.3 From nobody Fri Sep 25 09:19:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4D7E0389106; Sun, 13 Sep 2026 17:17:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319838; cv=none; b=oJMTUrsF43S/LxGuiwe8ywkFvr0yViiLd0W6OwoiOKZYkSKvggPCgu5Da+tufzrV2X85/9VVgKWBYhP2Hg8voxphCeHfuKaU4wxWfoHZYPj1sLYsLhHEluGYlBcfsFcdE/fZxTM+893WJher8cwFV8E2bfhhGFojT+dJHoCtOx8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319838; c=relaxed/simple; bh=S3b6wCMSIhA5OZ0fTX5hY3QoKyzxhQ3s8RJHucABZXw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mFVCr9aYKviM6cWwsBHMdpp/LbZW545zW4zqDSiJzoSfRpBC122Xu7WcUE9nGRxMfUrtj++C7/BdZ3K8HregiLPJfmF/3QIdWPSu89NrrVGyaFCAJ4xDrgYN31MaU0QKO77eWfXl9PhijqM8Pu6Hc6A/PoT72xFkE2qliQsSKXM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=H4W7py6a; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="H4W7py6a" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D98D71F00899; Sun, 13 Sep 2026 17:17:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789319837; bh=nqfaQq4DYDAwDcS6eX/vnZ8ZZiveWwkFxlbgk1mGGIc=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=H4W7py6aOI53Y/ZvNSunZRHFe0l0i6pGkVwow4aMEflbBTjd5mP73d/jl4iuSE70w /wMFvEg+0UIYFIoEVo3WqwWNj/gFLtEaiCpbb3iCkP144bNl+M74+2wCvC01cCK+hV 8fnB74LyzDzBwjdXY70NVF2vwiQZy0ru2VnbjyQIKq+y3tDkBc2HertUhRQBF7vz5a juJklc1eGsYaq31xW8meHEK1YRl0Wo9eUadCuSSylpj3dz6eZAlIsCF90TCJ1sUAUd Z6w/90du8neSMJ4i5vBWBP1W0V6eZrUZdmcDO+dDrf2GqhFrQTWKwuol3yI8zdQIcL 3rM52daiIfvxA== From: SJ Park To: Cc: SJ Park , Andrew Morton , Brendan Higgins , David Gow , damon@lists.linux.dev, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 7/8] mm/damon/core-kunit: extend damos_commit_filter_for() for wrong input Date: Sun, 13 Sep 2026 10:17:04 -0700 Message-ID: <20260913171706.103052-8-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260913171706.103052-1-sj@kernel.org> References: <20260913171706.103052-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" damos_commit_filter_for() supposes damos_commit_filter() to always succeed with given inputs. damos_commit_filter() could return an error for invalid inputs. Existing callers always pass only valid inputs, but they may pass invalid inputs in future, for test purposes. Extend the function to be able to be used for wrong inputs-caused error testing. Signed-off-by: SJ Park --- mm/damon/tests/core-kunit.h | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h index a47a5cdf285c8..c9941f3bfb42b 100644 --- a/mm/damon/tests/core-kunit.h +++ b/mm/damon/tests/core-kunit.h @@ -1127,9 +1127,15 @@ static void damos_test_commit_dests(struct kunit *te= st) } =20 static void damos_test_commit_filter_for(struct kunit *test, - struct damos_filter *dst, struct damos_filter *src) + struct damos_filter *dst, struct damos_filter *src, + bool expect_fail) { - damos_commit_filter(dst, src); + int err; + + err =3D damos_commit_filter(dst, src); + KUNIT_EXPECT_EQ(test, err !=3D 0, expect_fail); + if (expect_fail) + return; KUNIT_EXPECT_EQ(test, dst->type, src->type); KUNIT_EXPECT_EQ(test, dst->matching, src->matching); KUNIT_EXPECT_EQ(test, dst->allow, src->allow); @@ -1168,47 +1174,47 @@ static void damos_test_commit_filter(struct kunit *= test) .type =3D DAMOS_FILTER_TYPE_ANON, .matching =3D true, .allow =3D true, - }); + }, false); damos_test_commit_filter_for(test, &dst, &(struct damos_filter){ .type =3D DAMOS_FILTER_TYPE_MEMCG, .matching =3D false, .allow =3D false, .memcg_id =3D 123, - }); + }, false); damos_test_commit_filter_for(test, &dst, &(struct damos_filter){ .type =3D DAMOS_FILTER_TYPE_YOUNG, .matching =3D true, .allow =3D true, - }); + }, false); damos_test_commit_filter_for(test, &dst, &(struct damos_filter){ .type =3D DAMOS_FILTER_TYPE_HUGEPAGE_SIZE, .matching =3D false, .allow =3D false, .sz_range =3D {.min =3D 234, .max =3D 345}, - }); + }, false); damos_test_commit_filter_for(test, &dst, &(struct damos_filter){ .type =3D DAMOS_FILTER_TYPE_UNMAPPED, .matching =3D true, .allow =3D true, - }); + }, false); damos_test_commit_filter_for(test, &dst, &(struct damos_filter){ .type =3D DAMOS_FILTER_TYPE_ADDR, .matching =3D false, .allow =3D false, .addr_range =3D {.start =3D 456, .end =3D 567}, - }); + }, false); damos_test_commit_filter_for(test, &dst, &(struct damos_filter){ .type =3D DAMOS_FILTER_TYPE_TARGET, .matching =3D true, .allow =3D true, .target_idx =3D 6, - }); + }, false); } =20 static void damos_test_help_initailize_scheme(struct damos *scheme) --=20 2.47.3 From nobody Fri Sep 25 09:19:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C30C938BF89; Sun, 13 Sep 2026 17:17:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319839; cv=none; b=eo5YuOSu23wef9ogLexWBe0hpLq1tbLvXdTnDkOXGkz2vEjRwpruNx6S1nAAUDna/nxsS9ezMu7IGdXxgdPVhSzqiBlfbxBY0/3gg0XigvU88mCc7zHNggnZc9wis+wuwNr/vxL5642m3ehEfuxILbbE/u0ba3yqroNN9SXHxSE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789319839; c=relaxed/simple; bh=zKNBJKJMEE7iDlzCLwTQdJt35qvvUznZGcGFB4z2xBk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pAGyqFDuNbAj/VGzgth3t+fSs+s7cFZd6EZ6ttrM0r2zFyuVQGpWQ5dtWtn2oVs8OFXmuFSWAsIdoKHCYik4Zuk1bJ4H8TRpDwqY9JHkxPzGsIvC0AmCUT+DvQxVauVk7XBLekB08DhEr3xF7xVftthaepYvDaKgIUhYwL+qY+0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gEU23QJZ; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gEU23QJZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E0E51F0089A; Sun, 13 Sep 2026 17:17:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789319837; bh=as3OPkNFsYYWKFBQO9tZASdaFQXU9TrMOPenfE/ek3g=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=gEU23QJZRHcX0hf20lXi65rqTmqiivKMAkC8NWufRT7WW+XbOERTEzf6LOBNj+o8T KdT2r6OtpYD27Ng7Q+Mtlp1jDlRl5lYYltAWyx8puWG25O5SQTLk79wNHEEw33znUr uRwJGhZbp2nM9BidpT2oc98FQAtiyvIjxACfE0xEnYZuV+KiEmk77q2lMdO+mKC8n+ UTRrz7j85k3xK4VbbWGOH/rphd0YXZa7iWF0dEiiGGODzKFevfGLMmWzz776B+acKc MTB+wmuAUkZggR2syAibirXfUBPQLBfUVferBLJ6EWSxUU8MtnRqSnxVRL7eAvqq34 ftqdznGyrAZAA== From: SJ Park To: Cc: SJ Park , Andrew Morton , Brendan Higgins , David Gow , damon@lists.linux.dev, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 8/8] mm/damon/core-kunit: test invalid damos filter commits Date: Sun, 13 Sep 2026 10:17:05 -0700 Message-ID: <20260913171706.103052-9-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260913171706.103052-1-sj@kernel.org> References: <20260913171706.103052-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add test cases for testing the validation of damos filter arguments in commit time. Signed-off-by: SJ Park --- mm/damon/tests/core-kunit.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h index c9941f3bfb42b..5da84caf4124d 100644 --- a/mm/damon/tests/core-kunit.h +++ b/mm/damon/tests/core-kunit.h @@ -1195,6 +1195,13 @@ static void damos_test_commit_filter(struct kunit *t= est) .allow =3D false, .sz_range =3D {.min =3D 234, .max =3D 345}, }, false); + damos_test_commit_filter_for(test, &dst, + &(struct damos_filter){ + .type =3D DAMOS_FILTER_TYPE_HUGEPAGE_SIZE, + .matching =3D false, + .allow =3D false, + .sz_range =3D {.min =3D 456, .max =3D 123}, + }, true); damos_test_commit_filter_for(test, &dst, &(struct damos_filter){ .type =3D DAMOS_FILTER_TYPE_UNMAPPED, @@ -1208,6 +1215,13 @@ static void damos_test_commit_filter(struct kunit *t= est) .allow =3D false, .addr_range =3D {.start =3D 456, .end =3D 567}, }, false); + damos_test_commit_filter_for(test, &dst, + &(struct damos_filter){ + .type =3D DAMOS_FILTER_TYPE_ADDR, + .matching =3D false, + .allow =3D false, + .addr_range =3D {.start =3D 567, .end =3D 456}, + }, true); damos_test_commit_filter_for(test, &dst, &(struct damos_filter){ .type =3D DAMOS_FILTER_TYPE_TARGET, --=20 2.47.3