From: SeongJae Park <sj@kernel.org>
To: Joshua Hahn <joshua.hahnjy@gmail.com>
Cc: SeongJae Park <sj@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
damon@lists.linux.dev, kernel-team@meta.com,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 3/6] mm/damon/lru_sort: use param_ctx correctly
Date: Mon, 15 Sep 2025 11:43:06 -0700 [thread overview]
Message-ID: <20250915184306.110418-1-sj@kernel.org> (raw)
In-Reply-To: <20250915150548.1486984-1-joshua.hahnjy@gmail.com>
On Mon, 15 Sep 2025 08:05:47 -0700 Joshua Hahn <joshua.hahnjy@gmail.com> wrote:
> On Sun, 14 Sep 2025 18:58:04 -0700 SeongJae Park <sj@kernel.org> wrote:
>
> > damon_lru_sort_apply_parameters() allocates a new DAMON context, stages
> > user-specified DAMON parameters on it, and commits to running DAMON
> > context at once, using damon_commit_ctx(). The code is, however,
> > directly updating the monitoring attributes of the running context. This
> > doesn't cause a real user problem but apparently this is an
> > unintentional mistake that can cause code review confusions and future
> > real problems. Fix the wrong use of the parameter context.
>
> Hi SJ,
>
> Thank you for the patch! I am a little bit confused by the behavior in
> damon_lru_sort_apply_parameters. I was hoping that you could help me understand : -)
Thank you for sharing this Joshua!
> In particular, I think that this patch fixes two possible user visible errors.
>
> My understanding is that we want to make changes to the param_ctx first,
> validate the changes, and commit these changes to the global ctx struct at the
> end. In the middle in the errors, we can abort the operation without committing,
> and ctx will remain unchanged.
>
> So to me, it does seem like the current code could lead to some visible effects
> from the user's perspective (error-handling case).
damon_set_attrs() has its own parameters validation. If the validation fails,
it returns an error. damon_commit_ctx()'s internal validation for damon_attrs
parameters also depend on the validsation of damon_set_attrs(). If the given
parameter is invalid, damon_set_attrs() will return an error without committing
the change, so there should be no user-visible behavioral difference.
>
> Also, I am a bit confused by how the commit is currently called. We have
> err = damon_commit_ctx(ctx, param_ctx), where the first argument is the
> destination and the second argument is the source. There is a bit of a mismatch
> because in the current code we have the following:
>
> +------------------------------------------------+
> | ctx param_ctx |
> +------------------------------------------------+
> | New &damon_lru_sort_mon_attrs |
> | New scheme |
> | attrs overwritten to NULL <-- |
> | scheme rewritten to new scheme <-- |
> +------------------------------------------------+
>
> So in particular, the global ctx will never have the correct attrs pre-patch,
> since it will always be rewritten by param_ctx, which never had its attrs
> initialized.
>
> I hope this makes sense : -) All of this is just to say that this patch does
> more than just improve review confusions -- I think there at least two errors
> that this fixes for the user. So perhaps a more descriptive commit will be
> helpful in the future, since we are also adding a fixes tag?
Makes sense, thank you for finding this Joshua! I will send v2 of this patch
with updated commit message!
>
> Thank you again for the patch, SJ! Feel free to add:
> Reviewed-by: Joshua Hahn <joshua.hahnjy@gmail.com>
Thank you!
Thanks,
SJ
[...]
next prev parent reply other threads:[~2025-09-15 18:43 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-15 1:58 [PATCH 0/6] mm/damon: misc fixups and improvements for 6.18 SeongJae Park
2025-09-15 1:58 ` [PATCH 1/6] mm/damon/core: reset age if nr_accesses changes between non-zero and zero SeongJae Park
2025-09-15 14:51 ` Joshua Hahn
2025-09-15 18:26 ` SeongJae Park
2025-09-16 3:52 ` Andrew Morton
2025-09-15 1:58 ` [PATCH 2/6] mm/damon/core: set effective quota on first charge window SeongJae Park
2025-09-15 1:58 ` [PATCH 3/6] mm/damon/lru_sort: use param_ctx correctly SeongJae Park
2025-09-15 15:05 ` Joshua Hahn
2025-09-15 18:43 ` SeongJae Park [this message]
2025-09-16 3:04 ` SeongJae Park
2025-09-15 1:58 ` [PATCH 4/6] Docs/mm/damon/maintainer-profile: update community meetup for reservation requirements SeongJae Park
2025-09-15 15:07 ` Joshua Hahn
2025-09-15 18:44 ` SeongJae Park
2025-09-15 1:58 ` [PATCH 5/6] Docs/admin-guide/mm/damon/start: add --target_pid to DAMOS example command SeongJae Park
2025-09-15 1:58 ` [PATCH 6/6] MAINTAINERS: rename DAMON section SeongJae Park
2025-09-15 15:08 ` [PATCH 0/6] mm/damon: misc fixups and improvements for 6.18 Joshua Hahn
2025-09-15 15:25 ` Joanne Koong
2025-09-15 15:28 ` Joshua Hahn
2025-09-15 18:06 ` SeongJae Park
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250915184306.110418-1-sj@kernel.org \
--to=sj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=damon@lists.linux.dev \
--cc=joshua.hahnjy@gmail.com \
--cc=kernel-team@meta.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.