linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* Folios for anonymous memory
@ 2023-02-15 12:38 Ryan Roberts
  2023-02-15 15:13 ` Matthew Wilcox
  0 siblings, 1 reply; 3+ messages in thread
From: Ryan Roberts @ 2023-02-15 12:38 UTC (permalink / raw)
  To: Matthew Wilcox; +Cc: Linux-MM, Catalin Marinas, Mark Rutland, Ruben Ayrapetyan

Hi Matthew, all,

I’ve recently been looking into some potential performance improvements, and
think that folios could help with making these improvements a reality. I’m
hoping that you can answer some questions to help figure out if this makes sense.

First a quick summary of my bench-marking; I’ve been running a Kernel
Compilation test as well as the Speedometer browser performance benchmark (among
others), while trying to better understand the impact of page size on both HW
and SW. To do this, I’ve hacked the arm64 arch code to separate the HW page size
(4K) from the kernel page size (16K). Then I ran 3 kernels (baseline-4k,
baseline-16k, and my hacked up hybrid-16k-4k) - all based on v6.1 - with the aim
of determining the speedups due solely to SW overhead reduction (baseline-4k ->
hybrid-16k-4k), and the speedups due to HW overhead reduction (baseline-4k ->
(baseline-16k - hybrid-16k-4k)).

Results as follows:

Kernel Compilation:
Speed up due to SW overhead reduction: 6.5%
Speed up due to HW overhead reduction: 5.0%
Total speed up: 11.5%

Speedometer 2.0:
Speed up due to SW overhead reduction: 5.3%
Speed up due to HW overhead reduction: 5.1%
Total speed up: 10.4%

Digging into the reasons for the SW-side speedup, it boils down to less
book-keeping - 4x fewer page faults, 4x fewer pages to manage locks/refcounts/…
for, which leads to faster abort and syscall handling. I think these phenomena
are well understood in the Folio context? Although for these workloads, the
memory is primarily anonymous.

I’d like to figure out how to realise some of these benefits in a kernel that
still maintains a 4K page user ABI. Reading over old threads, LWN and watching
Matthew’s talk at OSS last summer, it sounds like this is exactly what Folios
intend to solve?

So a few questions:

- I’ve seen folios for anon memory listed as future work; what’s the current
status? Is anyone looking at this? It’s something that I would be interested to
take a look at if not (although don’t take that as an actual commitment yet!).

- My understanding is that as of v6.0, at least, XFS was the only FS supporting
large folios? Has that picture changed? Is there any likelihood of seeing ext4
and f2fs support anytime soon?

- Matthew mentioned in the talk that he had data showing memory fragmentation
becoming less of an issue as more users we allocating large folios. Is that data
or the experimental approach public?

Thanks,
Ryan


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

end of thread, other threads:[~2023-02-15 16:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-15 12:38 Folios for anonymous memory Ryan Roberts
2023-02-15 15:13 ` Matthew Wilcox
2023-02-15 16:51   ` Ryan Roberts

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox