All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lance Yang <lance.yang@linux.dev>
To: Vernon Yang <vernon2gm@gmail.com>,
	"David Hildenbrand (Arm)" <david@kernel.org>,
	Dev Jain <dev.jain@arm.com>
Cc: akpm@linux-foundation.org, lorenzo.stoakes@oracle.com,
	ziy@nvidia.com, baohua@kernel.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	Vernon Yang <yanglincheng@kylinos.cn>
Subject: Re: [PATCH mm-new v6 2/5] mm: khugepaged: refine scan progress number
Date: Fri, 6 Feb 2026 21:52:28 +0800	[thread overview]
Message-ID: <2d2eff81-4f7d-41df-8c56-12a050ffb60c@linux.dev> (raw)
In-Reply-To: <6zltgzs24wpypzu36ldwgtzilhv2z3ofuu45azp5u45huiwqvj@6jhhp5r24po6>



On 2026/2/6 19:12, Vernon Yang wrote:
> On Fri, Feb 06, 2026 at 10:02:48AM +0100, David Hildenbrand (Arm) wrote:
>> On 2/5/26 15:25, Dev Jain wrote:
>>>
>>> On 05/02/26 5:41 pm, David Hildenbrand (arm) wrote:
>>>> On 2/5/26 07:08, Vernon Yang wrote:
>>>>> On Thu, Feb 5, 2026 at 5:35 AM David Hildenbrand (arm)
>>>>> <david@kernel.org> wrote:
>>>>>
>>>>> I guess, your meaning is "min(_pte - pte + 1, HPAGE_PMD_NR)", not max().
>>>>
>>>> Yes!
>>>>
>>>>>
>>>>>
>>>>> I'm also worried that the compiler can't optimize this since the body of
>>>>> the loop is complex, as with Dev's opinion [1].
>>>>
>>>> Why do we even have to optimize this? :)
>>>>
>>>> Premature ... ? :)
>>>
>>>
>>> I mean .... we don't, but the alternate is a one liner using max().
>>
>> I'm fine with the max(), but it still seems like adding complexity to
>> optimize something that is nowhere prove to really be a problem.
> 
> Hi David, Dev,
> 
> I use "*cur_progress += 1" at the beginning of the loop, the compiler
> optimize that. Assembly as follows:
> 
> 60c1:	4d 29 ca        sub    %r9,%r10		// r10 is _pte, r9 is pte, r10 = _pte - pte
> 60c4:	b8 00 02 00 00  mov    $0x200,%eax	// eax = HPAGE_PMD_NR
> 60c9:	44 89 5c 24 10  mov    %r11d,0x10(%rsp)	//
> 60ce:	49 c1 fa 03     sar    $0x3,%r10	//
> 60d2:	49 83 c2 01     add    $0x1,%r10	// r10 += 1
> 60d6:	49 39 c2        cmp    %rax,%r10	// r10 = min(r10, eax)
> 60d9:	4c 0f 4f d0     cmovg  %rax,%r10	//
> 60dd:	44 89 55 00     mov    %r10d,0x0(%rbp)	// *cur_progress = r10
> 
> To make the code simpler, Let us use "*cur_progress += 1".

Cool! Compiler did the right thing and the heavy lifting after all - we get
to keep it simple :p



  reply	other threads:[~2026-02-06 13:52 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-01 12:25 [PATCH mm-new v6 0/5] Improve khugepaged scan logic Vernon Yang
2026-02-01 12:25 ` [PATCH mm-new v6 1/5] mm: khugepaged: add trace_mm_khugepaged_scan event Vernon Yang
2026-02-01 12:25 ` [PATCH mm-new v6 2/5] mm: khugepaged: refine scan progress number Vernon Yang
2026-02-04 21:35   ` David Hildenbrand (arm)
2026-02-05  6:08     ` Vernon Yang
2026-02-05 12:07       ` Dev Jain
2026-02-05 12:28         ` David Hildenbrand (Arm)
2026-02-05 12:11       ` David Hildenbrand (arm)
2026-02-05 14:25         ` Dev Jain
2026-02-05 14:30           ` Dev Jain
2026-02-06  9:03             ` David Hildenbrand (Arm)
2026-02-06  9:02           ` David Hildenbrand (Arm)
2026-02-06 10:00             ` Dev Jain
2026-02-06 11:10               ` David Hildenbrand (Arm)
2026-02-06 11:12             ` Vernon Yang
2026-02-06 13:52               ` Lance Yang [this message]
2026-02-08  9:05               ` Dev Jain
2026-02-08  9:32                 ` Lance Yang
2026-02-08 13:23                 ` Vernon Yang
2026-02-01 12:25 ` [PATCH mm-new v6 3/5] mm: add folio_test_lazyfree helper Vernon Yang
2026-02-01 12:25 ` [PATCH mm-new v6 4/5] mm: khugepaged: skip lazy-free folios Vernon Yang
2026-02-03 11:23   ` Lance Yang
2026-02-05  6:01     ` Vernon Yang
2026-02-04 21:23   ` David Hildenbrand (arm)
2026-02-05  6:05     ` Vernon Yang
2026-02-01 12:25 ` [PATCH mm-new v6 5/5] mm: khugepaged: set to next mm direct when mm has MMF_DISABLE_THP_COMPLETELY Vernon Yang

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=2d2eff81-4f7d-41df-8c56-12a050ffb60c@linux.dev \
    --to=lance.yang@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=david@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=vernon2gm@gmail.com \
    --cc=yanglincheng@kylinos.cn \
    --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.