From: SeongJae Park <sj@kernel.org>
To: xiakaixu1987@gmail.com
Cc: sj@kernel.org, akpm@linux-foundation.org, damon@lists.linux.dev,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Kaixu Xia <kaixuxia@tencent.com>
Subject: Re: [PATCH v2] mm/damon: deduplicate damon_{reclaim,lru_sort}_apply_parameters()
Date: Tue, 20 Sep 2022 16:52:38 +0000 [thread overview]
Message-ID: <20220920165238.59328-1-sj@kernel.org> (raw)
In-Reply-To: <1663645461-21084-1-git-send-email-kaixuxia@tencent.com>
On Tue, 20 Sep 2022 11:44:21 +0800 xiakaixu1987@gmail.com wrote:
> From: Kaixu Xia <kaixuxia@tencent.com>
>
> The bodies of damon_{reclaim,lru_sort}_apply_parameters() contain
> duplicates. This commit add a common function
> damon_set_region_biggest_system_ram_default() to removes the
> duplicates.
>
> Signed-off-by: Kaixu Xia <kaixuxia@tencent.com>
> Suggested-by: SeongJae Park <sj@kernel.org>
> ---
> v2:
> -change the common function name and add kernel comment.
>
> include/linux/damon.h | 3 ++-
> mm/damon/core.c | 35 ++++++++++++++++++++++++++++++++++-
> mm/damon/lru_sort.c | 13 +++----------
> mm/damon/reclaim.c | 13 +++----------
> 4 files changed, 42 insertions(+), 22 deletions(-)
>
> diff --git a/include/linux/damon.h b/include/linux/damon.h
> index e7808a84675f..ed5470f50bab 100644
> --- a/include/linux/damon.h
> +++ b/include/linux/damon.h
> @@ -557,7 +557,8 @@ static inline bool damon_target_has_pid(const struct damon_ctx *ctx)
> int damon_start(struct damon_ctx **ctxs, int nr_ctxs, bool exclusive);
> int damon_stop(struct damon_ctx **ctxs, int nr_ctxs);
>
> -bool damon_find_biggest_system_ram(unsigned long *start, unsigned long *end);
> +int damon_set_region_biggest_system_ram_default(struct damon_target *t,
> + unsigned long *start, unsigned long *end);
>
> #endif /* CONFIG_DAMON */
>
> diff --git a/mm/damon/core.c b/mm/damon/core.c
> index 9c80c6eb00c2..9e96cb9fb5db 100644
> --- a/mm/damon/core.c
> +++ b/mm/damon/core.c
> @@ -1245,7 +1245,8 @@ static int walk_system_ram(struct resource *res, void *arg)
> * Find biggest 'System RAM' resource and store its start and end address in
> * @start and @end, respectively. If no System RAM is found, returns false.
> */
> -bool damon_find_biggest_system_ram(unsigned long *start, unsigned long *end)
> +static bool damon_find_biggest_system_ram(unsigned long *start,
> + unsigned long *end)
>
> {
> struct damon_system_ram_region arg = {};
> @@ -1259,6 +1260,38 @@ bool damon_find_biggest_system_ram(unsigned long *start, unsigned long *end)
> return true;
> }
>
> +/*
We also need to add one more asterisk here to make this a valid kerneldoc
comment.
> + * damon_set_region_biggest_system_ram_default() - Set the region of the given
> + * monitoring target as requested, or biggest 'System RAM'.
> + * @t: The monitoring target to set the region.
> + * @start: The pointer to the start address of the region.
> + * @end: The pointer to the end address of the region.
> + *
> + * This function sets the region of @t as requested by @start and @end. If the
> + * values of the two pointers are pointing to are zero, however, this function
> + * finds the biggest 'System RAM' resource and set the region to cover the
> + * resource. In the latter case, this function saves the start and end address
> + * of the resource in @start and @end, respectively.
> + *
> + * Return: 0 on success, negative error code otherwise.
> + */
> +int damon_set_region_biggest_system_ram_default(struct damon_target *t,
> + unsigned long *start, unsigned long *end)
> +{
> + struct damon_addr_range addr_range;
> +
> + if (*start > *end)
> + return -EINVAL;
> +
> + if (!*start && !*end &&
> + !damon_find_biggest_system_ram(start, end))
> + return -EINVAL;
> +
> + addr_range.start = *start;
> + addr_range.end = *end;
> + return damon_set_regions(t, &addr_range, 1);
> +}
> +
[...]
Thanks,
SJ
prev parent reply other threads:[~2022-09-20 16:52 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-20 3:44 [PATCH v2] mm/damon: deduplicate damon_{reclaim,lru_sort}_apply_parameters() xiakaixu1987
2022-09-20 16:53 ` [PATCH v3] " SeongJae Park
2022-09-20 16:43 ` [PATCH v2] " SeongJae Park
2022-09-21 3:29 ` Kaixu Xia
2022-09-20 16:52 ` SeongJae Park [this message]
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=20220920165238.59328-1-sj@kernel.org \
--to=sj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=damon@lists.linux.dev \
--cc=kaixuxia@tencent.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=xiakaixu1987@gmail.com \
/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.