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
next prev parent reply other threads:[~2026-09-19 10:11 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-18 6:42 [PATCH] mm/memory: reuse the whole exclusive large folio on a write fault 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-24 18:46 ` David Hildenbrand (Arm)
2026-09-29 22:45 ` 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-24 19:54 ` David Hildenbrand (Arm)
2026-09-19 10:08 ` [PATCH v2 0/2] " David Hildenbrand (Arm)
2026-09-19 11:18 ` Yuan-Hao Hsu
2026-09-21 12:36 ` Lorenzo Stoakes (ARM)
2026-09-21 19:59 ` 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 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.