From: Shakeel Butt <shakeelb@google.com> To: Mina Almasry <almasrymina@google.com> Cc: Johannes Weiner <hannes@cmpxchg.org>, Michal Hocko <mhocko@kernel.org>, Vladimir Davydov <vdavydov.dev@gmail.com>, Andrew Morton <akpm@linux-foundation.org>, Jonathan Corbet <corbet@lwn.net>, Alexander Viro <viro@zeniv.linux.org.uk>, Hugh Dickins <hughd@google.com>, Shuah Khan <shuah@kernel.org>, Greg Thelen <gthelen@google.com>, Dave Chinner <david@fromorbit.com>, Matthew Wilcox <willy@infradead.org>, Roman Gushchin <guro@fb.com>, "Theodore Ts'o" <tytso@mit.edu>, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org Subject: Re: [PATCH v4 2/4] mm/oom: handle remote ooms Date: Fri, 19 Nov 2021 23:58:21 -0800 [thread overview] Message-ID: <CALvZod680y1o3WKFKEXmXf3Cd4j-POpc-zrAQ1+ykLoWK9-21A@mail.gmail.com> (raw) In-Reply-To: <20211120045011.3074840-3-almasrymina@google.com> On Fri, Nov 19, 2021 at 8:50 PM Mina Almasry <almasrymina@google.com> wrote: > [...] > +/* > + * Returns true if current's mm is a descendant of the memcg_under_oom (or > + * equal to it). False otherwise. This is used by the oom-killer to detect > + * ooms due to remote charging. > + */ > +bool is_remote_oom(struct mem_cgroup *memcg_under_oom) > +{ > + struct mem_cgroup *current_memcg; > + bool is_remote_oom; > + > + if (!memcg_under_oom) > + return false; > + > + rcu_read_lock(); > + current_memcg = mem_cgroup_from_task(current); > + if (current_memcg && !css_tryget_online(¤t_memcg->css)) No need to grab a reference. You can call mem_cgroup_is_descendant() within rcu. > + current_memcg = NULL; > + rcu_read_unlock(); > + > + if (!current_memcg) > + return false; > + > + is_remote_oom = > + !mem_cgroup_is_descendant(current_memcg, memcg_under_oom); > + css_put(¤t_memcg->css); > + > + return is_remote_oom; > +} > +
WARNING: multiple messages have this Message-ID (diff)
From: Shakeel Butt <shakeelb-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> To: Mina Almasry <almasrymina-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> Cc: Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>, Michal Hocko <mhocko-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Vladimir Davydov <vdavydov.dev-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>, Jonathan Corbet <corbet-T1hC0tSOHrs@public.gmane.org>, Alexander Viro <viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn@public.gmane.org>, Hugh Dickins <hughd-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>, Shuah Khan <shuah-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Greg Thelen <gthelen-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>, Dave Chinner <david-FqsqvQoI3Ljby3iVrkZq2A@public.gmane.org>, Matthew Wilcox <willy-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>, Roman Gushchin <guro-b10kYP2dOMg@public.gmane.org>, Theodore Ts'o <tytso-3s7WtUTddSA@public.gmane.org>, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Subject: Re: [PATCH v4 2/4] mm/oom: handle remote ooms Date: Fri, 19 Nov 2021 23:58:21 -0800 [thread overview] Message-ID: <CALvZod680y1o3WKFKEXmXf3Cd4j-POpc-zrAQ1+ykLoWK9-21A@mail.gmail.com> (raw) In-Reply-To: <20211120045011.3074840-3-almasrymina-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> On Fri, Nov 19, 2021 at 8:50 PM Mina Almasry <almasrymina-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> wrote: > [...] > +/* > + * Returns true if current's mm is a descendant of the memcg_under_oom (or > + * equal to it). False otherwise. This is used by the oom-killer to detect > + * ooms due to remote charging. > + */ > +bool is_remote_oom(struct mem_cgroup *memcg_under_oom) > +{ > + struct mem_cgroup *current_memcg; > + bool is_remote_oom; > + > + if (!memcg_under_oom) > + return false; > + > + rcu_read_lock(); > + current_memcg = mem_cgroup_from_task(current); > + if (current_memcg && !css_tryget_online(¤t_memcg->css)) No need to grab a reference. You can call mem_cgroup_is_descendant() within rcu. > + current_memcg = NULL; > + rcu_read_unlock(); > + > + if (!current_memcg) > + return false; > + > + is_remote_oom = > + !mem_cgroup_is_descendant(current_memcg, memcg_under_oom); > + css_put(¤t_memcg->css); > + > + return is_remote_oom; > +} > +
next prev parent reply other threads:[~2021-11-20 7:58 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-11-20 4:50 [PATCH v4 0/4] Deterministic charging of shared memory Mina Almasry 2021-11-20 4:50 ` Mina Almasry 2021-11-20 4:50 ` [PATCH v4 1/4] mm: support deterministic memory charging of filesystems Mina Almasry 2021-11-20 4:50 ` Mina Almasry 2021-11-20 7:53 ` Shakeel Butt 2021-11-20 4:50 ` [PATCH v4 2/4] mm/oom: handle remote ooms Mina Almasry 2021-11-20 5:07 ` Matthew Wilcox 2021-11-20 5:07 ` Matthew Wilcox 2021-11-20 5:31 ` Mina Almasry 2021-11-20 7:58 ` Shakeel Butt [this message] 2021-11-20 7:58 ` Shakeel Butt 2021-11-20 4:50 ` [PATCH v4 3/4] mm, shmem: add filesystem memcg= option documentation Mina Almasry 2021-11-20 4:50 ` [PATCH v4 4/4] mm, shmem, selftests: add tmpfs memcg= mount option tests Mina Almasry 2021-11-20 5:01 ` [PATCH v4 0/4] Deterministic charging of shared memory Matthew Wilcox 2021-11-20 5:27 ` Mina Almasry 2021-11-22 19:04 ` Johannes Weiner 2021-11-22 22:09 ` Mina Almasry 2021-11-22 23:09 ` Roman Gushchin 2021-11-23 19:26 ` Mina Almasry 2021-11-23 20:21 ` Johannes Weiner 2021-11-23 21:19 ` Mina Almasry 2021-11-23 22:49 ` Roman Gushchin 2021-11-24 17:27 ` Michal Hocko 2021-11-29 6:00 ` Shakeel Butt
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=CALvZod680y1o3WKFKEXmXf3Cd4j-POpc-zrAQ1+ykLoWK9-21A@mail.gmail.com \ --to=shakeelb@google.com \ --cc=akpm@linux-foundation.org \ --cc=almasrymina@google.com \ --cc=cgroups@vger.kernel.org \ --cc=corbet@lwn.net \ --cc=david@fromorbit.com \ --cc=gthelen@google.com \ --cc=guro@fb.com \ --cc=hannes@cmpxchg.org \ --cc=hughd@google.com \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mhocko@kernel.org \ --cc=shuah@kernel.org \ --cc=tytso@mit.edu \ --cc=vdavydov.dev@gmail.com \ --cc=viro@zeniv.linux.org.uk \ --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: 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.