mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "David Hildenbrand (Arm)" <david@kernel.org>
To: Yuan-Hao Hsu <aa9736195201@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: Lorenzo Stoakes <ljs@kernel.org>,
	liam@infradead.org, Vlastimil Babka <vbabka@kernel.org>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>, Barry Song <baohua@kernel.org>,
	Ryan Roberts <ryan.roberts@arm.com>, Dev Jain <dev.jain@arm.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/2] mm/memory: reuse the whole exclusive large folio on a write fault
Date: Sat, 19 Sep 2026 12:10:56 +0200	[thread overview]
Message-ID: <0c0c19d0-997a-4c8d-a103-2b3d153f4e32@kernel.org> (raw)
In-Reply-To: <20260919073134.639-3-aa9736195201@gmail.com>

On 9/19/26 09:31, Yuan-Hao Hsu wrote:
> With blocks of 16 PTEs a PTE-mapped 2M THP still takes 32 reuse faults
> and a 1M folio 16.  Lift the bound to the page table: the walk then
> covers the PTEs that map the folio in this page table, at most
> PTRS_PER_PTE of them, and one fault does the work for the folio.
> 
> Its cost, measured as the time of the store that takes it, against
> 420 ns for a reuse fault today (x86-64, i7-12700KF, medians, ns):
> 
>                           reuse fault   fault that     COW fault that
>                           (patched)     allocated it   copies 4K
>       1M mTHP            5,400- 5,700   63,000-68,000          1,500
>       2M THP, PTE-mapped  10,000-10,500         126,000          1,500
> 
> That is 14-20 ns per PTE, about 2 ns of it the scan.  Builds that
> differ only by NOPs in front of the function take either 10,100 or
> 7,500 ns for the 2M folio, with a period of 32 bytes: the loop of
> modify_prot_commit_ptes() changes speed with its address.
> 
> What it buys, 256 MiB after fork() and the child's exit, medians of 15
> runs, two boots of each kernel:
> 
>                                    16 PTEs         whole folio
>   one byte per page, seq
>       1M mTHP                     5.7 /  5.8 ms    4.1 /  4.0 ms
>       2M THP, PTE-mapped          5.7 /  5.8 ms    3.9 /  3.9 ms
>   one byte per page, random order
>       2M THP, PTE-mapped          7.4 /  7.5 ms    4.9 /  5.1 ms
>   memset()
>       2M THP, PTE-mapped         40.2 / 39.4 ms   38.1 / 37.2 ms
>   8 threads, random order
>       2M THP, PTE-mapped          0.9 /  1.0 ms    0.7 /  0.7 ms
>   one store per 64K, 2M folios    3.3 /  3.3 ms    1.5 /  1.6 ms
>   one store per 2M, 2M folios     0.1 /  0.1 ms    1.4 /  1.4 ms
> 

Are you measuring the worst-case latency of a single write fault or only the
average over all writes?

-- 
Cheers,

David

  reply	other threads:[~2026-09-19 10:11 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-18  6:42 [PATCH] " Yuan-Hao Hsu
2026-09-18 12:14 ` David Hildenbrand (Arm)
2026-09-18 18:28   ` Yuan-Hao Hsu
2026-09-18 23:48     ` Barry Song
2026-09-19  7:24       ` Yuan-Hao Hsu
2026-09-18 13:54 ` Lorenzo Stoakes (ARM)
2026-09-19  7:31 ` [PATCH v2 0/2] " Yuan-Hao Hsu
2026-09-19  7:31   ` [PATCH v2 1/2] mm/memory: reuse 16 PTEs of an " Yuan-Hao Hsu
2026-09-19  7:31   ` [PATCH v2 2/2] mm/memory: reuse the whole " Yuan-Hao Hsu
2026-09-19 10:10     ` David Hildenbrand (Arm) [this message]
2026-09-19 11:18       ` Yuan-Hao Hsu
2026-09-19 10:08   ` [PATCH v2 0/2] " David Hildenbrand (Arm)
2026-09-19 11:18     ` Yuan-Hao Hsu

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=0c0c19d0-997a-4c8d-a103-2b3d153f4e32@kernel.org \
    --to=david@kernel.org \
    --cc=aa9736195201@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=liam@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=mhocko@suse.com \
    --cc=rppt@kernel.org \
    --cc=ryan.roberts@arm.com \
    --cc=surenb@google.com \
    --cc=vbabka@kernel.org \
    /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

all inboxes | Powered by JetHome®