Re: [RFC PATCH v2 2/4] mm/damon: Introduce DAMOS_QUOTA_HUGEPAGE auto tuning

From: Gutierrez Asier

Date: Mon May 25 2026 - 11:04:39 EST




On 5/23/2026 8:27 PM, SeongJae Park wrote:
> On Fri, 22 May 2026 14:55:16 +0000 <gutierrez.asier@xxxxxxxxxxxxxxxxxxx> wrote:
>
>> From: Asier Gutierrez <gutierrez.asier@xxxxxxxxxxxxxxxxxxx>
>>
>> Introduce DAMOS_QUOTA_HUGEPAGE auto tuning Add a new DAMOS quota goal
>
> I'd suggest to rename it to DAMOS_QUOTA_HUGEPAGE_BP for consistency.
>
> Also, you missed the ending period after 'tuning'.
>
>> metric to measure the amount of huge page consumption to total
>> anonymous memory consumption ratio.
>
> Why against anonymous memory only?
Well, that was my first approach. All the projects that I have done
recently were related to anonymous memory. I'll test it with total
THP user vs total memory consumption and see if everything works
in the same way.
>
>>
>> Signed-off-by: Asier Gutierrez <gutierrez.asier@xxxxxxxxxxxxxxxxxxx>
>> ---
>> include/linux/damon.h | 1 +
>> mm/damon/core.c | 15 +++++++++++++++
>> 2 files changed, 16 insertions(+)
>>
>> diff --git a/include/linux/damon.h b/include/linux/damon.h
>> index c7a31572689b..8e15a674e893 100644
>> --- a/include/linux/damon.h
>> +++ b/include/linux/damon.h
>> @@ -177,6 +177,7 @@ enum damos_quota_goal_metric {
>> DAMOS_QUOTA_ACTIVE_MEM_BP,
>> DAMOS_QUOTA_INACTIVE_MEM_BP,
>> DAMOS_QUOTA_NODE_ELIGIBLE_MEM_BP,
>> + DAMOS_QUOTA_HUGEPAGE,
>> NR_DAMOS_QUOTA_GOAL_METRICS,
>> };
>
> Before you drop RFC tag, please ensure to add kernel-doc comment for tyhe new
> value.
I will do it. Thanks for the reminder.
>>
>> diff --git a/mm/damon/core.c b/mm/damon/core.c
>> index 9f38deddcb30..1f1cf10aa241 100644
>> --- a/mm/damon/core.c
>> +++ b/mm/damon/core.c
>> @@ -2536,6 +2536,18 @@ static unsigned int damos_get_in_active_mem_bp(bool active_ratio)
>> return mult_frac(inactive, 10000, total);
>> }
>>
>> +/*
>> + * Returns anon hugepage memory to total anon memory use ratio.
>> + */
>> +static unsigned int damos_get_used_hugepage_mem_bp(void)
>> +{
>> + unsigned long used_hugepages, total_used;
>> +
>> + used_hugepages = global_node_page_state(NR_ANON_THPS);
>> + total_used = global_node_page_state(NR_ANON_MAPPED);
>> + return mult_frac(used_hugepages, 10000, total_used);
>
> So this function returns anon THP to total anon pages ratio. Why only anon
> THP? Also as I asked above, why only total anon?
>
>
> Thanks,
> SJ
>
> [...]
>

--
Asier Gutierrez
Huawei