From: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
To: Johannes Weiner <hannes@cmpxchg.org>, Michal Hocko <mhocko@kernel.org>
Cc: linux-mm@kvack.org, syzkaller-bugs@googlegroups.com, guro@fb.com,
kirill.shutemov@linux.intel.com, linux-kernel@vger.kernel.org,
rientjes@google.com, yang.s@alibaba-inc.com,
Andrew Morton <akpm@linux-foundation.org>,
Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
Petr Mladek <pmladek@suse.com>,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [RFC PATCH] memcg, oom: throttle dump_header for memcg ooms without eligible tasks
Date: Sat, 13 Oct 2018 20:09:30 +0900 [thread overview]
Message-ID: <bb2074c0-34fe-8c2c-1c7d-db71338f1e7f@i-love.sakura.ne.jp> (raw)
In-Reply-To: <0417c888-d74e-b6ae-a8f0-234cbde03d38@i-love.sakura.ne.jp>
On 2018/10/12 21:58, Tetsuo Handa wrote:
> On 2018/10/12 21:41, Johannes Weiner wrote:
>> On Fri, Oct 12, 2018 at 09:10:40PM +0900, Tetsuo Handa wrote:
>>> On 2018/10/12 21:08, Michal Hocko wrote:
>>>>> So not more than 10 dumps in each 5s interval. That looks reasonable
>>>>> to me. By the time it starts dropping data you have more than enough
>>>>> information to go on already.
Not reasonable at all.
>>>>
>>>> Yeah. Unless we have a storm coming from many different cgroups in
>>>> parallel. But even then we have the allocation context for each OOM so
>>>> we are not losing everything. Should we ever tune this, it can be done
>>>> later with some explicit examples.
>>>>
>>>>> Acked-by: Johannes Weiner <hannes@cmpxchg.org>
>>>>
>>>> Thanks! I will post the patch to Andrew early next week.
>>>>
One thread from one cgroup is sufficient. I don't think that Michal's patch
is an appropriate mitigation. It still needlessly floods kernel log buffer
and significantly defers recovery operation.
Nacked-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
---------- Testcase ----------
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp;
const unsigned long size = 1048576 * 200;
char *buf = malloc(size);
mkdir("/sys/fs/cgroup/memory/test1", 0755);
fp = fopen("/sys/fs/cgroup/memory/test1/memory.limit_in_bytes", "w");
fprintf(fp, "%lu\n", size / 2);
fclose(fp);
fp = fopen("/sys/fs/cgroup/memory/test1/tasks", "w");
fprintf(fp, "%u\n", getpid());
fclose(fp);
fp = fopen("/proc/self/oom_score_adj", "w");
fprintf(fp, "-1000\n");
fclose(fp);
fp = fopen("/dev/zero", "r");
fread(buf, 1, size, fp);
fclose(fp);
return 0;
}
---------- Michal's patch ----------
73133 lines (5.79MB) of kernel messages per one run
[root@ccsecurity ~]# time ./a.out
real 3m44.389s
user 0m0.000s
sys 3m42.334s
[root@ccsecurity ~]# time ./a.out
real 3m41.767s
user 0m0.004s
sys 3m39.779s
---------- My v2 patch ----------
50 lines (3.40 KB) of kernel messages per one run
[root@ccsecurity ~]# time ./a.out
real 0m5.227s
user 0m0.000s
sys 0m4.950s
[root@ccsecurity ~]# time ./a.out
real 0m5.249s
user 0m0.000s
sys 0m4.956s
next prev parent reply other threads:[~2018-10-13 11:09 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-10 0:08 INFO: rcu detected stall in shmem_fault syzbot
2018-10-10 0:12 ` Tetsuo Handa
2018-10-10 4:11 ` David Rientjes
2018-10-10 7:55 ` Dmitry Vyukov
2018-10-10 9:13 ` Michal Hocko
2018-10-10 9:33 ` Dmitry Vyukov
2018-10-10 9:02 ` Michal Hocko
2018-10-10 8:59 ` Michal Hocko
2018-10-10 10:43 ` Tetsuo Handa
2018-10-10 11:35 ` Michal Hocko
2018-10-10 11:48 ` Sergey Senozhatsky
2018-10-10 12:25 ` Michal Hocko
2018-10-10 12:29 ` Dmitry Vyukov
2018-10-10 12:36 ` Dmitry Vyukov
2018-10-10 13:10 ` Tetsuo Handa
2018-10-10 13:17 ` Dmitry Vyukov
2018-10-11 1:17 ` Sergey Senozhatsky
2018-10-10 15:17 ` Sergey Senozhatsky
2018-10-10 14:19 ` Tetsuo Handa
2018-10-10 15:11 ` [RFC PATCH] memcg, oom: throttle dump_header for memcg ooms without eligible tasks Michal Hocko
2018-10-11 6:37 ` Tetsuo Handa
2018-10-12 10:47 ` Tetsuo Handa
2018-10-12 11:20 ` Johannes Weiner
2018-10-12 12:08 ` Michal Hocko
2018-10-12 12:10 ` Tetsuo Handa
2018-10-12 12:41 ` Johannes Weiner
2018-10-12 12:58 ` Tetsuo Handa
2018-10-13 11:09 ` Tetsuo Handa [this message]
2018-10-13 11:22 ` Johannes Weiner
2018-10-13 11:28 ` Tetsuo Handa
2018-10-15 8:19 ` Michal Hocko
2018-10-15 10:57 ` Tetsuo Handa
2018-10-15 11:24 ` Michal Hocko
2018-10-15 12:47 ` Tetsuo Handa
2018-10-15 13:35 ` Michal Hocko
2018-10-16 0:55 ` Tetsuo Handa
2018-10-16 9:20 ` Michal Hocko
2018-10-16 11:05 ` Tetsuo Handa
2018-10-16 11:17 ` Michal Hocko
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=bb2074c0-34fe-8c2c-1c7d-db71338f1e7f@i-love.sakura.ne.jp \
--to=penguin-kernel@i-love.sakura.ne.jp \
--cc=akpm@linux-foundation.org \
--cc=guro@fb.com \
--cc=hannes@cmpxchg.org \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=pmladek@suse.com \
--cc=rientjes@google.com \
--cc=rostedt@goodmis.org \
--cc=sergey.senozhatsky.work@gmail.com \
--cc=sergey.senozhatsky@gmail.com \
--cc=syzkaller-bugs@googlegroups.com \
--cc=yang.s@alibaba-inc.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).