From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: Dev Jain <dev.jain@arm.com>
Cc: David Hildenbrand <david@redhat.com>,
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 12:13:06 +0100 [thread overview]
Message-ID: <20ff4546-db78-49e2-8121-48d1bda429d5@lucifer.local> (raw)
In-Reply-To: <2d0c061c-df01-42dc-ba04-69d47d7516ce@arm.com>
On Tue, Jul 15, 2025 at 04:10:11PM +0530, Dev Jain wrote:
>
> 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.
Cool thanks :)
Will have a look on respin!
>
>
> >
> > > 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 11:13 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
2025-07-15 11:13 ` Lorenzo Stoakes [this message]
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=20ff4546-db78-49e2-8121-48d1bda429d5@lucifer.local \
--to=lorenzo.stoakes@oracle.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=dev.jain@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--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 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).