From nobody Fri Sep 25 09:19:46 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 1D5CA3DD85F; Mon, 14 Sep 2026 14:23:35 +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=1789395817; cv=none; b=RUk1aHFln1xrXz90RtLYzf/VBKPRdgiHb2A4KqcFDRkEy1bFS42wvdxpmWyYnm6CtdbZ+UD2kwWqDlUjXTK+CfMyw/PLFxUIs/ugBzkWtWALWpG64ovbtc3+Dw7y8wlPMqnQzneb57CBxsCt7TQrwZ3OpS5nqgYi3rfYssibs0A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789395817; c=relaxed/simple; bh=gZK1bNR/6VsrE2g3Gf0chVwSQZHcPPaYBk/SDLvircU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dzELhengw3WRyihzMsYbNF3xT9G4euZB2/qYuPOmf7L+sMBXEOVP5DCEHzX1fKmIjI3Oj7xGId78gbCwBE+UOmhbTGMix1WpwuVZXVYZSb86GG/HGs2ZZvnX78JuFrs4H7PDCAWYwOFNtC7rGFT2uZS+SXW3n4LByAotOXmgOMI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UnBIhXhg; 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="UnBIhXhg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 727C41F00898; Mon, 14 Sep 2026 14:23:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789395815; bh=umQcJFGrr068QYat6Lud6jcAzEmAFL/l4IbhvroBRbM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=UnBIhXhgSEQ7UU1Y7A23DFOancx7pojdDvKQJG3K18zt1+0sp17kaIancC0qgk1MB P9zgKlEBxWUhS8wBlbpaotWyNZnDSf+dhF/27pMH4jmWVSo7prg8DURkYQZT87PIwc OJhAUiuXPjlsZfJRSViZceuZVzfqqP9qrags/bDvQ59ntrEaY7rF+cdcdmLtlsWKgQ GwxbjxomNNk5Sl/bDh4/NAbWNggLW84miZrDaFjyQvYDgRY3yadolbgvgM+8S1nDUg 8MCPy/K0o8UtR6990zfSxZ1V/xKVkXElsFjyYi2m11aNswq8wdN3L7ARKo1diDXg3o OyB3o+HJZ+tTQ== From: SJ Park To: Andrew Morton Cc: SJ Park , stable@vger.kernel.org, damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 1/8] mm/damon/sysfs-schemes: read sysfs_filter->addr_range only once Date: Mon, 14 Sep 2026 07:23:18 -0700 Message-ID: <20260914142327.92510-2-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260914142327.92510-1-sj@kernel.org> References: <20260914142327.92510-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:46 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 6F95547F2D6; Mon, 14 Sep 2026 14:23:36 +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=1789395818; cv=none; b=UJoOAhKx5UCfpotWGEEDE2XEjW9VF5MF/bohfxbDz62l75aVIsiF2hqIXAn9joZOWeNtMs/ZnNDUGumPFxpxSs09xitK7eHJ86pJQm7DERXSxSl4tp0dWiwjXRwwu+4vhw7PB1ZtcpAxJZoBZZwiMk7TFLmhFP8+27of0yWIBOY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789395818; c=relaxed/simple; bh=coOKyd0rtvaMCxH/mKUGhnrdea7b8MWsrIPmIS/QuxI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i2aqAq4QbLlJCC2EIcFgTPsUdns3ILZnSVF4eVCqziMGnqvPE2/WBbKupWAdKnkLWU4vkrOD9MsvWjmYU3oDr5eDC/cJjCzqkcCGHB8e/UKLr1vNcOdXgcjejkhjyC+i1VIS91SqO3yF4qm3/l8KhpiWERfMpzpGl3FZLOGqnl8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EWiER/3E; 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="EWiER/3E" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C53A51F0089A; Mon, 14 Sep 2026 14:23:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789395816; bh=hAIupWOiZk1Nz5VeipyYWCDtbEHKa9N+XsP7giaox3I=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=EWiER/3EXkZMh6IAzLZjB+BC/ivAJZlgAEj08Ubqs/oGEkB+6gGa10ONspOW69cgr 1+whmqS2j6DxXT7A6LGbsSEBERXZKTNqFgIizHC/CyIEu9s7WDorYvcPVvP5Sd6F2P ZvSMv0i2EB1eVijnxMuFm35cRWfagKjChMTuveUgjODV/3e+b/1rHCvbiDbbtCRVln 8isMkJPRoCOFB8gGBaIwWOC8XU9r9Swz+o8bgp9yLHdy3XkyiFXsTF7fv+VFdB2tKI UkBvzVtKKq++R82set9MAvGhXimbPcfsJO9/xnMmV0PVX9Z+a7XqeUfSIwf3gNCoP5 VC13OV35TpWag== From: SJ Park To: Andrew Morton Cc: SJ Park , stable@vger.kernel.org, Usama Arif , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 2/8] mm/damon/sysfs-schemes: read sysfs_filter->sz_range only once Date: Mon, 14 Sep 2026 07:23:19 -0700 Message-ID: <20260914142327.92510-3-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260914142327.92510-1-sj@kernel.org> References: <20260914142327.92510-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:46 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 B44B847F2DD; Mon, 14 Sep 2026 14:23:36 +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=1789395819; cv=none; b=LUwwB/AwvPFc7+zvTSEVh2nqdkLrHkadv3WpPuOMulj4UStEDKFb6CvZLZIji6jSx3YhOfj6LI/gGg+llW9yb4oEIXDDXagiOP+JfmOrZu1Wu6saT3dUoz+Sb7zHT136xrxo8iT6aS4OCO97hcpDo1ye/PSLyXos9BfIiMM9eBE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789395819; c=relaxed/simple; bh=rezLxJx/ysSC3j6vIQ0D2XPXYxSSlKKk/TpnK0F3TIA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aSgFbOWJs9XFNENUIotbcprgtglT/R59DZidC6KYVSn+FoebXihDRdKKbkahgERu29GXc4ZQ2uAi6jlAg6Aj05mYHE7QzsakQg3E/Uxa6/ynXTpAkN/dJLhopW3JDJjic8mvTYcDCL8ziM02HvE7/vi95P1SSO0y3VUf+Oa9qW0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Xg1NrFwB; 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="Xg1NrFwB" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A7681F00893; Mon, 14 Sep 2026 14:23:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789395816; bh=IylFMzfsfQcR17Grot5+mj67UZj/L3bUEkgF2gj/ftI=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Xg1NrFwB1YiQuae9W8eyekK7DWN6FL90M2yHBgePYlP/g6HCOFtpH7ktN0pmbj9I+ u98a3NTVNeBJBmwXFvzqTiDx8AWb6rvl56oWwlaKNcOKwAGeH5gSCKNHVPrWWrEzg3 8kM/QzQj0fG50L8/etXomiCEc32jfGYUkT2isU5DClyo0FYkL1pPtgUvzkznHhQP8E 7EmD2UzTkGlstsJDm0SS1TsFv/GuVLwpqAsuVuuPHo8Vy7OcW+B1H+A90tHpSX6b7f bzLPY2QQSpQDR3Y6motIVexQNMf75iW8nWQouD8Aqk9nzLqNAyVHBeu6kchiWEYyyw oFt95gSnHdTVA== From: SJ Park To: Andrew Morton Cc: SJ Park , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 3/8] mm/damon/core: return an error from damos_commit_filter_arg() Date: Mon, 14 Sep 2026 07:23:20 -0700 Message-ID: <20260914142327.92510-4-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260914142327.92510-1-sj@kernel.org> References: <20260914142327.92510-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 --- 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 0c98f7e267d07..94ea63084a24d 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:46 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 0DD8D45FFA7; Mon, 14 Sep 2026 14:23:37 +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=1789395820; cv=none; b=owkV8x8/ji5htJWofFuT/cL27NoG4EFr+eBvRN890cg1C67AjNsqiVhezwYVa1T7mrKVN8/q7Yls3LFZ/BO3TnmtqBIeETwK+lwg70HUvmxApHdjXGKStG77ikGjX93uRyFHyFY7y3+2Tond9OTaER8lm95dI32yqSGWriG+iiQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789395820; c=relaxed/simple; bh=QHhLfzJDfeGQuRfqlQawxwg6MFyoxHgPA/T9dhACMIA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JlXfjNtoxbG984hA4pWbCx10u7zjlLtqAy5HWeTuFs2TfAWsTcwzF3pz7aEuQjDGtDcApaoCHGXSJqJpJM1BPMwNz6/Y297vwNGzAU8yxDwQ98/z4BKOvlMRVboYFKhH5QIVwf4I5dMxRl4wHgUGAKBZsQFh+2As0sKhJ6ktLh8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HYWk1xvQ; 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="HYWk1xvQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7E1491F0089B; Mon, 14 Sep 2026 14:23:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789395816; bh=tOENOCXANQ196Y7IaHjgPhFv7InBS8bgPr0HQuFZGX8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=HYWk1xvQvcnIFbcqa1C2fX/oWjgZSWbJNNKHPp9pfOqUYW9Tg03tBeuu9CB0MbJN/ NVu5hrHYgov25H63p6g/kJgZlwWsOW7gs0xSUoR3Yg6rtcc0cEPnMtSEu82t6gC0KI e8zJwDwcokla7atG2zK26UOFknEar+FtGCd9VVAZU+5P6cOzvIbPJ9+zYgk4DO9hgP 4DD+nrmHxsQ4jZszS6nqIRvKpxbtKvsXnMd2hr/ntC7GhQlhjSwTmCrf99DeDgTBuo YDyq02dxv1QeTr6e9hhLiyxeL8H+y08wGFyCW13RBN+PD652Or5eaUbI5s9QvQPD9I 8AgCTjfVLzUkQ== From: SJ Park To: Andrew Morton Cc: SJ Park , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 4/8] mm/damon/core: disallow max < min damos filter range arguments commit Date: Mon, 14 Sep 2026 07:23:21 -0700 Message-ID: <20260914142327.92510-5-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260914142327.92510-1-sj@kernel.org> References: <20260914142327.92510-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 94ea63084a24d..e0414d2adcb41 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:46 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 9F6D747F2F8; Mon, 14 Sep 2026 14:23:37 +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=1789395819; cv=none; b=UT0YVQhFE2wwCeprbJXCLroGzlf2a3Ni44so75zRJvux7gVOwK/fWkwCo+ILlo8IYx360a04cKsQXo6DQ2DClsddBvsaJAoUlxnbRvWr5caZ5o4MhuLnu5FtOfZh7tTCBXGVuHWCdQ2aiW9P+v2dK1ziTWx71sGR7SXXY5+a9gQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789395819; c=relaxed/simple; bh=tpVaEb4AYEZ73fAxIIPOmUa+AX18NBp3TqT+frNo5vc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rxwTit2ZdI/Qi6Pi9/9nmaoWh0Iq10Ez8GF2lusCbIltwWntTp83KVBT4pdtWrbkcWnL84DS7tCeFMUMmHQBN2+qRKqUD2Iys4qllcw1vo8tX2S85AO8p8YhRVtNYA47TA+xYvjUl7Rx+nM66eQaL00aCjGKSktg2XbVFO2gGlg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Kh0m6NXa; 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="Kh0m6NXa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8F791F0089C; Mon, 14 Sep 2026 14:23:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789395817; bh=SymGB/Aunbf5NpktH/MrAmxXwvCzvOB6NopidPvvPWo=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Kh0m6NXajRuL3CuLqc5aJQNDFZ3RSvXdrkKyvR2jqMPtFkDWwdkniXPWWgcrnctzq 8Jewn5hAICL5YkGtDhBgQk/TGlMY2TwK6I6mqlqZFJSbLBkLzk/M+9060VTlcIRUF/ T+4rQk2mcjJVtIQQOkP2nKQUSyJ6kof8xGCz/Bm/j7h0bFIyYbjHIfHxPr81bQN8Ug O/IXla/2RVPpFZN19noahFBlE2K4iOdNIfrPlH7sTtOW3XI1yqEH4gCmaNPbWwjewi qfvn5visdXISBS4SmEM7y7wjxhhMTXruMeDi2Qf2Lqs8LcLRZOAeCv9ODieO53q6yv T5trV7T1wBAPg== From: SJ Park To: Andrew Morton Cc: SJ Park , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 5/8] mm/damon/sysfs-schemes: drop centralized filter range arg validations Date: Mon, 14 Sep 2026 07:23:22 -0700 Message-ID: <20260914142327.92510-6-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260914142327.92510-1-sj@kernel.org> References: <20260914142327.92510-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:46 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 E25A147ACC9; Mon, 14 Sep 2026 14:23:37 +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=1789395819; cv=none; b=eEM6JXSg3tJGcPxlkxaCWIe8ttiKdsdNodEaS/rDpPAd845U3Yh2YQF3YB9hyU8hkOH94kvBXVdrSOKj+osfHH5vSaVQg7EREhTCrk9kPA+eTzVZ0SdBMVMXYzajxPaFgm68Yp8NyPRpr6HgR6KMW/VMXeLZJi6iOqnqd5/EPxg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789395819; c=relaxed/simple; bh=dL2tCf9R2yFYdQyhb1vg7KlOpunIGTvyq2ICqewh28E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ejZqbohv6QWfKU/DfUwABTeKxu8wntZiu4gZqij8mSITGglMxcv3u0tbNVxnZjqJU9CDln9egA1I8Tyut7vsLdFilnxIBkKBsc5UTdJWQtZhaZhoOwPvVTW9gX0vpyX1n852sFASDUvv6rrn/edXGXO/6usPWhv6lWGafsyrnOM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mHui+Ibu; 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="mHui+Ibu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21C731F0089D; Mon, 14 Sep 2026 14:23:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789395817; bh=MBpdI9GABjSpbOSBeiuA8iViUPE/b+K1BLYoiHpgDDA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=mHui+Ibu6V4Lmbd00FMAKZfVJb5+IqZz8jTq/0v8I2B8+lo0FsxJlHmOMWSR0fMh5 JL2VXI5yolS7lMgfsDUfqWTgMynzKD3HyBjZgbvoQzMmJ3RlGf3eMtuFH/bmK2gMSk YXToqSlnJMVRQmhYY9we8UpQMKHjy4V0hPjl1v0zyTEs6Qw/Haq7HPkh1kwds5bSOQ jXArOAnECpOT850NqXI5lJoRHacAzEBSTVD1CUp1gLYdFXjPjM6cJiDZo+bYNaAQ6H JGoi/mXF67cUwkrxdxos5vKiNjXPU/vRI39tUQCT3TyV8T+aF7HFba4PCsASHiy/K8 X14pGOEx9Ufcg== From: SJ Park To: Andrew Morton Cc: SJ Park , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 6/8] mm/damon/sysfs-schemes: use switch-case in add_scheme_filters() Date: Mon, 14 Sep 2026 07:23:23 -0700 Message-ID: <20260914142327.92510-7-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260914142327.92510-1-sj@kernel.org> References: <20260914142327.92510-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:46 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 563E247A0C0; Mon, 14 Sep 2026 14:23:38 +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=1789395820; cv=none; b=VXDk1BgZcwMnvsr9t/Ln1G/eAdhJyhB+koXac3E+hv3e4yV6l72cVCYOIOC5o/GYwGNNsuAjm20QkpLySO/XE+D4DfpCeq0ZlpzPQvIaCPbTW1RA6G++NpaCOD8ZqCeK/OPoG3EwAUmEIUdN9hVGT3iWhsyNjr3PAlk20LZmmzc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789395820; c=relaxed/simple; bh=S3b6wCMSIhA5OZ0fTX5hY3QoKyzxhQ3s8RJHucABZXw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hkkHmstopVRY5htVqAQ964I9IeFgrHG8W+h88HvtGd78/W+hgPp1HKb59SYrrweCHrMyC5cQs7Id+NXCeatkWkQsyGL9F4UubIZXow4eZdBrHZaQD/cWfnJOCUw/UgJ2SHUNuqqyQVM+ldtjIAPwLHo7nZPg+W3HJ9lJYdvFyTE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dh500tXi; 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="dh500tXi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6F3481F00899; Mon, 14 Sep 2026 14:23:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789395817; bh=nqfaQq4DYDAwDcS6eX/vnZ8ZZiveWwkFxlbgk1mGGIc=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=dh500tXimlxoBgg5rmkLqh2JXQwAtfrB2fcHhfvhYra2wqHmzL6zZ92B2oLiF2bsc uzfShF5jhQ4mZaR3Q5gRxbyoIwm896GC9ssfXY3VckSlL/3oq/5ySY8ttzU8XIPeTw imK4yl26UHt5hfSORx/4fWGJnlUA0QY6IoV0forPtiK2tbRqPVVItsTJpwqGNXZvD4 hupCQOCA43vaa9sqpeoPZMMxmLynbWnQcRdB3yBVl7x7sqv2pvDMwTfpnqVVu3/RvZ glMsKbsvjQePceor5rfYl+xzGxK6Eh/LtajRzUwTvwOGEEHYyxpqn2xM9aRDYuqyP+ GP4fpcCeegnuw== From: SJ Park To: Andrew Morton Cc: SJ Park , 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: [PATCH 7/8] mm/damon/core-kunit: extend damos_commit_filter_for() for wrong input Date: Mon, 14 Sep 2026 07:23:24 -0700 Message-ID: <20260914142327.92510-8-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260914142327.92510-1-sj@kernel.org> References: <20260914142327.92510-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:46 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 C99D947F76A; Mon, 14 Sep 2026 14:23:38 +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=1789395820; cv=none; b=Ikh0bP/wo7Q1HmQ1QYUCXIrMknss27V9ojFG/uRbhthjDbqkgn/PY/9ZWP4dW7p30vXRXsHllrinKTbSGuzMwpkfQXuWWk9EqJTrFRaDBwJ1H9SkEe5fF5zEyNqAl9s/SjIr/OR6QgtPURQ5/UcbE/fI+AD50VeNgpyTSU9Z/W4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789395820; c=relaxed/simple; bh=zKNBJKJMEE7iDlzCLwTQdJt35qvvUznZGcGFB4z2xBk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a2n0nHTac1AThrf2LtKdYF+52OxJkO2n1Ui3wU2pBsj3xDASpVc8U9jNZ922jHLSieFoSdSpsOd3rlcTcFudX8WS+WONaHGGY1eoy7ZelrIQzKyhErIRSVHkB7n7GSlTxE7quN0520zA90eWvvY1++3f/Z1sHeVSArWoYAGFyRc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QfbPjnCU; 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="QfbPjnCU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D9D851F00898; Mon, 14 Sep 2026 14:23:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789395818; bh=as3OPkNFsYYWKFBQO9tZASdaFQXU9TrMOPenfE/ek3g=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=QfbPjnCU+7FZv9NkV7ueIUM52aqYwMTjeAfgvF58Ws5kEex/XIBHYQog+p4kXhpZo Jr8AVptoounx//8OBjL4AvZZ8QKunrk1w2OQ3E/hpRr2Yu1aGHKCXyQD9+OiARcccp Fre97vt4S3P4ZH1aAnTqXJw+EFHK64DKtbwa8uC4szNMv36ls5U0u/e9Y01flpGLXQ Vwm0tQHVRlGbybAGU85NbUGCVmuBfJ3dmdytN1UYurJZQ2Zl1hhfctEvcTmFWdVuFU E7/IYXrHiX7a3qNFWpwNa6ysYEJilXwJMMOEYZkzh77c8LVOPXx3mk3mWOr6BeUbfm WbSDnmwPpcx8g== From: SJ Park To: Andrew Morton Cc: SJ Park , 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: [PATCH 8/8] mm/damon/core-kunit: test invalid damos filter commits Date: Mon, 14 Sep 2026 07:23:25 -0700 Message-ID: <20260914142327.92510-9-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260914142327.92510-1-sj@kernel.org> References: <20260914142327.92510-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