All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qi Zheng <qi.zheng@linux.dev>
To: Muchun Song <muchun.song@linux.dev>
Cc: Muchun Song <songmuchun@bytedance.com>,
	Oscar Salvador <osalvador@suse.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Mike Rapoport <rppt@kernel.org>,
	Lance Yang <lance.yang@linux.dev>,
	James Houghton <jthoughton@google.com>,
	David Hildenbrand <david@kernel.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 02/12] mm: hugetlb_vmemmap: unify VMEMMAP_{SPLIT,REMAP}_NO_TLB_FLUSH
Date: Sun, 1 Nov 2026 14:59:29 +0800	[thread overview]
Message-ID: <f91ed3e0-59f2-459e-8c72-abe093892e73@linux.dev> (raw)
In-Reply-To: <99503D05-0C4D-45E4-B5D6-EDD927838935@linux.dev>



On 11/1/26 2:56 PM, Muchun Song wrote:
> 
> 
>> On Nov 1, 2026, at 14:22, Qi Zheng <qi.zheng@linux.dev> wrote:
>>
>>
>>
>> On 10/20/26 7:58 PM, Muchun Song wrote:
>>> VMEMMAP_SPLIT_NO_TLB_FLUSH and VMEMMAP_REMAP_NO_TLB_FLUSH do not
>>> describe fully independent choices. A split-only walk can defer the
>>> PMD-split flush to a later global flush, and a remap-only walk can
>>> defer the final remap flush. However, when a PMD split is followed
>>> by PTE remapping, the split flush must happen before the PTEs are
>>> changed, because stale large-page translations must not overlap with
>>> new small-page translations that map different physical pages.
>>> Replace the two flags with a single VMEMMAP_REMAP_NO_TLB_FLUSH flag.
>>> Keep split-only walks able to defer the flush, but force the split
>>> flush whenever a remap_pte callback is present. Callers that batch
>>> HVO work can still defer the final remap flush and issue their own
>>> global flush.
>>> Current callers keep the same flushing behavior.
>>> Signed-off-by: Muchun Song <songmuchun@bytedance.com>
>>> ---
>>>   mm/hugetlb_vmemmap.c | 15 +++++++++------
>>>   1 file changed, 9 insertions(+), 6 deletions(-)
>>> diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c
>>> index 1105aa925acc..8b3abb562599 100644
>>> --- a/mm/hugetlb_vmemmap.c
>>> +++ b/mm/hugetlb_vmemmap.c
>>> @@ -42,10 +42,8 @@ struct vmemmap_remap_walk {
>>>   	struct list_head	*vmemmap_pages;
>>>     -/* Skip the TLB flush when we split the PMD */
>>> -#define VMEMMAP_SPLIT_NO_TLB_FLUSH	BIT(0)
>>> -/* Skip the TLB flush when we remap the PTE */
>>> -#define VMEMMAP_REMAP_NO_TLB_FLUSH	BIT(1)
>>> +/* Skip the TLB flush while updating the vmemmap page tables. */
>>> +#define VMEMMAP_REMAP_NO_TLB_FLUSH	BIT(0)
>>
>> Since this flag is now also used by the split-only path, the
>> VMEMMAP_REMAP_NO_TLB_FLUSH name is somewhat misleading. Moreover, the
>> flag does not suppress every TLB flush, as the PMD-split flush is still
>> mandatory when remapping follows.
> 
> Yeah, good point.
> 
>>
>> Would VMEMMAP_DEFER_TLB_FLUSH better describe its semantics? It
> 
> I think so.
> 
>> indicates that flushes which can be safely batched are deferred, without
>> implying that all TLB flushes are skipped.
> 
> I'll change it along side with the comment to:
> 
>    /* Defer safely batchable TLB flushes to the caller. */
>    #define VMEMMAP_DEFER_TLB_FLUSH       BIT(0)

LGTM, with this change:

Reviewed-by: Qi Zheng <qi.zheng@linux.dev>

Thanks,
Qi



      reply	other threads:[~2026-11-01  6:59 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-20 11:52 [PATCH 00/12] mm: Decouple folio-based vmemmap optimization from HugeTLB Muchun Song
2026-10-20 11:52 ` [PATCH 01/12] mm: hugetlb_vmemmap: remove HugeTLB-specific vmemmap optimization macros Muchun Song
2026-10-22  3:43   ` Lance Yang
2026-10-31  8:03   ` Qi Zheng
2026-10-20 11:58 ` [PATCH 02/12] mm: hugetlb_vmemmap: unify VMEMMAP_{SPLIT,REMAP}_NO_TLB_FLUSH Muchun Song
2026-10-20 11:58   ` [PATCH 03/12] mm: hugetlb_vmemmap: simplify vmemmap head page handling Muchun Song
2026-10-22  6:24     ` Lance Yang
2026-10-22  6:27       ` Muchun Song
2026-10-22  7:23     ` Lance Yang
2026-11-01  6:31     ` Qi Zheng
2026-11-01  6:42       ` Muchun Song
2026-10-20 11:58   ` [PATCH 04/12] mm: hugetlb_vmemmap: generalize vmemmap page allocation Muchun Song
2026-10-22 13:54     ` Lance Yang
2026-11-01  6:39     ` Qi Zheng
2026-10-20 11:58   ` [PATCH 05/12] mm: hugetlb_vmemmap: unify writable vmemmap page preparation Muchun Song
2026-10-22 14:13     ` Lance Yang
2026-11-01  6:51     ` Qi Zheng
2026-10-20 11:58   ` [PATCH 06/12] mm: hugetlb_vmemmap: rename vmemmap_remap_pte() to vmemmap_optimize_pte() Muchun Song
2026-10-23  0:55     ` Lance Yang
2026-11-01  6:52     ` Qi Zheng
2026-10-20 11:58   ` [PATCH 07/12] mm: hugetlb_vmemmap: simplify shared tail page handling Muchun Song
2026-10-23  2:20     ` Lance Yang
2026-10-23  2:32       ` Muchun Song
2026-11-01  7:03     ` Qi Zheng
2026-10-20 11:58   ` [PATCH 08/12] mm: hugetlb_vmemmap: move alloc_vmemmap_page_list() next to its free helper Muchun Song
2026-10-23  2:47     ` Lance Yang
2026-11-01  7:03     ` Qi Zheng
2026-10-20 11:58   ` [PATCH 09/12] mm: hugetlb_vmemmap: make vmemmap optimization folio-oriented Muchun Song
2026-10-23  3:39     ` Lance Yang
2026-11-01  7:08     ` Qi Zheng
2026-10-20 11:58   ` [PATCH 10/12] mm: hugetlb_vmemmap: make vmemmap restoration folio-oriented Muchun Song
2026-10-23  3:46     ` Lance Yang
2026-10-23  3:58       ` Muchun Song
2026-11-01  7:14     ` Qi Zheng
2026-10-20 11:58   ` [PATCH 11/12] mm: hugetlb_vmemmap: unify vmemmap range restoration Muchun Song
2026-10-23  3:53     ` Lance Yang
2026-11-01  7:16     ` Qi Zheng
2026-10-20 11:58   ` [PATCH 12/12] mm: hugetlb_vmemmap: make vmemmap PTE conversion folio-oriented Muchun Song
2026-10-23  7:33     ` Lance Yang
2026-11-01  7:18     ` Qi Zheng
2026-10-22  3:52   ` [PATCH 02/12] mm: hugetlb_vmemmap: unify VMEMMAP_{SPLIT,REMAP}_NO_TLB_FLUSH Lance Yang
2026-11-01  6:22   ` Qi Zheng
2026-11-01  6:56     ` Muchun Song
2026-11-01  6:59       ` Qi Zheng [this message]

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=f91ed3e0-59f2-459e-8c72-abe093892e73@linux.dev \
    --to=qi.zheng@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=david@kernel.org \
    --cc=jthoughton@google.com \
    --cc=lance.yang@linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=muchun.song@linux.dev \
    --cc=osalvador@suse.de \
    --cc=rppt@kernel.org \
    --cc=songmuchun@bytedance.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.