From: Michal Hocko <mhocko@suse.com> To: Vasily Averin <vvs@virtuozzo.com> Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Johannes Weiner <hannes@cmpxchg.org>, Vladimir Davydov <vdavydov.dev@gmail.com>, Andrew Morton <akpm@linux-foundation.org> Subject: Re: [PATCH memcg] memcg: prohibit unconditional exceeding the limit of dying tasks Date: Mon, 13 Sep 2021 10:42:56 +0200 [thread overview] Message-ID: <YT8PEBbYZhLixEJD@dhcp22.suse.cz> (raw) In-Reply-To: <9556c2ae-2dc8-9d0a-55de-002d674680bf@virtuozzo.com> On Mon 13-09-21 11:29:37, Vasily Averin wrote: > On 9/10/21 5:55 PM, Michal Hocko wrote: > > On Fri 10-09-21 16:20:58, Vasily Averin wrote: > >> On 9/10/21 4:04 PM, Tetsuo Handa wrote: > >>> Can't we add fatal_signal_pending(current) test to vmalloc() loop? > > > > We can and we should. > > > >> 1) this has been done in the past but has been reverted later. > > > > The reason for that should be addressed IIRC. > > I don't know the details of this, and I need some time to investigate it. b8c8a338f75e ("Revert "vmalloc: back off when the current task is killed"") should give a good insight and references. > >> 2) any vmalloc changes will affect non-memcg allocations too. > >> If we're doing memcg-related checks it's better to do it in one place. > > > > I think those two things are just orthogonal. Bailing out from vmalloc > > early sounds reasonable to me on its own. Allocating a large thing that > > is likely to go away with the allocating context is just a waste of > > resources and potential reason to disruptions to others. > > I doubt that fatal signal should block any vmalloc allocations. > I assume there are situations where rollback of some cancelled operation uses vmalloc. > Or coredump saving on some remote storage can uses vmalloc. If there really are any such requirements then this should be really documented. > However for me it's abnormal that even OOM-killer cannot cancel huge vmalloc allocation. > So I think tsk_is_oom_victim(current) check should be added to vm_area_alloc_pages() > to break vmalloc cycle. Why should oom killed task behave any different than any other task killed without a way to handle the signal? -- Michal Hocko SUSE Labs
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko-IBi9RG/b67k@public.gmane.org> To: Vasily Averin <vvs-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org> Cc: Tetsuo Handa <penguin-kernel-1yMVhJb1mP/7nzcFbJAaVXf5DAMn2ifp@public.gmane.org>, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>, Vladimir Davydov <vdavydov.dev-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org> Subject: Re: [PATCH memcg] memcg: prohibit unconditional exceeding the limit of dying tasks Date: Mon, 13 Sep 2021 10:42:56 +0200 [thread overview] Message-ID: <YT8PEBbYZhLixEJD@dhcp22.suse.cz> (raw) In-Reply-To: <9556c2ae-2dc8-9d0a-55de-002d674680bf-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org> On Mon 13-09-21 11:29:37, Vasily Averin wrote: > On 9/10/21 5:55 PM, Michal Hocko wrote: > > On Fri 10-09-21 16:20:58, Vasily Averin wrote: > >> On 9/10/21 4:04 PM, Tetsuo Handa wrote: > >>> Can't we add fatal_signal_pending(current) test to vmalloc() loop? > > > > We can and we should. > > > >> 1) this has been done in the past but has been reverted later. > > > > The reason for that should be addressed IIRC. > > I don't know the details of this, and I need some time to investigate it. b8c8a338f75e ("Revert "vmalloc: back off when the current task is killed"") should give a good insight and references. > >> 2) any vmalloc changes will affect non-memcg allocations too. > >> If we're doing memcg-related checks it's better to do it in one place. > > > > I think those two things are just orthogonal. Bailing out from vmalloc > > early sounds reasonable to me on its own. Allocating a large thing that > > is likely to go away with the allocating context is just a waste of > > resources and potential reason to disruptions to others. > > I doubt that fatal signal should block any vmalloc allocations. > I assume there are situations where rollback of some cancelled operation uses vmalloc. > Or coredump saving on some remote storage can uses vmalloc. If there really are any such requirements then this should be really documented. > However for me it's abnormal that even OOM-killer cannot cancel huge vmalloc allocation. > So I think tsk_is_oom_victim(current) check should be added to vm_area_alloc_pages() > to break vmalloc cycle. Why should oom killed task behave any different than any other task killed without a way to handle the signal? -- Michal Hocko SUSE Labs
next prev parent reply other threads:[~2021-09-13 8:43 UTC|newest] Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-10 12:39 [PATCH memcg] memcg: prohibit unconditional exceeding the limit of dying tasks Vasily Averin 2021-09-10 13:04 ` Tetsuo Handa 2021-09-10 13:04 ` Tetsuo Handa 2021-09-10 13:20 ` Vasily Averin 2021-09-10 13:20 ` Vasily Averin 2021-09-10 14:55 ` Michal Hocko 2021-09-13 8:29 ` Vasily Averin 2021-09-13 8:29 ` Vasily Averin 2021-09-13 8:42 ` Michal Hocko [this message] 2021-09-13 8:42 ` Michal Hocko 2021-09-17 8:06 ` [PATCH mm] vmalloc: back off when the current task is OOM-killed Vasily Averin 2021-09-17 8:06 ` Vasily Averin 2021-09-19 23:31 ` Andrew Morton 2021-09-19 23:31 ` Andrew Morton 2021-09-20 1:22 ` Tetsuo Handa 2021-09-20 10:59 ` Vasily Averin 2021-09-20 10:59 ` Vasily Averin 2021-09-21 18:55 ` Andrew Morton 2021-09-22 6:18 ` Vasily Averin 2021-09-22 12:27 ` Michal Hocko 2021-09-22 12:27 ` Michal Hocko 2021-09-23 6:49 ` Vasily Averin 2021-09-23 6:49 ` Vasily Averin 2021-09-24 7:55 ` Michal Hocko 2021-09-24 7:55 ` Michal Hocko 2021-09-27 9:36 ` Vasily Averin 2021-09-27 9:36 ` Vasily Averin 2021-09-27 11:08 ` Michal Hocko 2021-09-27 11:08 ` Michal Hocko 2021-10-05 13:52 ` [PATCH mm v2] " Vasily Averin 2021-10-05 13:52 ` Vasily Averin 2021-10-05 14:00 ` Vasily Averin 2021-10-05 14:00 ` Vasily Averin 2021-10-07 10:47 ` Michal Hocko 2021-10-07 10:47 ` Michal Hocko 2021-10-07 19:55 ` Andrew Morton 2021-10-07 19:55 ` Andrew Morton 2021-09-10 13:07 ` [PATCH memcg] memcg: prohibit unconditional exceeding the limit of dying tasks Vasily Averin 2021-09-10 13:07 ` Vasily Averin 2021-09-13 7:51 ` Vasily Averin 2021-09-13 7:51 ` Vasily Averin 2021-09-13 8:39 ` Michal Hocko 2021-09-13 8:39 ` Michal Hocko 2021-09-13 9:37 ` Vasily Averin 2021-09-13 9:37 ` Vasily Averin 2021-09-13 10:10 ` Michal Hocko 2021-09-13 10:10 ` Michal Hocko 2021-09-13 8:53 ` Michal Hocko 2021-09-13 10:35 ` Vasily Averin 2021-09-13 10:35 ` Vasily Averin 2021-09-13 10:55 ` Michal Hocko 2021-09-13 10:55 ` Michal Hocko 2021-09-14 10:01 ` Vasily Averin 2021-09-14 10:01 ` Vasily Averin 2021-09-14 10:10 ` [PATCH memcg v2] " Vasily Averin 2021-09-14 10:10 ` Vasily Averin 2021-09-16 12:55 ` Michal Hocko 2021-09-16 12:55 ` Michal Hocko 2021-10-05 13:52 ` [PATCH memcg v3] " Vasily Averin 2021-10-05 13:52 ` Vasily Averin 2021-10-05 14:55 ` Michal Hocko 2021-10-05 14:55 ` 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=YT8PEBbYZhLixEJD@dhcp22.suse.cz \ --to=mhocko@suse.com \ --cc=akpm@linux-foundation.org \ --cc=cgroups@vger.kernel.org \ --cc=hannes@cmpxchg.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=penguin-kernel@i-love.sakura.ne.jp \ --cc=vdavydov.dev@gmail.com \ --cc=vvs@virtuozzo.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.