From: David Rientjes <rientjes@google.com>
To: "孙世龙 sunshilong" <sunshilong369@gmail.com>
Cc: David Hildenbrand <david@redhat.com>, linux-mm@kvack.org
Subject: Re: Are there still some methods that could be used by the Linux kernel to reduce memory fragmentation while both CONFIG-MIGRATION and CONFIG-COMPACTION are disabled?
Date: Wed, 24 Jun 2020 10:22:14 -0700 (PDT) [thread overview]
Message-ID: <alpine.DEB.2.22.394.2006241017580.261553@chino.kir.corp.google.com> (raw)
In-Reply-To: <CAAvDm6ar+XTMx58cP4twg_TXSOtZQrqC4kGTs+Cp-diQUFjgYw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1912 bytes --]
On Wed, 24 Jun 2020, 孙世龙 sunshilong wrote:
> >> Are there still some methods that could be used by the Linux kernel
> >> to reduce memory fragmentation while both CONFIG-MIGRATION
> >> and CONFIG-COMPACTION are disabled?
> >
> >
> >We do have mobility grouping on pageblock order.
> >Also, I think you can use ZONE_MOVABLE without migration and compaction,
> >to at least locally limit unmovable fragmentation.
> It's a good news.
>
> Could you please explain that in more detail for me or suggest some documents
> for me to go through.
>
/proc/buddyinfo and /proc/pagetypeinfo will show the various pageblocks on
the system. Grouping pages by mobility simply means that we attempt (best
effort) to allocate unmovable pages from the same pageblocks and movable
pages from the same pageblocks.
> As per the post(http://lkml.iu.edu/hypermail/linux/kernel/1703.1/06782.html),
> I think it's something like ZONE_NORMAL. And I find that
> "ZONE_MOVEABLE" is available on Linux-v4.9.
>
Yes, you can use kernelcore= (or movablecore=) on the kernel command line
to set this up: allocations from this zone must have __GFP_MOVABLE so they
"should" be migratable. This is typically only useful when
CONFIG_COMPACTION is enabled, however, to do that defragmentation work so
that higher order memory becomes available.
> Is there some potential problems that I should be aware of if I enable
> "ZONE_MOVABLE" on real-time system?
>
Yes, if ZONE_MOVABLE is made too big then you can risk out of memory
kills: movable allocations can fallback to ZONE_NORMAL but unmovable
allocations cannot graduate to ZONE_MOVABLE. So if ZONE_NORMAL is full
(either because you have too much unmovable memory in-use or too much
movable fell back to ZONE_NORMAL), and you have more unmovable
allocations, you'll get reclaim in ZONE_NORMAL and, at worst case, oom
kills.
next prev parent reply other threads:[~2020-06-24 17:22 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-23 15:52 Are there still some methods that could be used by the Linux kernel to reduce memory fragmentation while both CONFIG-MIGRATION and CONFIG-COMPACTION are disabled? 孙世龙 sunshilong
2020-06-24 9:53 ` David Hildenbrand
2020-06-24 11:16 ` 孙世龙 sunshilong
2020-06-24 17:22 ` David Rientjes [this message]
2020-06-25 3:22 ` 孙世龙 sunshilong
2020-06-28 3:27 ` David Rientjes
2020-06-28 5:15 ` 孙世龙 sunshilong
2020-06-28 20:39 ` David Rientjes
-- strict thread matches above, loose matches on Subject: below --
2020-06-23 15:39 孙世龙 sunshilong
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=alpine.DEB.2.22.394.2006241017580.261553@chino.kir.corp.google.com \
--to=rientjes@google.com \
--cc=david@redhat.com \
--cc=linux-mm@kvack.org \
--cc=sunshilong369@gmail.com \
/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;
as well as URLs for NNTP newsgroup(s).