From: Suren Baghdasaryan <surenb@google.com>
To: lsf-pc@lists.linux-foundation.org
Cc: SeongJae Park <sj@kernel.org>, Minchan Kim <minchan@kernel.org>,
m.szyprowski@samsung.com, aneesh.kumar@kernel.org,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
mina86@mina86.com, Matthew Wilcox <willy@infradead.org>,
Vlastimil Babka <vbabka@suse.cz>,
Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
"Liam R. Howlett" <liam.howlett@oracle.com>,
David Hildenbrand <david@redhat.com>,
Michal Hocko <mhocko@kernel.org>, linux-mm <linux-mm@kvack.org>,
android-kernel-team <android-kernel-team@google.com>
Subject: [LSF/MM/BPF TOPIC] Guaranteed CMA
Date: Sat, 1 Feb 2025 16:19:25 -0800 [thread overview]
Message-ID: <CAJuCfpEWVEqsivd7oTvp4foEho_HaD1XNP8KTeKWzG_X2skfGQ@mail.gmail.com> (raw)
Hi,
I would like to discuss the Guaranteed Contiguous Memory Allocator
(GCMA) mechanism that is being used by many Android vendors as an
out-of-tree feature, collect input on its possible usefulness for
others, feasibility to upstream and suggestions for possible better
alternatives.
Problem statement: Some workloads/hardware require physically
contiguous memory and carving out reserved memory areas for such
allocations often lead to inefficient usage of those carveouts. CMA
was designed to solve this inefficiency by allowing movable memory
allocations to use this reserved memory when it’s otherwise unused.
When a contiguous memory allocation is requested, CMA finds the
requested contiguous area, possibly migrating some of the movable
pages out of that area.
In latency-sensitive use cases, like face unlock on phones, we need to
allocate contiguous memory quickly and page migration in CMA takes
enough time to cause user-perceptible lag. Such allocations can also
fail if page migration is not possible.
GCMA (Guaranteed CMA) is a mechanism previously proposed in [1] which
was not upstreamed but got adopted later by many Android vendors as an
out-of-tree feature. It is similar to CMA but backing memory is
cleancache backend, containing only clean file-backed pages. Most
importantly, the kernel can’t take a reference to pages from the
cleancache, therefore can’t prevent GCMA from quickly dropping them
when required. This guarantees GCMA low allocation latency and
improves allocation success rate.
We would like to standardize GCMA implementation and upstream it since
many Android vendors are asking to include it as a generic feature.
Note: removal of cleancache in 5.17 kernel due to no users (sorry, we
didn’t know at the time about this use case) might complicate
upstreaming.
Desired participants:
GCMA authors: SeongJae Park <sj@kernel.org>, Minchan Kim <minchan@kernel.org>
CMA authors: Marek Szyprowski <m.szyprowski@samsung.com>, Aneesh Kumar
K.V <aneesh.kumar@kernel.org>, Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Michal Nazarewicz <mina86@mina86.com>
The usual suspects (Willy, Vlastimil, Lorenzo, Liam, Michal, David H),
other mm folks
[1] https://lore.kernel.org/lkml/1424721263-25314-2-git-send-email-sj38.park@gmail.com/
next reply other threads:[~2025-02-02 0:19 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-02 0:19 Suren Baghdasaryan [this message]
2025-02-04 5:46 ` Christoph Hellwig
2025-02-04 7:47 ` Lorenzo Stoakes
2025-02-04 7:48 ` Christoph Hellwig
2025-02-04 9:03 ` Vlastimil Babka
2025-02-04 15:56 ` Suren Baghdasaryan
2025-02-04 8:18 ` David Hildenbrand
2025-02-04 11:23 ` Alexandru Elisei
2025-02-04 16:33 ` Suren Baghdasaryan
2025-03-20 18:06 ` Suren Baghdasaryan
2025-04-02 16:35 ` Suren Baghdasaryan
2025-08-22 22:14 ` Suren Baghdasaryan
2025-08-26 8:58 ` David Hildenbrand
2025-08-27 0:17 ` Suren Baghdasaryan
2025-09-01 16:01 ` David Hildenbrand
2025-10-10 1:30 ` Suren Baghdasaryan
2025-10-10 13:58 ` David Hildenbrand
2025-10-10 15:07 ` Suren Baghdasaryan
2025-10-10 15:37 ` David Hildenbrand
2025-10-10 15:47 ` Suren Baghdasaryan
2025-02-04 9:07 ` Vlastimil Babka
2025-02-04 16:20 ` Suren Baghdasaryan
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=CAJuCfpEWVEqsivd7oTvp4foEho_HaD1XNP8KTeKWzG_X2skfGQ@mail.gmail.com \
--to=surenb@google.com \
--cc=android-kernel-team@google.com \
--cc=aneesh.kumar@kernel.org \
--cc=david@redhat.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=liam.howlett@oracle.com \
--cc=linux-mm@kvack.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=lsf-pc@lists.linux-foundation.org \
--cc=m.szyprowski@samsung.com \
--cc=mhocko@kernel.org \
--cc=mina86@mina86.com \
--cc=minchan@kernel.org \
--cc=sj@kernel.org \
--cc=vbabka@suse.cz \
--cc=willy@infradead.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