[PATCH v4 2/6] mm/huge_memory: remove after_split label in __split_unmapped_folio().

Zi Yan posted 6 patches 2 months, 2 weeks ago
There is a newer version of this series
[PATCH v4 2/6] mm/huge_memory: remove after_split label in __split_unmapped_folio().
Posted by Zi Yan 2 months, 2 weeks ago
Checking stop_split instead to avoid the goto statement.

Signed-off-by: Zi Yan <ziy@nvidia.com>
---
 mm/huge_memory.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 63eebca07628..e01359008b13 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -3463,18 +3463,18 @@ static int __split_unmapped_folio(struct folio *folio, int new_order,
 				if (xas_error(xas)) {
 					ret = xas_error(xas);
 					stop_split = true;
-					goto after_split;
 				}
 			}
 		}
 
-		folio_split_memcg_refs(folio, old_order, split_order);
-		split_page_owner(&folio->page, old_order, split_order);
-		pgalloc_tag_split(folio, old_order, split_order);
+		if (!stop_split) {
+			folio_split_memcg_refs(folio, old_order, split_order);
+			split_page_owner(&folio->page, old_order, split_order);
+			pgalloc_tag_split(folio, old_order, split_order);
 
-		__split_folio_to_order(folio, old_order, split_order);
+			__split_folio_to_order(folio, old_order, split_order);
+		}
 
-after_split:
 		/*
 		 * Iterate through after-split folios and update folio stats.
 		 * But in buddy allocator like split, the folio
-- 
2.47.2
Re: [PATCH v4 2/6] mm/huge_memory: remove after_split label in __split_unmapped_folio().
Posted by Lorenzo Stoakes 2 months, 2 weeks ago
On Thu, Jul 17, 2025 at 10:29:56PM -0400, Zi Yan wrote:
> Checking stop_split instead to avoid the goto statement.
>
> Signed-off-by: Zi Yan <ziy@nvidia.com

Thanks, nice + clear!

Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>

> ---
>  mm/huge_memory.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index 63eebca07628..e01359008b13 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -3463,18 +3463,18 @@ static int __split_unmapped_folio(struct folio *folio, int new_order,
>  				if (xas_error(xas)) {
>  					ret = xas_error(xas);
>  					stop_split = true;
> -					goto after_split;
>  				}
>  			}
>  		}
>
> -		folio_split_memcg_refs(folio, old_order, split_order);
> -		split_page_owner(&folio->page, old_order, split_order);
> -		pgalloc_tag_split(folio, old_order, split_order);
> +		if (!stop_split) {
> +			folio_split_memcg_refs(folio, old_order, split_order);
> +			split_page_owner(&folio->page, old_order, split_order);
> +			pgalloc_tag_split(folio, old_order, split_order);
>
> -		__split_folio_to_order(folio, old_order, split_order);
> +			__split_folio_to_order(folio, old_order, split_order);
> +		}
>
> -after_split:
>  		/*
>  		 * Iterate through after-split folios and update folio stats.
>  		 * But in buddy allocator like split, the folio
> --
> 2.47.2
>
Re: [PATCH v4 2/6] mm/huge_memory: remove after_split label in __split_unmapped_folio().
Posted by David Hildenbrand 2 months, 2 weeks ago
On 18.07.25 04:29, Zi Yan wrote:
> Checking stop_split instead to avoid the goto statement.
> 
> Signed-off-by: Zi Yan <ziy@nvidia.com>
> ---

Acked-by: David Hildenbrand <david@redhat.com>

-- 
Cheers,

David / dhildenb