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 1E8C8C83F0A for ; Wed, 9 Jul 2025 16:21:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9F1586B00C0; Wed, 9 Jul 2025 12:21:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9C9416B00C4; Wed, 9 Jul 2025 12:21:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8DED36B00C7; Wed, 9 Jul 2025 12:21:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 7B97F6B00C0 for ; Wed, 9 Jul 2025 12:21:30 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 2CD021D9102 for ; Wed, 9 Jul 2025 16:21:30 +0000 (UTC) X-FDA: 83645241540.20.769A039 Received: from relay.hostedemail.com (unirelay05 [10.200.18.68]) by imf26.hostedemail.com (Postfix) with ESMTP id 532E8140015 for ; Wed, 9 Jul 2025 16:21:28 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752078088; a=rsa-sha256; cv=none; b=rafN+UF9Gmg0F2fQS+EkwZqr2d0coMpLlm98t1GTsPbq8kLzBPetMtE4K2tcVPMQt7Yhsz fhz4RV/1qo4saGrDkqEI3j8CEiguo4pABh+TNG1KEURyaanRUdwXUzadYT5YIQJDosmjbG QA1wdOYpCq58ovBaNXpsViaEjMpQcpw= ARC-Authentication-Results: i=1; imf26.hostedemail.com; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752078088; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nPahYvgNvRvCWINv2iO5pX77f3jZqQrfUpU9lErkB9A=; b=axGlFFre0go1u9WXul1Bfi4nwtE0zTn3taxPl0iv28yhX6Iq/3nZp2rlpUPjEVQ8z7RDOC LfMmkhb0+w9A7Zwe+tZqmEYOxt9ddH+qXCYBN5mn/yJ4Gi4hcvNikzEqR425PPB2fZqaJh PZufR8mdeRTtqz7bPZsBrNWRLpdZ204= Received: from omf11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 04B2858876; Wed, 9 Jul 2025 16:21:26 +0000 (UTC) Received: from [HIDDEN] (Authenticated sender: rostedt@goodmis.org) by omf11.hostedemail.com (Postfix) with ESMTPA id D78A020029; Wed, 9 Jul 2025 16:21:24 +0000 (UTC) Date: Wed, 9 Jul 2025 12:21:23 -0400 From: Steven Rostedt To: SeongJae Park Cc: Andrew Morton , Masami Hiramatsu , Mathieu Desnoyers , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] mm/damon: add trace event for effective size quota Message-ID: <20250709122123.779c874f@batman.local.home> In-Reply-To: <20250704221408.38510-3-sj@kernel.org> References: <20250704221408.38510-1-sj@kernel.org> <20250704221408.38510-3-sj@kernel.org> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Session-Marker: 726F737465647440676F6F646D69732E6F7267 X-Session-ID: U2FsdGVkX1+J83NPMP8Sb/jo8DzLq42jn+04tnd7tQs= X-HE-Meta: U2FsdGVkX19yh07IWGJTt82fNF/ks4rwm7Vd04a3pMjNbEa9Iu2kCulF+w3I8TKkzOcC4LrKMfExorhkuneJ5aivcdQPGfaB6Gv4+YvVKYa2/plhI4vNpcQzOpfwvfwhDrczQIa6wsJd4+jOewKhbRkkpXCfLfONXlESW3UW1+31AQReitUvox9NrhHOAuaUTOQvYIIqS59/hfasvc0RbYsmz/pUa8MbHpoO4PXVx+Cjbbh2yrudjrxhbM532YhV5U8srTsOI8YRlh2VE6kzlDbTskCtxjbP0bl16FzcfvePsjdD6eMLnNMxZ4OHxl1BfdJMcHDeqkN0iaWxWdXTOI1aLdkYiVdr X-Rspamd-Server: rspam11 X-Rspam-User: X-Stat-Signature: iker433jmccbukownds1tzydxqe8fdqy X-HE-Tag-Orig: 1752078084-665881 X-Rspamd-Queue-Id: 532E8140015 X-HE-Tag: 1752078088-69447 X-HE-Meta: U2FsdGVkX18uNTATh4ywyQMsh42tuUI1oHR3LlAnepCLQKgvkwGIETJByVbOPWyTsUME4kqEtXT6afn9mQFceYRFVEX58NuGIXWfouiCj/7jf9rOL8eHM3uKNAb4y/EQxeanzfL+0h06TNokSpEkwrVL4DCLKjqHeA09/3Yu9bnPlEeFhUtBLr3+6R5LjzS024e3Lk5egKj9zwovp3UdvMe+JIp7j/SaRcWs3nq6qjpqKGe/rUfesQQY0SsdzsJNVegIYUbOXZ3ohyDnEVIk7rl3xwws8QOPfpzeTGcqf78C9f3YGqeJiuiOUMdbqVL7By9I8dE04o9SQ43Mggb6z10CqBKdxIiLti/WuZUEJgwQZ7s/SwJCHLkMRy5FWLhV7jHsgMg87wllgVEYWlPPySj3UN8wGk0D3kbuEoR50HzC6mVZtQ6UnQjTg8THU2zReJnEkxBMB6HCVRZqU6rhwrGilHOm8jDwDXVC//YE3T9Y5oJg+sbyIpG70IgzBBRA7rLRfB+zIjs8hmWkmEaW4m/d7iSsXUMn72gw8QUFvUQj7ev36rQg1ol+cUu6BvYo9DvvQSPrX1tRYtiyJgw+wl5+z16aNA77CBw+qQwvmsNeNFPdvVJNoi6baLnz0cZKzRiDfX+BsC+8PdaY3laU9M9s1jhyJVHZsjMgmxu3eMLGu5uEb7mlNkYGssK63nCjFBp9D11y0g6Vu3VjqnXAzAEhNiPOAnm9w/Az9V2nFG+fcaNng4L430g7o9btFiR7pUDuTjcutQoUthy2H0eStNOlpdCozUHp3ZqwX7yKXvFPg+5qLNYC3uZYK5PfFfWyglqEvKG7QfI2xvYsXGv/B0JTNZhbiW58y5eCjFK4pGpu7CcUcUoXi8w8Ce9xq3F1+Gg8vAPclNgjNwq093sBOtRSFGww2GUxpZb21uWK+qA= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, 4 Jul 2025 15:14:08 -0700 SeongJae Park wrote: > Aim-oriented DAMOS quota auto-tuning is an important and recommended > feature for DAMOS users. Add a trace event for the observability of the > tuned quota and tuning itself. > > Signed-off-by: SeongJae Park > --- > include/trace/events/damon.h | 26 ++++++++++++++++++++++++++ > mm/damon/core.c | 20 +++++++++++++++++++- > 2 files changed, 45 insertions(+), 1 deletion(-) > > diff --git a/include/trace/events/damon.h b/include/trace/events/damon.h > index 32c611076023..36b2cdf47dce 100644 > --- a/include/trace/events/damon.h > +++ b/include/trace/events/damon.h > @@ -9,6 +9,32 @@ > #include > #include > > +TRACE_EVENT_CONDITION(damos_esz, > + > + TP_PROTO(unsigned int context_idx, unsigned int scheme_idx, > + unsigned long esz, bool do_trace), > + > + TP_ARGS(context_idx, scheme_idx, esz, do_trace), > + > + TP_CONDITION(do_trace), Please explain to me why you are using a conditional here? > + > + TP_STRUCT__entry( > + __field(unsigned int, context_idx) > + __field(unsigned int, scheme_idx) > + __field(unsigned long, esz) > + ), > + > + TP_fast_assign( > + __entry->context_idx = context_idx; > + __entry->scheme_idx = scheme_idx; > + __entry->esz = esz; > + ), > + > + TP_printk("ctx_idx=%u scheme_idx=%u esz=%lu", > + __entry->context_idx, __entry->scheme_idx, > + __entry->esz) > +); > + > TRACE_EVENT_CONDITION(damos_before_apply, > > TP_PROTO(unsigned int context_idx, unsigned int scheme_idx, > diff --git a/mm/damon/core.c b/mm/damon/core.c > index 57a1ace4d10d..6019b8ec4bba 100644 > --- a/mm/damon/core.c > +++ b/mm/damon/core.c > @@ -2011,12 +2011,26 @@ static void damos_set_effective_quota(struct damos_quota *quota) > quota->esz = esz; > } > > +static void damos_trace_esz(struct damon_ctx *c, struct damos *s, > + struct damos_quota *quota) > +{ > + unsigned int cidx = 0, sidx; > + struct damos *siter; > + > + damon_for_each_scheme(siter, c) { > + if (siter == s) > + break; > + sidx++; > + } > + trace_damos_esz(cidx, sidx, quota->esz, true); It's set to true, so it's not even a conditional anymore. The compiler will likely optimize it out! -- Steve > +} > + > static void damos_adjust_quota(struct damon_ctx *c, struct damos *s) > { > struct damos_quota *quota = &s->quota; > struct damon_target *t; > struct damon_region *r; > - unsigned long cumulated_sz; > + unsigned long cumulated_sz, cached_esz; > unsigned int score, max_score = 0; > > if (!quota->ms && !quota->sz && list_empty("a->goals)) > @@ -2030,7 +2044,11 @@ static void damos_adjust_quota(struct damon_ctx *c, struct damos *s) > quota->total_charged_sz += quota->charged_sz; > quota->charged_from = jiffies; > quota->charged_sz = 0; > + if (trace_damos_esz_enabled()) > + cached_esz = quota->esz; > damos_set_effective_quota(quota); > + if (trace_damos_esz_enabled() && quota->esz != cached_esz) > + damos_trace_esz(c, s, quota); > } > > if (!c->ops.get_scheme_score)