From: Suren Baghdasaryan <surenb@google.com> To: Michal Hocko <mhocko@suse.com> Cc: Tejun Heo <tj@kernel.org>, Johannes Weiner <hannes@cmpxchg.org>, vdavydov.dev@gmail.com, Andrew Morton <akpm@linux-foundation.org>, Shakeel Butt <shakeelb@google.com>, Roman Gushchin <guro@fb.com>, songmuchun@bytedance.com, Yang Shi <shy828301@gmail.com>, alexs@kernel.org, richard.weiyang@gmail.com, Vlastimil Babka <vbabka@suse.cz>, Jens Axboe <axboe@kernel.dk>, Joonsoo Kim <iamjoonsoo.kim@lge.com>, David Hildenbrand <david@redhat.com>, Matthew Wilcox <willy@infradead.org>, apopple@nvidia.com, Minchan Kim <minchan@kernel.org>, Miaohe Lin <linmiaohe@huawei.com>, LKML <linux-kernel@vger.kernel.org>, cgroups mailinglist <cgroups@vger.kernel.org>, linux-mm <linux-mm@kvack.org>, kernel-team <kernel-team@android.com> Subject: Re: [PATCH v3 1/3] mm, memcg: add mem_cgroup_disabled checks in vmpressure and swap-related functions Date: Mon, 12 Jul 2021 08:55:00 -0700 [thread overview] Message-ID: <CAJuCfpEWUqE6iuMC02Qac3TBLx7Zy12y3iSwr6Tsvcd-tAMOrw@mail.gmail.com> (raw) In-Reply-To: <YOvrKzvG+nHJpV+V@dhcp22.suse.cz> On Mon, Jul 12, 2021 at 12:11 AM Michal Hocko <mhocko@suse.com> wrote: > > On Fri 09-07-21 17:36:24, Suren Baghdasaryan wrote: > > Add mem_cgroup_disabled check in vmpressure, mem_cgroup_uncharge_swap and > > cgroup_throttle_swaprate functions. This minimizes the memcg overhead in > > the pagefault and exit_mmap paths when memcgs are disabled using > > cgroup_disable=memory command-line option. > > This change results in ~2.1% overhead reduction when running PFT test > > What is PFT test? Christoph Lamenter’s pagefault tool (https://lkml.org/lkml/2006/8/29/294). I'll add the link in the description for clarity. > > > comparing {CONFIG_MEMCG=n, CONFIG_MEMCG_SWAP=n} against {CONFIG_MEMCG=y, > > CONFIG_MEMCG_SWAP=y, cgroup_disable=memory} configuration on an 8-core > > ARM64 Android device. > > > > Signed-off-by: Suren Baghdasaryan <surenb@google.com> > > Reviewed-by: Shakeel Butt <shakeelb@google.com> > > Acked-by: Johannes Weiner <hannes@cmpxchg.org> > > Acked-by: Michal Hocko <mhocko@suse.com> Thanks! > > Thanks! > > > --- > > mm/memcontrol.c | 3 +++ > > mm/swapfile.c | 3 +++ > > mm/vmpressure.c | 7 ++++++- > > 3 files changed, 12 insertions(+), 1 deletion(-) > > > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > > index ae1f5d0cb581..a228cd51c4bd 100644 > > --- a/mm/memcontrol.c > > +++ b/mm/memcontrol.c > > @@ -7305,6 +7305,9 @@ void mem_cgroup_uncharge_swap(swp_entry_t entry, unsigned int nr_pages) > > struct mem_cgroup *memcg; > > unsigned short id; > > > > + if (mem_cgroup_disabled()) > > + return; > > + > > id = swap_cgroup_record(entry, 0, nr_pages); > > rcu_read_lock(); > > memcg = mem_cgroup_from_id(id); > > diff --git a/mm/swapfile.c b/mm/swapfile.c > > index 1e07d1c776f2..707fa0481bb4 100644 > > --- a/mm/swapfile.c > > +++ b/mm/swapfile.c > > @@ -3778,6 +3778,9 @@ void cgroup_throttle_swaprate(struct page *page, gfp_t gfp_mask) > > struct swap_info_struct *si, *next; > > int nid = page_to_nid(page); > > > > + if (mem_cgroup_disabled()) > > + return; > > + > > if (!(gfp_mask & __GFP_IO)) > > return; > > > > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > > index d69019fc3789..9b172561fded 100644 > > --- a/mm/vmpressure.c > > +++ b/mm/vmpressure.c > > @@ -240,7 +240,12 @@ static void vmpressure_work_fn(struct work_struct *work) > > void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree, > > unsigned long scanned, unsigned long reclaimed) > > { > > - struct vmpressure *vmpr = memcg_to_vmpressure(memcg); > > + struct vmpressure *vmpr; > > + > > + if (mem_cgroup_disabled()) > > + return; > > + > > + vmpr = memcg_to_vmpressure(memcg); > > > > /* > > * Here we only want to account pressure that userland is able to > > -- > > 2.32.0.93.g670b81a890-goog > > -- > Michal Hocko > SUSE Labs
WARNING: multiple messages have this Message-ID (diff)
From: Suren Baghdasaryan <surenb-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> To: Michal Hocko <mhocko-IBi9RG/b67k@public.gmane.org> Cc: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>, vdavydov.dev-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>, Shakeel Butt <shakeelb-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>, Roman Gushchin <guro-b10kYP2dOMg@public.gmane.org>, songmuchun-EC8Uxl6Npydl57MIdRCFDg@public.gmane.org, Yang Shi <shy828301-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, alexs-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, richard.weiyang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Vlastimil Babka <vbabka-AlSwsSmVLrQ@public.gmane.org>, Jens Axboe <axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>, Joonsoo Kim <iamjoonsoo.kim-Hm3cg6mZ9cc@public.gmane.org>, David Hildenbrand <david-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>, Matthew Wilcox <willy-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>, apopple-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org, Minchan Kim <minchan-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Miaohe Lin <linmiaohe-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>, LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, cgroups mailinglist <cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, linux-mm <linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org>, kernel-team <kernel-team-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org> Subject: Re: [PATCH v3 1/3] mm, memcg: add mem_cgroup_disabled checks in vmpressure and swap-related functions Date: Mon, 12 Jul 2021 08:55:00 -0700 [thread overview] Message-ID: <CAJuCfpEWUqE6iuMC02Qac3TBLx7Zy12y3iSwr6Tsvcd-tAMOrw@mail.gmail.com> (raw) In-Reply-To: <YOvrKzvG+nHJpV+V-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org> On Mon, Jul 12, 2021 at 12:11 AM Michal Hocko <mhocko-IBi9RG/b67k@public.gmane.org> wrote: > > On Fri 09-07-21 17:36:24, Suren Baghdasaryan wrote: > > Add mem_cgroup_disabled check in vmpressure, mem_cgroup_uncharge_swap and > > cgroup_throttle_swaprate functions. This minimizes the memcg overhead in > > the pagefault and exit_mmap paths when memcgs are disabled using > > cgroup_disable=memory command-line option. > > This change results in ~2.1% overhead reduction when running PFT test > > What is PFT test? Christoph Lamenter’s pagefault tool (https://lkml.org/lkml/2006/8/29/294). I'll add the link in the description for clarity. > > > comparing {CONFIG_MEMCG=n, CONFIG_MEMCG_SWAP=n} against {CONFIG_MEMCG=y, > > CONFIG_MEMCG_SWAP=y, cgroup_disable=memory} configuration on an 8-core > > ARM64 Android device. > > > > Signed-off-by: Suren Baghdasaryan <surenb-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> > > Reviewed-by: Shakeel Butt <shakeelb-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> > > Acked-by: Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org> > > Acked-by: Michal Hocko <mhocko-IBi9RG/b67k@public.gmane.org> Thanks! > > Thanks! > > > --- > > mm/memcontrol.c | 3 +++ > > mm/swapfile.c | 3 +++ > > mm/vmpressure.c | 7 ++++++- > > 3 files changed, 12 insertions(+), 1 deletion(-) > > > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > > index ae1f5d0cb581..a228cd51c4bd 100644 > > --- a/mm/memcontrol.c > > +++ b/mm/memcontrol.c > > @@ -7305,6 +7305,9 @@ void mem_cgroup_uncharge_swap(swp_entry_t entry, unsigned int nr_pages) > > struct mem_cgroup *memcg; > > unsigned short id; > > > > + if (mem_cgroup_disabled()) > > + return; > > + > > id = swap_cgroup_record(entry, 0, nr_pages); > > rcu_read_lock(); > > memcg = mem_cgroup_from_id(id); > > diff --git a/mm/swapfile.c b/mm/swapfile.c > > index 1e07d1c776f2..707fa0481bb4 100644 > > --- a/mm/swapfile.c > > +++ b/mm/swapfile.c > > @@ -3778,6 +3778,9 @@ void cgroup_throttle_swaprate(struct page *page, gfp_t gfp_mask) > > struct swap_info_struct *si, *next; > > int nid = page_to_nid(page); > > > > + if (mem_cgroup_disabled()) > > + return; > > + > > if (!(gfp_mask & __GFP_IO)) > > return; > > > > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > > index d69019fc3789..9b172561fded 100644 > > --- a/mm/vmpressure.c > > +++ b/mm/vmpressure.c > > @@ -240,7 +240,12 @@ static void vmpressure_work_fn(struct work_struct *work) > > void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree, > > unsigned long scanned, unsigned long reclaimed) > > { > > - struct vmpressure *vmpr = memcg_to_vmpressure(memcg); > > + struct vmpressure *vmpr; > > + > > + if (mem_cgroup_disabled()) > > + return; > > + > > + vmpr = memcg_to_vmpressure(memcg); > > > > /* > > * Here we only want to account pressure that userland is able to > > -- > > 2.32.0.93.g670b81a890-goog > > -- > Michal Hocko > SUSE Labs
next prev parent reply other threads:[~2021-07-12 15:55 UTC|newest] Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-10 0:36 [PATCH v3 1/3] mm, memcg: add mem_cgroup_disabled checks in vmpressure and swap-related functions Suren Baghdasaryan 2021-07-10 0:36 ` Suren Baghdasaryan 2021-07-10 0:36 ` Suren Baghdasaryan 2021-07-10 0:36 ` [PATCH v3 2/3] mm, memcg: inline mem_cgroup_{charge/uncharge} to improve disabled memcg config Suren Baghdasaryan 2021-07-10 0:36 ` Suren Baghdasaryan 2021-07-10 11:08 ` [External] " Muchun Song 2021-07-10 11:08 ` Muchun Song 2021-07-10 11:08 ` Muchun Song 2021-07-13 1:12 ` Suren Baghdasaryan 2021-07-13 1:12 ` Suren Baghdasaryan 2021-07-13 1:12 ` Suren Baghdasaryan 2021-07-12 7:15 ` Michal Hocko 2021-07-12 7:15 ` Michal Hocko 2021-07-12 15:55 ` Suren Baghdasaryan 2021-07-12 15:55 ` Suren Baghdasaryan 2021-07-12 15:55 ` Suren Baghdasaryan 2021-07-18 16:55 ` Matthew Wilcox 2021-07-18 16:55 ` Matthew Wilcox 2021-07-18 21:25 ` Suren Baghdasaryan 2021-07-18 21:25 ` Suren Baghdasaryan 2021-07-18 21:25 ` Suren Baghdasaryan 2021-07-18 21:29 ` Matthew Wilcox 2021-07-18 21:29 ` Matthew Wilcox 2021-07-18 21:32 ` Suren Baghdasaryan 2021-07-18 21:32 ` Suren Baghdasaryan 2021-07-18 21:32 ` Suren Baghdasaryan 2021-07-10 0:36 ` [PATCH v3 3/3] mm, memcg: inline swap-related functions " Suren Baghdasaryan 2021-07-10 0:36 ` Suren Baghdasaryan 2021-07-10 0:36 ` Suren Baghdasaryan 2021-07-10 11:19 ` [External] " Muchun Song 2021-07-10 11:19 ` Muchun Song 2021-07-10 11:19 ` Muchun Song 2021-07-12 7:17 ` Michal Hocko 2021-07-12 7:17 ` Michal Hocko 2021-07-12 15:57 ` Suren Baghdasaryan 2021-07-12 15:57 ` Suren Baghdasaryan 2021-07-10 1:52 ` [PATCH v3 1/3] mm, memcg: add mem_cgroup_disabled checks in vmpressure and swap-related functions Miaohe Lin 2021-07-10 1:52 ` Miaohe Lin 2021-07-10 2:40 ` Suren Baghdasaryan 2021-07-10 2:40 ` Suren Baghdasaryan 2021-07-10 3:37 ` Miaohe Lin 2021-07-10 3:37 ` Miaohe Lin 2021-07-10 10:54 ` [External] " Muchun Song 2021-07-10 10:54 ` Muchun Song 2021-07-10 10:54 ` Muchun Song 2021-07-12 7:11 ` Michal Hocko 2021-07-12 7:11 ` Michal Hocko 2021-07-12 15:55 ` Suren Baghdasaryan [this message] 2021-07-12 15:55 ` Suren Baghdasaryan 2021-07-12 15:55 ` Suren Baghdasaryan
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=CAJuCfpEWUqE6iuMC02Qac3TBLx7Zy12y3iSwr6Tsvcd-tAMOrw@mail.gmail.com \ --to=surenb@google.com \ --cc=akpm@linux-foundation.org \ --cc=alexs@kernel.org \ --cc=apopple@nvidia.com \ --cc=axboe@kernel.dk \ --cc=cgroups@vger.kernel.org \ --cc=david@redhat.com \ --cc=guro@fb.com \ --cc=hannes@cmpxchg.org \ --cc=iamjoonsoo.kim@lge.com \ --cc=kernel-team@android.com \ --cc=linmiaohe@huawei.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mhocko@suse.com \ --cc=minchan@kernel.org \ --cc=richard.weiyang@gmail.com \ --cc=shakeelb@google.com \ --cc=shy828301@gmail.com \ --cc=songmuchun@bytedance.com \ --cc=tj@kernel.org \ --cc=vbabka@suse.cz \ --cc=vdavydov.dev@gmail.com \ --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.