linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/3] Optimize large folio interaction with deferred split
@ 2023-07-17 14:31 Ryan Roberts
  2023-07-17 14:31 ` [PATCH v1 1/3] mm: Allow deferred splitting of arbitrary large anon folios Ryan Roberts
                   ` (2 more replies)
  0 siblings, 3 replies; 34+ messages in thread
From: Ryan Roberts @ 2023-07-17 14:31 UTC (permalink / raw)
  To: Andrew Morton, Matthew Wilcox, Yin Fengwei, David Hildenbrand,
	Yu Zhao, Yang Shi, Huang, Ying, Zi Yan
  Cc: Ryan Roberts, linux-kernel, linux-mm

Hi All,

This is a small series in support of my work to enable the use of large folios
for anonymous memory (currently called "FLEXIBLE_THP") [1]. It first makes it
possible to add large, non-pmd-mappable folios to the deferred split queue. Then
it modifies zap_pte_range() to batch-remove spans of physically contiguous pages
from the rmap, which means that in the common case, we elide the need to ever
put the folio on the deferred split queue, thus reducing lock contention and
improving performance.

This becomes more visible once we have lots of large anonymous folios in the
system, and Huang Ying has suggested solving this needs to be a prerequisit for
merging the main FLEXIBLE_THP work.

The series applies on top of v6.5-rc2 and a branch is available at [2].

I don't have a full test run with the latest versions of all the patches on top
of the latest baseline, so not posting results formally. I can get these if
people feel they are neccessary though. But anecdotally, for the kernel
compilation workload, this series reduces kernel time by ~4% and reduces
real-time by ~0.4%, compared with [1].

[1] https://lore.kernel.org/linux-mm/20230714160407.4142030-1-ryan.roberts@arm.com/
[2] https://gitlab.arm.com/linux-arm/linux-rr/-/tree/features/granule_perf/deferredsplit-lkml_v1

Thanks,
Ryan


Ryan Roberts (3):
  mm: Allow deferred splitting of arbitrary large anon folios
  mm: Implement folio_remove_rmap_range()
  mm: Batch-zap large anonymous folio PTE mappings

 include/linux/rmap.h |   2 +
 mm/memory.c          | 119 +++++++++++++++++++++++++++++++++++++++++++
 mm/rmap.c            |  67 +++++++++++++++++++++++-
 3 files changed, 187 insertions(+), 1 deletion(-)

--
2.25.1



^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2023-07-18 14:06 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-17 14:31 [PATCH v1 0/3] Optimize large folio interaction with deferred split Ryan Roberts
2023-07-17 14:31 ` [PATCH v1 1/3] mm: Allow deferred splitting of arbitrary large anon folios Ryan Roberts
2023-07-17 15:30   ` Matthew Wilcox
2023-07-17 15:41     ` Ryan Roberts
2023-07-17 15:43       ` David Hildenbrand
2023-07-17 15:54         ` Matthew Wilcox
2023-07-17 16:17           ` Matthew Wilcox
2023-07-17 16:55           ` David Hildenbrand
2023-07-17 15:42   ` David Hildenbrand
2023-07-17 16:01     ` Ryan Roberts
2023-07-17 16:48       ` David Hildenbrand
2023-07-18  8:58         ` Ryan Roberts
2023-07-18  9:08           ` David Hildenbrand
2023-07-18  9:33             ` Ryan Roberts
2023-07-17 14:31 ` [PATCH v1 2/3] mm: Implement folio_remove_rmap_range() Ryan Roberts
2023-07-17 15:07   ` Matthew Wilcox
2023-07-17 15:49     ` Ryan Roberts
2023-07-17 15:56       ` Matthew Wilcox
2023-07-17 15:09   ` Zi Yan
2023-07-17 15:51     ` Ryan Roberts
2023-07-17 15:53       ` Zi Yan
2023-07-18  1:14   ` Yin Fengwei
2023-07-18  6:22   ` Huang, Ying
2023-07-18  9:51     ` Ryan Roberts
2023-07-18  7:12   ` Huang, Ying
2023-07-18 10:02     ` Ryan Roberts
2023-07-17 14:31 ` [PATCH v1 3/3] mm: Batch-zap large anonymous folio PTE mappings Ryan Roberts
2023-07-17 15:25   ` Zi Yan
2023-07-17 15:55     ` Ryan Roberts
2023-07-17 16:15       ` Zi Yan
2023-07-18 10:19         ` Ryan Roberts
2023-07-18 14:01           ` Zi Yan
2023-07-17 23:27   ` Yin Fengwei
2023-07-18 10:27     ` Ryan Roberts

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).