From mboxrd@z Thu Jan 1 00:00:00 1970 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 38B51C433FE for ; Fri, 14 Jan 2022 22:10:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C0E556B01A3; Fri, 14 Jan 2022 17:10:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BBD5E6B01A5; Fri, 14 Jan 2022 17:10:55 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AAC416B01A6; Fri, 14 Jan 2022 17:10:55 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay037.a.hostedemail.com [64.99.140.37]) by kanga.kvack.org (Postfix) with ESMTP id 9C9D06B01A3 for ; Fri, 14 Jan 2022 17:10:55 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 5B4AD2D8 for ; Fri, 14 Jan 2022 22:10:55 +0000 (UTC) X-FDA: 79030288470.01.FBA57BC Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf08.hostedemail.com (Postfix) with ESMTP id C950B160008 for ; Fri, 14 Jan 2022 22:10:54 +0000 (UTC) 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 sin.source.kernel.org (Postfix) with ESMTPS id 95460CE2384; Fri, 14 Jan 2022 22:10:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D7957C36AE9; Fri, 14 Jan 2022 22:10:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1642198251; bh=ldj3WX+CtmHXViybAkVKj1BnaVhm96z7FxJvSl8RpVk=; h=Date:From:To:Subject:In-Reply-To:From; b=DWzsDz0IJtlWEFLEOr6KneXtbQqPjm4cOLDkmCVGy+aWEOAV5hAK89CFKfcj42ZuE PL39hjWgrDQbW/cmOpsnfu76T9Jns+t3JpGAD3kiSzJtiVQ9+DR2oz99J2WF9E4p1D EmCNk51m9+vRxK3rmvjfRXWl0Op6SI4ewnHu0z7o= Date: Fri, 14 Jan 2022 14:10:50 -0800 From: Andrew Morton To: akpm@linux-foundation.org, linux-mm@kvack.org, mm-commits@vger.kernel.org, sj@kernel.org, torvalds@linux-foundation.org Subject: [patch 146/146] mm/damon: hide kernel pointer from tracepoint event Message-ID: <20220114221050.qcGC9jBnT%akpm@linux-foundation.org> In-Reply-To: <20220114140222.6b14f0061194d3200000c52d@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Stat-Signature: u59tjxhxjkmfk3d3tsjg57jdf5xyg3i4 Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=DWzsDz0I; dmarc=none; spf=pass (imf08.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: C950B160008 X-HE-Tag: 1642198254-466343 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: From: SeongJae Park Subject: mm/damon: hide kernel pointer from tracepoint event 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. Link: https://lkml.kernel.org/r/20211229131016.23641-5-sj@kernel.org Signed-off-by: SeongJae Park Signed-off-by: Andrew Morton --- include/trace/events/damon.h | 8 ++++---- mm/damon/core.c | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) --- a/include/trace/events/damon.h~mm-damon-hide-kernel-pointer-from-tracepoint-event +++ a/include/trace/events/damon.h @@ -11,10 +11,10 @@ TRACE_EVENT(damon_aggregated, - 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), - TP_ARGS(t, r, nr_regions), + TP_ARGS(t, target_id, r, nr_regions), TP_STRUCT__entry( __field(unsigned long, target_id) @@ -26,7 +26,7 @@ TRACE_EVENT(damon_aggregated, ), TP_fast_assign( - __entry->target_id = t->id; + __entry->target_id = target_id; __entry->nr_regions = nr_regions; __entry->start = r->ar.start; __entry->end = r->ar.end; --- a/mm/damon/core.c~mm-damon-hide-kernel-pointer-from-tracepoint-event +++ a/mm/damon/core.c @@ -514,15 +514,17 @@ static bool kdamond_aggregate_interval_p static void kdamond_reset_aggregated(struct damon_ctx *c) { struct damon_target *t; + unsigned int ti = 0; /* target's index */ damon_for_each_target(t, c) { struct damon_region *r; 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 = r->nr_accesses; r->nr_accesses = 0; } + ti++; } } _