From: David Hildenbrand <david@redhat.com>
To: Zi Yan <ziy@nvidia.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Wei Yang <richard.weiyang@gmail.com>,
	akpm@linux-foundation.org, baolin.wang@linux.alibaba.com,
	Liam.Howlett@oracle.com, npache@redhat.com, ryan.roberts@arm.com,
	dev.jain@arm.com, baohua@kernel.org, lance.yang@linux.dev,
	linux-mm@kvack.org
Subject: Re: [Patch v2 2/2] mm/huge_memory: Optimize and simplify __split_unmapped_folio() logic
Date: Fri, 17 Oct 2025 16:45:17 +0200	[thread overview]
Message-ID: <d0a2c81b-a0e0-4457-b355-2363f30ecfb8@redhat.com> (raw)
In-Reply-To: <154924ED-0CD0-458E-B760-F9F0A92CDC89@nvidia.com>
On 17.10.25 16:26, Zi Yan wrote:
> On 17 Oct 2025, at 5:44, Lorenzo Stoakes wrote:
> 
>> On Thu, Oct 16, 2025 at 12:46:13AM +0000, Wei Yang wrote:
>>> Existing __split_unmapped_folio() code splits the given folio and update
>>> stats, but it is complicated to understand.
>>>
>>> After simplification, __split_unmapped_folio() directly calculate and
>>> update the folio statistics upon a successful split:
>>>
>>> * All resulting folios are @split_order.
>>>
>>> * The number of new folios are calculated directly from @old_order
>>>    and @split_order.
>>>
>>> * The folio for the next split is identified as the one containing
>>>    @split_at.
>>>
>>> * An xas_try_split() error is returned directly without worrying
>>>    about stats updates.
>>
>> You seem to be doing two things at once, a big refactoring where you move stuff
>> about AND changing functionality.
> 
> No function change is done in this patchset. The wording might be
> confusing here, it should be read like:
> 
> After simplification, __split_unmapped_folio() directly calculate and
> update the folio statistics upon a successful split, so An xas_try_split()
> error is returned directly without worrying about stats updates.
> 
> David suggested a change[1] to make it clear:
> Stats fixup is no longer needed for an xas_try_split() error,
> since we now update the stats only after a successful split.
> 
> 
> [1] https://lore.kernel.org/linux-mm/518dedb8-d379-47c3-a4c1-f4afc789f1b4@redhat.com/
> 
>>
>> Can we split this out please? It makes review so much harder.
> 
> I asked Wei to use a single patch for this change, since the original
> code was complicated due to the initial implementation. After my
> recent change (first commit 6c7de9c83)[1], __split_unmmaped_folio()
> can be simplified like Wei did here.
I think it was too much split, agreed.
This patch was a bit hard for me to review, not sure if there would have 
been a better way to split some stuff out more logically.
Most changes just complicated way.
Not sure if splitting out the stats update change or the calculation of 
the number of folios could have been easily done.
-- 
Cheers
David / dhildenb
next prev parent reply	other threads:[~2025-10-17 14:45 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-16  0:46 [Patch v2 0/2] mm/huge_memory: cleanup __split_unmapped_folio() Wei Yang
2025-10-16  0:46 ` [Patch v2 1/2] mm/huge_memory: cache folio attribute in __split_unmapped_folio() Wei Yang
2025-10-16  1:34   ` Barry Song
2025-10-16 20:01   ` David Hildenbrand
2025-10-17  9:46   ` Lorenzo Stoakes
2025-10-19  7:51     ` Wei Yang
2025-10-16  0:46 ` [Patch v2 2/2] mm/huge_memory: Optimize and simplify __split_unmapped_folio() logic Wei Yang
2025-10-16  1:25   ` wang lian
2025-10-16 20:10   ` David Hildenbrand
2025-10-16 20:22     ` Zi Yan
2025-10-16 20:55       ` David Hildenbrand
2025-10-16 20:56         ` Zi Yan
2025-10-17  0:55   ` Wei Yang
2025-10-17  9:44   ` Lorenzo Stoakes
2025-10-17 14:26     ` Zi Yan
2025-10-17 14:29       ` Zi Yan
2025-10-17 14:44       ` Lorenzo Stoakes
2025-10-17 14:45       ` David Hildenbrand [this message]
2025-10-17 14:55         ` Lorenzo Stoakes
2025-10-17 17:24           ` Zi Yan
2025-10-20 14:03             ` Lorenzo Stoakes
2025-10-20 14:28               ` Zi Yan
2025-10-21  0:30               ` Wei Yang
2025-10-21  9:17                 ` Lorenzo Stoakes
2025-10-19  8:00           ` Wei Yang
2025-10-20 11:55             ` Lorenzo Stoakes
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=d0a2c81b-a0e0-4457-b355-2363f30ecfb8@redhat.com \
    --to=david@redhat.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=dev.jain@arm.com \
    --cc=lance.yang@linux.dev \
    --cc=linux-mm@kvack.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=npache@redhat.com \
    --cc=richard.weiyang@gmail.com \
    --cc=ryan.roberts@arm.com \
    --cc=ziy@nvidia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).