From nobody Wed Jul 1 05:26:35 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 63537C433EF for ; Wed, 29 Dec 2021 13:10:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239260AbhL2NKd (ORCPT ); Wed, 29 Dec 2021 08:10:33 -0500 Received: from dfw.source.kernel.org ([139.178.84.217]:46734 "EHLO dfw.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238590AbhL2NKc (ORCPT ); Wed, 29 Dec 2021 08:10:32 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2BC42614AF for ; Wed, 29 Dec 2021 13:10:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36D96C36AEC; Wed, 29 Dec 2021 13:10:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1640783431; bh=kpBr7XACXxAFZN5kDwVDdUSWedkX+AtEw87rcFRtVeg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Tj7VsdtUIaRI0eXkrtNV5KFNQ7u0xol3+a8R1Ye3HbVHY2b07SCnHHQLotoY9ys93 9o3ovQr5KiP4Ckzo+Fe3Jin3EPc3qmGb8rg2FmyaU5sK8dqf6IbTeFB0MrVKnArAMz NOP6RjuLpyp1La+aaLkhDYoygde708hsCMMx1f9Bw+8sMMPd1DKoRo9FEq6dGSxhWQ WxEaCcV3LbrCYTmbcoGU7DIOIpjUuIgIM9xngCC1UXCq6HKM6Q1zWOKYVS7JeUIjID rgfysXxhRgzfYHTaJOiFPmOX/FyMHRD8nyks8+UCKeTwaPC4IiuCWjXJUTloG4ltxm YuXqBFAS/5QXA== From: SeongJae Park To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, SeongJae Park Subject: [PATCH 1/4] mm/damon/dbgfs: Remove a unnecessary variable Date: Wed, 29 Dec 2021 13:10:13 +0000 Message-Id: <20211229131016.23641-2-sj@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211229131016.23641-1-sj@kernel.org> References: <20211229131016.23641-1-sj@kernel.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This commit removes a unnecessarily used variable in dbgfs_target_ids_write(). Fixes: 4bc05954d007 ("mm/damon: implement a debugfs-based user space interf= ace") Signed-off-by: SeongJae Park --- mm/damon/dbgfs.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mm/damon/dbgfs.c b/mm/damon/dbgfs.c index 751c7b835684..5b899601e56c 100644 --- a/mm/damon/dbgfs.c +++ b/mm/damon/dbgfs.c @@ -364,7 +364,7 @@ static ssize_t dbgfs_target_ids_write(struct file *file, struct damon_ctx *ctx =3D file->private_data; struct damon_target *t, *next_t; bool id_is_pid =3D true; - char *kbuf, *nrs; + char *kbuf; unsigned long *targets; ssize_t nr_targets; ssize_t ret; @@ -374,14 +374,13 @@ static ssize_t dbgfs_target_ids_write(struct file *fi= le, if (IS_ERR(kbuf)) return PTR_ERR(kbuf); =20 - nrs =3D kbuf; if (!strncmp(kbuf, "paddr\n", count)) { id_is_pid =3D false; /* target id is meaningless here, but we set it just for fun */ scnprintf(kbuf, count, "42 "); } =20 - targets =3D str_to_target_ids(nrs, count, &nr_targets); + targets =3D str_to_target_ids(kbuf, count, &nr_targets); if (!targets) { ret =3D -ENOMEM; goto out; --=20 2.17.1 From nobody Wed Jul 1 05:26:35 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2B457C433EF for ; Wed, 29 Dec 2021 13:10:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239353AbhL2NKf (ORCPT ); Wed, 29 Dec 2021 08:10:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239173AbhL2NKd (ORCPT ); Wed, 29 Dec 2021 08:10:33 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2AF87C061574 for ; Wed, 29 Dec 2021 05:10:33 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id AEA4E61416 for ; Wed, 29 Dec 2021 13:10:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA207C36AEF; Wed, 29 Dec 2021 13:10:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1640783432; bh=J6ZMpaN2aHN46NtgTZHJCKdNW2n5fbVEwYw8XD91LhI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Qo+mEMLVm+mY10GwS6gaWaS4LWzHzZ5uYVH+x9k2MWivYxaDiOZS2m0iXl2j3LfSp Jq3SAt4k2l76kgapOiNPAgpsMTWqhhXgHqty7C/DMPq8l8xfk7jsPafg95sC5yl2sd eLlp2CsWIG1DKm+RPZkQ0A/Lc3QM8zqvGFv/1W3DVTBBqro5F4X8rOa8ibgw7azsVL jswaGK6sVWdlKQtFWxSGxHb14yc4KH/Tu2ulkRYJ0HEnwJNckuqVAgyexAMLtnNDVM nEpOzXzJKjkA14QuIx2qrJFQzBVDg+0SNV78wBRg2isf2xQiP/nt0Jzws5jkiyrd4M z3PZ96Qr5rGTA== From: SeongJae Park To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, SeongJae Park Subject: [PATCH 2/4] mm/damon/vaddr: Use pr_debug() for damon_va_three_regions() failure logging Date: Wed, 29 Dec 2021 13:10:14 +0000 Message-Id: <20211229131016.23641-3-sj@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211229131016.23641-1-sj@kernel.org> References: <20211229131016.23641-1-sj@kernel.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Failure of 'damon_va_three_regions()' is logged using 'pr_err()'. But, the function can fail in legal situations. To avoid making users be surprised and to keep the kernel clean, this commit makes the log to be printed using 'pr_debug()'. Signed-off-by: SeongJae Park --- mm/damon/vaddr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c index 9e213a1d60c9..7997e1c000ed 100644 --- a/mm/damon/vaddr.c +++ b/mm/damon/vaddr.c @@ -238,7 +238,7 @@ static void __damon_va_init_regions(struct damon_ctx *c= tx, int i; =20 if (damon_va_three_regions(t, regions)) { - pr_err("Failed to get three regions of target %lu\n", t->id); + pr_debug("Failed to get three regions of target %lu\n", t->id); return; } =20 --=20 2.17.1 From nobody Wed Jul 1 05:26:35 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B5A15C433FE for ; Wed, 29 Dec 2021 13:10:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239469AbhL2NKh (ORCPT ); Wed, 29 Dec 2021 08:10:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238590AbhL2NKd (ORCPT ); Wed, 29 Dec 2021 08:10:33 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A93D6C061574 for ; Wed, 29 Dec 2021 05:10:33 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 498D5614AF for ; Wed, 29 Dec 2021 13:10:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5916AC36AF0; Wed, 29 Dec 2021 13:10:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1640783432; bh=Tqc33p9GRUSgtrjHIQAmSM+HAYm5FH9FB0Llx5PwAqc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LPhi3v/kMUPXv96TQTW22OOl8z+JEHoDL1BPsEH8asi285cOnODkyp5IjDv8+9DPU Z2CB0VeK0gOamZH4joyCUv+w4HgJA/QhErfStJJ6rz3DQ4dF1DPEkAWcUU+meSEbnX iKEc0CYSIqe3NX6G0S8GxwF6BurG7ASPRlyekHHB8rXSrVzxO8vmykLeJWzNSUobTU lGHFBM3KMTj9wKKyZXPb4LJmeMh2lL9jnJPjl7QWbLrvcDcc5SIP5xzYrFzUnmdmzH KALCME/O8ZfLPh48LfI5bC/2+oAj5Y7uHSsBMMLzDfmpuxjO/e5QwBQPL0U9cZORfj VW9fkQv3VY+Ug== From: SeongJae Park To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, SeongJae Park Subject: [PATCH 3/4] mm/damon/vaddr: Hide kernel pointer from damon_va_three_regions() failure log Date: Wed, 29 Dec 2021 13:10:15 +0000 Message-Id: <20211229131016.23641-4-sj@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211229131016.23641-1-sj@kernel.org> References: <20211229131016.23641-1-sj@kernel.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The failure log message for 'damon_va_three_regions()' prints the target id, which is a 'struct pid' pointer in the case. To avoid exposing the kernel pointer via the log, this commit makes the log to use the index of the target in the context's targets list instead. Signed-off-by: SeongJae Park --- mm/damon/vaddr.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c index 7997e1c000ed..73ee9719f8ba 100644 --- a/mm/damon/vaddr.c +++ b/mm/damon/vaddr.c @@ -232,13 +232,19 @@ static int damon_va_three_regions(struct damon_target= *t, static void __damon_va_init_regions(struct damon_ctx *ctx, struct damon_target *t) { + struct damon_target *ti; struct damon_region *r; struct damon_addr_range regions[3]; unsigned long sz =3D 0, nr_pieces; - int i; + int i, tidx =3D 0; =20 if (damon_va_three_regions(t, regions)) { - pr_debug("Failed to get three regions of target %lu\n", t->id); + damon_for_each_target(ti, ctx) { + if (ti =3D=3D t) + break; + tidx++; + } + pr_debug("Failed to get three regions of %dth target\n", tidx); return; } =20 --=20 2.17.1 From nobody Wed Jul 1 05:26:35 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D5267C4332F for ; Wed, 29 Dec 2021 13:10:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239600AbhL2NKl (ORCPT ); Wed, 29 Dec 2021 08:10:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239363AbhL2NKg (ORCPT ); Wed, 29 Dec 2021 08:10:36 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD32EC061574 for ; Wed, 29 Dec 2021 05:10:35 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 88DA1B81903 for ; Wed, 29 Dec 2021 13:10:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC33AC36AE7; Wed, 29 Dec 2021 13:10:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1640783433; bh=VQ2B0wuDXmafjk9e5koIOksR1NIA/USY11VBWynEVR8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ISW9lcpSNaDv/3bwMyPO1VeTwaF+UMTxb6hwMRvRmELcy4CerL62kExmERH12vaP1 m1IxgP3ZCiLxmQ3DLNRhYe3Dtf4pQcZhS2boyvENsX2Xr+2dDaMiRbzwtaUZ38BhdM gBiJ/FjQ4/CoME6iX5CU7zVg2PeYNCig3CnNfJ7k1tFBMp7D9iMl+e5SA2fzeBJeOE MnW7XzTwQU2nTv40sAIQtSlmG9BzzS0y9jTF/WxkbdEKvMp9wjGD2i2yXqflZMt33H wMhHs77LYPeVx4ONh2pwINhUJ+34FPaSws6noxeeM6V4nYvw3WXDZFEzXCoNwxx4K0 fwThJsPGpMW2g== From: SeongJae Park To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, SeongJae Park Subject: [PATCH 4/4] mm/damon: Hide kernel pointer from tracepoint event Date: Wed, 29 Dec 2021 13:10:16 +0000 Message-Id: <20211229131016.23641-5-sj@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211229131016.23641-1-sj@kernel.org> References: <20211229131016.23641-1-sj@kernel.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" DAMON's virtual address spaces monitoring primitive uses 'struct pid *' of the target process as its monitoring target id. The kernel address is exposed as-is to the user space via the DAMON tracepoint, 'damon_aggregated'. Though primarily only privileged users are allowed to access that, it would be better to avoid unnecessarily exposing kernel pointers so. Because the trace result is only required to be able to distinguish each target, we aren't need to use the pointer as-is. This commit makes the tracepoint to use the index of the target in the context's targets list as its id in the tracepoint, to hide the kernel space address. Signed-off-by: SeongJae Park --- include/trace/events/damon.h | 8 ++++---- mm/damon/core.c | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/include/trace/events/damon.h b/include/trace/events/damon.h index 99ffa601e351..c79f1d4c39af 100644 --- a/include/trace/events/damon.h +++ b/include/trace/events/damon.h @@ -11,10 +11,10 @@ =20 TRACE_EVENT(damon_aggregated, =20 - TP_PROTO(struct damon_target *t, struct damon_region *r, - unsigned int nr_regions), + TP_PROTO(struct damon_target *t, unsigned int target_id, + struct damon_region *r, unsigned int nr_regions), =20 - TP_ARGS(t, r, nr_regions), + TP_ARGS(t, target_id, r, nr_regions), =20 TP_STRUCT__entry( __field(unsigned long, target_id) @@ -26,7 +26,7 @@ TRACE_EVENT(damon_aggregated, ), =20 TP_fast_assign( - __entry->target_id =3D t->id; + __entry->target_id =3D target_id; __entry->nr_regions =3D nr_regions; __entry->start =3D r->ar.start; __entry->end =3D r->ar.end; diff --git a/mm/damon/core.c b/mm/damon/core.c index 6482d510dcbe..1dd153c31c9e 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -514,15 +514,17 @@ static bool kdamond_aggregate_interval_passed(struct = damon_ctx *ctx) static void kdamond_reset_aggregated(struct damon_ctx *c) { struct damon_target *t; + unsigned int ti =3D 0; /* target's index */ =20 damon_for_each_target(t, c) { struct damon_region *r; =20 damon_for_each_region(r, t) { - trace_damon_aggregated(t, r, damon_nr_regions(t)); + trace_damon_aggregated(t, ti, r, damon_nr_regions(t)); r->last_nr_accesses =3D r->nr_accesses; r->nr_accesses =3D 0; } + ti++; } } =20 --=20 2.17.1