[PATCH] mm/hugetlb: use hugetlb_vmemmap_optimizable() in boolean contexts

Kaitao Cheng posted 1 patch 1 month ago
mm/hugetlb.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] mm/hugetlb: use hugetlb_vmemmap_optimizable() in boolean contexts
Posted by Kaitao Cheng 1 month ago
From: Kaitao Cheng <chengkaitao@kylinos.cn>

The two boot-time sites in hugetlb_hstate_alloc_pages_onenode() and
hugetlb_pages_alloc_boot_node() only need to know whether HVO is
applicable, not the exact optimizable size. Switch them from
hugetlb_vmemmap_optimizable_size() to hugetlb_vmemmap_optimizable()
to make intent explicit.

No functional change intended.

Signed-off-by: Kaitao Cheng <chengkaitao@kylinos.cn>
---
 mm/hugetlb.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index a03a75fd7fa8..885f721999e6 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -3416,7 +3416,7 @@ static void __init hugetlb_hstate_alloc_pages_onenode(struct hstate *h, int nid)
 			folio = only_alloc_fresh_hugetlb_folio(h, gfp_mask, nid,
 					&node_states[N_MEMORY], NULL);
 			if (!folio && !list_empty(&folio_list) &&
-			    hugetlb_vmemmap_optimizable_size(h)) {
+			    hugetlb_vmemmap_optimizable(h)) {
 				prep_and_add_allocated_folios(h, &folio_list);
 				INIT_LIST_HEAD(&folio_list);
 				folio = only_alloc_fresh_hugetlb_folio(h, gfp_mask, nid,
@@ -3485,7 +3485,7 @@ static void __init hugetlb_pages_alloc_boot_node(unsigned long start, unsigned l
 	for (i = 0; i < num; ++i) {
 		struct folio *folio;
 
-		if (hugetlb_vmemmap_optimizable_size(h) &&
+		if (hugetlb_vmemmap_optimizable(h) &&
 		    (si_mem_available() == 0) && !list_empty(&folio_list)) {
 			prep_and_add_allocated_folios(h, &folio_list);
 			INIT_LIST_HEAD(&folio_list);
-- 
2.50.1 (Apple Git-155)
Re: [PATCH] mm/hugetlb: use hugetlb_vmemmap_optimizable() in boolean contexts
Posted by Muchun Song 1 month ago

> On Aug 24, 2026, at 23:16, Kaitao Cheng <kaitao.cheng@linux.dev> wrote:
> 
> From: Kaitao Cheng <chengkaitao@kylinos.cn>
> 
> The two boot-time sites in hugetlb_hstate_alloc_pages_onenode() and
> hugetlb_pages_alloc_boot_node() only need to know whether HVO is
> applicable, not the exact optimizable size. Switch them from
> hugetlb_vmemmap_optimizable_size() to hugetlb_vmemmap_optimizable()
> to make intent explicit.
> 
> No functional change intended.
> 
> Signed-off-by: Kaitao Cheng <chengkaitao@kylinos.cn>

Reviewed-by: Muchun Song <muchun.song@linux.dev>

Thanks.
Re: [PATCH] mm/hugetlb: use hugetlb_vmemmap_optimizable() in boolean contexts
Posted by Joshua Hahn 1 month ago
On Mon, 24 Aug 2026 23:16:55 +0800 Kaitao Cheng <kaitao.cheng@linux.dev> wrote:

> From: Kaitao Cheng <chengkaitao@kylinos.cn>
> 
> The two boot-time sites in hugetlb_hstate_alloc_pages_onenode() and
> hugetlb_pages_alloc_boot_node() only need to know whether HVO is
> applicable, not the exact optimizable size. Switch them from
> hugetlb_vmemmap_optimizable_size() to hugetlb_vmemmap_optimizable()
> to make intent explicit.

Hi Kaitao, thank you for the patch.

I think the changes look good. hugetlb_vmemmap_optimizable is just a
oneliner that checks hugetlb_vmemmap_optimizable_size != 0 anyways
so this change seems clean with no side effects.

Notably this leaves the only user of hugetlb_vmemmap_optimizable_size
an inittimepr_info statement. Just thought I would note that here.

Have a great day!

Reviewed-by: Joshua hahn <joshua.hahnjy@gmail.com>

> No functional change intended.
> 
> Signed-off-by: Kaitao Cheng <chengkaitao@kylinos.cn>
> ---
>  mm/hugetlb.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> index a03a75fd7fa8..885f721999e6 100644
> --- a/mm/hugetlb.c
> +++ b/mm/hugetlb.c
> @@ -3416,7 +3416,7 @@ static void __init hugetlb_hstate_alloc_pages_onenode(struct hstate *h, int nid)
>  			folio = only_alloc_fresh_hugetlb_folio(h, gfp_mask, nid,
>  					&node_states[N_MEMORY], NULL);
>  			if (!folio && !list_empty(&folio_list) &&
> -			    hugetlb_vmemmap_optimizable_size(h)) {
> +			    hugetlb_vmemmap_optimizable(h)) {
>  				prep_and_add_allocated_folios(h, &folio_list);
>  				INIT_LIST_HEAD(&folio_list);
>  				folio = only_alloc_fresh_hugetlb_folio(h, gfp_mask, nid,
> @@ -3485,7 +3485,7 @@ static void __init hugetlb_pages_alloc_boot_node(unsigned long start, unsigned l
>  	for (i = 0; i < num; ++i) {
>  		struct folio *folio;
>  
> -		if (hugetlb_vmemmap_optimizable_size(h) &&
> +		if (hugetlb_vmemmap_optimizable(h) &&
>  		    (si_mem_available() == 0) && !list_empty(&folio_list)) {
>  			prep_and_add_allocated_folios(h, &folio_list);
>  			INIT_LIST_HEAD(&folio_list);
> -- 
> 2.50.1 (Apple Git-155)
> 
>