From: Ge Yang <yangge1116@126.com>
To: Chris Li <chrisl@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-mm <linux-mm@kvack.org>,
LKML <linux-kernel@vger.kernel.org>,
stable@vger.kernel.org, Barry Song <21cnbao@gmail.com>,
David Hildenbrand <david@redhat.com>,
baolin.wang@linux.alibaba.com, liuzixing@hygon.cn,
Hugh Dickins <hughd@google.com>
Subject: Re: [PATCH V2] mm/gup: Clear the LRU flag of a page before adding to LRU batch
Date: Sat, 3 Aug 2024 16:25:27 +0800 [thread overview]
Message-ID: <00a27e2b-0fc2-4980-bc4e-b383f15d3ad9@126.com> (raw)
In-Reply-To: <CACePvbV4L-gRN9UKKuUnksfVJjOTq_5Sti2-e=pb_w51kucLKQ@mail.gmail.com>
在 2024/8/3 4:18, Chris Li 写道:
> On Thu, Aug 1, 2024 at 6:56 PM Ge Yang <yangge1116@126.com> wrote:
>>
>>
>>
>>>> I can't reproduce this problem, using tmpfs to compile linux.
>>>> Seems you limit the memory size used to compile linux, which leads to
>>>> OOM. May I ask why the memory size is limited to 481280kB? Do I also
>>>> need to limit the memory size to 481280kB to test?
>>>
>>> Yes, you need to limit the cgroup memory size to force the swap
>>> action. I am using memory.max = 470M.
>>>
>>> I believe other values e.g. 800M can trigger it as well. The reason to
>>> limit the memory to cause the swap action.
>>> The goal is to intentionally overwhelm the memory load and let the
>>> swap system do its job. The 470M is chosen to cause a lot of swap
>>> action but not too high to cause OOM kills in normal kernels.
>>> In another word, high enough swap pressure but not too high to bust
>>> into OOM kill. e.g. I verify that, with your patch reverted, the
>>> mm-stable kernel can sustain this level of swap pressure (470M)
>>> without OOM kill.
>>>
>>> I borrowed the 470M magic value from Hugh and verified it works with
>>> my test system. Huge has a similar swab test up which is more
>>> complicated than mine. It is the inspiration of my swap stress test
>>> setup.
>>>
>>> FYI, I am using "make -j32" on a machine with 12 cores (24
>>> hyperthreading). My typical swap usage is about 3-5G. I set my
>>> swapfile size to about 20G.
>>> I am using zram or ssd as the swap backend. Hope that helps you
>>> reproduce the problem.
>>>
>> Hi Chris,
>>
>> I try to construct the experiment according to your suggestions above.
>
> Hi Ge,
>
> Sorry to hear that you were not able to reproduce it.
>
>> High swap pressure can be triggered, but OOM can't be reproduced. The
>> specific steps are as follows:
>> root@ubuntu-server-2204:/home/yangge# cp workspace/linux/ /dev/shm/ -rf
>
> I use a slightly different way to setup the tmpfs:
>
> Here is section of my script:
>
> if ! [ -d $tmpdir ]; then
> sudo mkdir -p $tmpdir
> sudo mount -t tmpfs -o size=100% nodev $tmpdir
> fi
>
> sudo mkdir -p $cgroup
> sudo sh -c "echo $mem > $cgroup/memory.max" || echo setup
> memory.max error
> sudo sh -c "echo 1 > $cgroup/memory.oom.group" || echo setup
> oom.group error
>
> Per run:
>
> # $workdir is under $tmpdir
> sudo rm -rf $workdir
> mkdir -p $workdir
> cd $workdir
> echo "Extracting linux tree"
> XZ_OPT='-T0 -9 –memory=75%' tar xJf $linux_src || die "xz
> extract failed"
>
> sudo sh -c "echo $BASHPID > $cgroup/cgroup.procs"
> echo "Cleaning linux tree, setup defconfig"
> cd $workdir/linux
> make -j$NR_TASK clean
> make defconfig > /dev/null
> echo Kernel compile run $i
> /usr/bin/time -a -o $log make --silent -j$NR_TASK || die "make failed"
> >
Thanks.
>> root@ubuntu-server-2204:/home/yangge# sync
>> root@ubuntu-server-2204:/home/yangge# echo 3 > /proc/sys/vm/drop_caches
>> root@ubuntu-server-2204:/home/yangge# cd /sys/fs/cgroup/
>> root@ubuntu-server-2204:/sys/fs/cgroup/# mkdir kernel-build
>> root@ubuntu-server-2204:/sys/fs/cgroup/# cd kernel-build
>> root@ubuntu-server-2204:/sys/fs/cgroup/kernel-build# echo 470M > memory.max
>> root@ubuntu-server-2204:/sys/fs/cgroup/kernel-build# echo $$ > cgroup.procs
>> root@ubuntu-server-2204:/sys/fs/cgroup/kernel-build# cd /dev/shm/linux/
>> root@ubuntu-server-2204:/dev/shm/linux# make clean && make -j24
>
> I am using make -j 32.
>
> Your step should work.
>
> Did you enable MGLRU in your .config file? Mine did. I attached my
> config file here.
>
The above test didn't enable MGLRU.
When MGLRU is enabled, I can reproduce OOM very soon. The cause of
triggering OOM is being analyzed.
>>
>> Please help to see which step does not meet your requirements.
>
> How many cores does your server have? I assume your RAM should be
> plenty on that server.
>
My server has 64 cores (128 hyperthreading) and 160G of RAM.
> Chris
next prev parent reply other threads:[~2024-08-03 8:30 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-22 6:48 yangge1116
2024-07-03 9:46 ` Barry Song
2024-07-03 11:15 ` Ge Yang
2024-07-03 12:02 ` David Hildenbrand
2024-07-04 6:24 ` Ge Yang
2024-07-27 22:33 ` Chris Li
2024-07-29 0:34 ` Ge Yang
2024-07-29 3:49 ` Ge Yang
2024-07-29 22:06 ` Chris Li
2024-08-02 1:51 ` Ge Yang
2024-08-02 20:18 ` Chris Li
2024-08-03 8:25 ` Ge Yang [this message]
2024-08-03 17:08 ` Yu Zhao
2024-08-03 20:03 ` Kairui Song
2024-08-04 12:21 ` Kairui Song
2024-08-04 17:51 ` Chris Li
2024-08-04 19:11 ` Chris Li
2024-09-02 12:53 ` Linux regression tracking (Thorsten Leemhuis)
2024-09-05 5:00 ` Chris Li
2024-07-29 14:04 ` David Hildenbrand
2024-07-30 0:57 ` Ge Yang
2024-07-30 7:45 ` David Hildenbrand
2024-07-30 9:36 ` Ge Yang
2024-07-30 9:41 ` David Hildenbrand
2024-07-30 9:56 ` Ge Yang
2024-07-30 9:58 ` David Hildenbrand
2024-07-30 10:01 ` Ge Yang
2024-12-26 0:31 Andy amonte
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=00a27e2b-0fc2-4980-bc4e-b383f15d3ad9@126.com \
--to=yangge1116@126.com \
--cc=21cnbao@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=chrisl@kernel.org \
--cc=david@redhat.com \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=liuzixing@hygon.cn \
--cc=stable@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox