From: Dev Jain <dev.jain@arm.com>
To: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
David Hildenbrand <david@redhat.com>
Cc: akpm@linux-foundation.org, ziy@nvidia.com,
baolin.wang@linux.alibaba.com, Liam.Howlett@oracle.com,
npache@redhat.com, ryan.roberts@arm.com, baohua@kernel.org,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/3] khugepaged: Optimize collapse_pte_mapped_thp() for large folios by PTE batching
Date: Tue, 15 Jul 2025 16:10:11 +0530 [thread overview]
Message-ID: <2d0c061c-df01-42dc-ba04-69d47d7516ce@arm.com> (raw)
In-Reply-To: <7ce82695-f2f6-4a9b-a512-422e9efa902c@lucifer.local>
On 15/07/25 3:32 pm, Lorenzo Stoakes wrote:
> On Tue, Jul 15, 2025 at 11:56:26AM +0200, David Hildenbrand wrote:
>>>>>>>> - if (nr_ptes) {
>>>>>>>> + if (nr_mapped_ptes) {
>>>>>>> I know it's ironic coming from me :P but I'm not sure why we need to churn this
>>>>>>> up by renaming?
>>>>>> Because nr_ptes is an existing variable and I need a new variable to make
>>>>>> the jump at the end of the PTE batch.
>>>>> I thought you eliminated nr_ptes as a variable here? Where else is it used?
>>>>>
>>>>> Oh how this code needs refactoring...
>>>> If we retain nr_ptes, then the two variables will be nr_ptes and nr_mapped_ptes,
>>>> which is confusing since the former is plain and the latter has a _mapped_ thingy
>>>> in it, so instead now we call them nr_batch_ptes and nr_mapped_ptes.
>>>>
>>> Sigh, this is still awful. But probably just existing awfulness. This whole
>>> thing needs a tent thrown over it and fumigation... but again not your fault :)
>>>
>>> I mean fine, this is fine then.
>> Probably best to be pragmatic here: as long as the educated reader
>> understands the code, all good. I hope I'll never have to explain it to my
>> daughters.
> :)
>
> To be crystal clear here - Dev - I am not asking you to refactor the existing
> mess, and obviously I concede your point on the issue raised here.
>
> Did you need to respin other things here? If not I can relook and give tags.
Yes, I will have to respin because of folio_pte_batch() changes from David and
have to add a simplification patch to this series authored by David, I was just
doing that and was reading the email thread to see if I didn't miss any review
comment and then I noticed I forgot to reply to the above point.
>
>> I know, I'm a perfectionist myself ;)
> I mean if I wanted perfection I'd have run screaming from the kernel right at
> the start :P
>
> But in general on the refactoring point - I think this code is hard to
> understand even for the informed, the endless nesting and nesting and levels of
> 'you just have to know what's happening' make it really easy to miss details
> here.
>
> What I'm saying is - we can improve on this, and really all I'm doing is
> todo++. Possibly even dave_todo++?? ;) Or could even be $<name here>_todo++ :P
>
> I find it impossible to not mention this when it seems apparent to me... force
> of habit :)
I personally suck at refactoring code - it is something I have been trying to get
better at. Now that I understand khugepaged a code a lot better, I have been
thinking for a long time to clean this file up, maybe someday I will gather
the courage to do that : )
>
> Cheers, Lorenzo
next prev parent reply other threads:[~2025-07-15 10:41 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-25 5:58 [PATCH v2 0/3] Optimizations for khugepaged Dev Jain
2025-06-25 5:58 ` [PATCH 1/3] khugepaged: Optimize __collapse_huge_page_copy_succeeded() by PTE batching Dev Jain
2025-06-25 11:14 ` David Hildenbrand
2025-06-25 11:19 ` Dev Jain
2025-06-25 12:14 ` Lorenzo Stoakes
2025-06-25 12:22 ` David Hildenbrand
2025-06-26 3:53 ` Dev Jain
2025-06-25 5:58 ` [PATCH v2 2/3] khugepaged: Optimize collapse_pte_mapped_thp() for large folios " Dev Jain
2025-06-25 13:11 ` Lorenzo Stoakes
2025-06-26 3:48 ` Dev Jain
2025-06-26 4:47 ` Lorenzo Stoakes
2025-06-26 4:54 ` Dev Jain
2025-07-15 6:34 ` Dev Jain
2025-07-15 9:43 ` Lorenzo Stoakes
2025-07-15 9:56 ` David Hildenbrand
2025-07-15 10:02 ` Lorenzo Stoakes
2025-07-15 10:40 ` Dev Jain [this message]
2025-07-15 11:13 ` Lorenzo Stoakes
2025-06-25 5:58 ` [PATCH v2 3/3] khugepaged: Reduce race probability between migration and khugepaged Dev Jain
2025-06-25 13:28 ` Lorenzo Stoakes
2025-06-26 3:52 ` Dev Jain
2025-06-26 4:57 ` Lorenzo Stoakes
2025-06-26 4:59 ` Dev Jain
2025-06-26 5:02 ` Lorenzo Stoakes
2025-06-26 5:04 ` Dev Jain
2025-06-26 5:06 ` Lorenzo Stoakes
2025-06-26 5:27 ` Dev Jain
2025-06-25 10:36 ` [PATCH v2 0/3] Optimizations for khugepaged 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=2d0c061c-df01-42dc-ba04-69d47d7516ce@arm.com \
--to=dev.jain@arm.com \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=david@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=npache@redhat.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 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.