From: Marcelo Tosatti <mtosatti-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Michal Hocko <mhocko-IBi9RG/b67k@public.gmane.org>
Cc: "Leonardo Brás" <leobras-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
"Johannes Weiner"
<hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>,
"Roman Gushchin"
<roman.gushchin-fxUVXftIFDnyG1zEObXtfA@public.gmane.org>,
"Shakeel Butt" <shakeelb-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
"Muchun Song"
<muchun.song-fxUVXftIFDnyG1zEObXtfA@public.gmane.org>,
"Andrew Morton"
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v2 0/5] Introduce memcg_stock_pcp remote draining
Date: Thu, 26 Jan 2023 15:14:25 -0300 [thread overview]
Message-ID: <Y9LDAZmApLeffrT8@tpad> (raw)
In-Reply-To: <Y9IvoDJbLbFcitTc-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
On Thu, Jan 26, 2023 at 08:45:36AM +0100, Michal Hocko wrote:
> On Wed 25-01-23 15:22:00, Marcelo Tosatti wrote:
> [...]
> > Remote draining reduces interruptions whether CPU
> > is marked as isolated or not:
> >
> > - Allows isolated CPUs from benefiting of pcp caching.
> > - Removes the interruption to non isolated CPUs. See for example
> >
> > https://lkml.org/lkml/2022/6/13/2769
>
> This is talking about page allocato per cpu caches, right? In this patch
> we are talking about memcg pcp caches. Are you sure the same applies
> here?
Both can stall the users of the drain operation.
"Minchan Kim tested this independently and reported;
My workload is not NOHZ CPUs but run apps under heavy memory
pressure so they goes to direct reclaim and be stuck on
drain_all_pages until work on workqueue run."
Therefore using a workqueue to drain memcg pcps also depends on the
remote CPU executing that work item in time (which can stall
the following). No?
===
7 3141 mm/memory.c <<wp_page_copy>>
if (mem_cgroup_charge(page_folio(new_page), mm, GFP_KERNEL))
8 4118 mm/memory.c <<do_anonymous_page>>
if (mem_cgroup_charge(page_folio(page), vma->vm_mm, GFP_KERNEL))
9 4577 mm/memory.c <<do_cow_fault>>
if (mem_cgroup_charge(page_folio(vmf->cow_page), vma->vm_mm,
10 621 mm/migrate_device.c <<migrate_vma_insert_page>>
if (mem_cgroup_charge(page_folio(page), vma->vm_mm, GFP_KERNEL))
11 710 mm/shmem.c <<shmem_add_to_page_cache>>
error = mem_cgroup_charge(folio, charge_mm, gfp);
WARNING: multiple messages have this Message-ID (diff)
From: Marcelo Tosatti <mtosatti@redhat.com>
To: Michal Hocko <mhocko@suse.com>
Cc: "Leonardo Brás" <leobras@redhat.com>,
"Johannes Weiner" <hannes@cmpxchg.org>,
"Roman Gushchin" <roman.gushchin@linux.dev>,
"Shakeel Butt" <shakeelb@google.com>,
"Muchun Song" <muchun.song@linux.dev>,
"Andrew Morton" <akpm@linux-foundation.org>,
cgroups@vger.kernel.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 0/5] Introduce memcg_stock_pcp remote draining
Date: Thu, 26 Jan 2023 15:14:25 -0300 [thread overview]
Message-ID: <Y9LDAZmApLeffrT8@tpad> (raw)
In-Reply-To: <Y9IvoDJbLbFcitTc@dhcp22.suse.cz>
On Thu, Jan 26, 2023 at 08:45:36AM +0100, Michal Hocko wrote:
> On Wed 25-01-23 15:22:00, Marcelo Tosatti wrote:
> [...]
> > Remote draining reduces interruptions whether CPU
> > is marked as isolated or not:
> >
> > - Allows isolated CPUs from benefiting of pcp caching.
> > - Removes the interruption to non isolated CPUs. See for example
> >
> > https://lkml.org/lkml/2022/6/13/2769
>
> This is talking about page allocato per cpu caches, right? In this patch
> we are talking about memcg pcp caches. Are you sure the same applies
> here?
Both can stall the users of the drain operation.
"Minchan Kim tested this independently and reported;
My workload is not NOHZ CPUs but run apps under heavy memory
pressure so they goes to direct reclaim and be stuck on
drain_all_pages until work on workqueue run."
Therefore using a workqueue to drain memcg pcps also depends on the
remote CPU executing that work item in time (which can stall
the following). No?
===
7 3141 mm/memory.c <<wp_page_copy>>
if (mem_cgroup_charge(page_folio(new_page), mm, GFP_KERNEL))
8 4118 mm/memory.c <<do_anonymous_page>>
if (mem_cgroup_charge(page_folio(page), vma->vm_mm, GFP_KERNEL))
9 4577 mm/memory.c <<do_cow_fault>>
if (mem_cgroup_charge(page_folio(vmf->cow_page), vma->vm_mm,
10 621 mm/migrate_device.c <<migrate_vma_insert_page>>
if (mem_cgroup_charge(page_folio(page), vma->vm_mm, GFP_KERNEL))
11 710 mm/shmem.c <<shmem_add_to_page_cache>>
error = mem_cgroup_charge(folio, charge_mm, gfp);
next prev parent reply other threads:[~2023-01-26 18:14 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-25 7:34 [PATCH v2 0/5] Introduce memcg_stock_pcp remote draining Leonardo Bras
2023-01-25 7:34 ` Leonardo Bras
[not found] ` <20230125073502.743446-1-leobras-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2023-01-25 7:34 ` [PATCH v2 1/5] mm/memcontrol: Align percpu memcg_stock to cache Leonardo Bras
2023-01-25 7:34 ` Leonardo Bras
2023-01-25 7:34 ` [PATCH v2 2/5] mm/memcontrol: Change stock_lock type from local_lock_t to spinlock_t Leonardo Bras
2023-01-25 7:34 ` Leonardo Bras
2023-01-25 7:35 ` [PATCH v2 3/5] mm/memcontrol: Reorder memcg_stock_pcp members to avoid holes Leonardo Bras
2023-01-25 7:35 ` Leonardo Bras
2023-01-25 7:35 ` [PATCH v2 5/5] mm/memcontrol: Remove flags from memcg_stock_pcp Leonardo Bras
2023-01-25 7:35 ` Leonardo Bras
2023-01-25 8:33 ` [PATCH v2 0/5] Introduce memcg_stock_pcp remote draining Michal Hocko
2023-01-25 8:33 ` Michal Hocko
[not found] ` <Y9DpbVF+JR/G+5Or-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2023-01-25 11:06 ` Leonardo Brás
2023-01-25 11:06 ` Leonardo Brás
[not found] ` <9e61ab53e1419a144f774b95230b789244895424.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2023-01-25 11:39 ` Michal Hocko
2023-01-25 11:39 ` Michal Hocko
2023-01-25 18:22 ` Marcelo Tosatti
2023-01-25 18:22 ` Marcelo Tosatti
2023-01-25 23:14 ` Roman Gushchin
2023-01-25 23:14 ` Roman Gushchin
[not found] ` <Y9G36AiqPPFDlax3-+xijCwNIfdoLQcUKs7qKB+WAnPUfkyWGUBSOeVevoDU@public.gmane.org>
2023-01-26 7:41 ` Michal Hocko
2023-01-26 7:41 ` Michal Hocko
2023-01-26 18:03 ` Marcelo Tosatti
2023-01-26 19:20 ` Michal Hocko
[not found] ` <Y9LSjnNEEUiF/70R-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2023-01-27 0:32 ` Marcelo Tosatti
2023-01-27 0:32 ` Marcelo Tosatti
2023-01-27 6:58 ` Michal Hocko
2023-01-27 6:58 ` Michal Hocko
2023-02-01 18:31 ` Roman Gushchin
2023-01-26 23:12 ` Roman Gushchin
[not found] ` <Y9MI42NSLooyVZNu-+xijCwNIfdoLQcUKs7qKB+WAnPUfkyWGUBSOeVevoDU@public.gmane.org>
2023-01-27 7:11 ` Michal Hocko
2023-01-27 7:11 ` Michal Hocko
2023-01-27 7:22 ` Leonardo Brás
[not found] ` <52a0f1e593b1ec0ca7e417ba37680d65df22de82.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2023-01-27 8:12 ` Leonardo Brás
2023-01-27 8:12 ` Leonardo Brás
[not found] ` <601fc35a8cc2167e53e45c636fccb2d899fd7c50.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2023-01-27 9:23 ` Michal Hocko
2023-01-27 9:23 ` Michal Hocko
2023-01-27 13:03 ` Frederic Weisbecker
2023-01-27 13:03 ` Frederic Weisbecker
[not found] ` <Y9N5CI8PpsfiaY9c-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2023-01-27 13:58 ` Michal Hocko
2023-01-27 13:58 ` Michal Hocko
[not found] ` <Y9PYe1X7dRQOcahg-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2023-01-27 18:18 ` Roman Gushchin
2023-01-27 18:18 ` Roman Gushchin
[not found] ` <Y9QVWwAreTlDVdZ0-+xijCwNIfdoLQcUKs7qKB+WAnPUfkyWGUBSOeVevoDU@public.gmane.org>
2023-02-03 15:21 ` Michal Hocko
2023-02-03 15:21 ` Michal Hocko
[not found] ` <Y90mZQhW89HtYfT9-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2023-02-03 19:25 ` Roman Gushchin
2023-02-03 19:25 ` Roman Gushchin
[not found] ` <Y91fnF5uEcSA0/99-+xijCwNIfdoLQcUKs7qKB+WAnPUfkyWGUBSOeVevoDU@public.gmane.org>
2023-02-13 13:36 ` Michal Hocko
2023-02-13 13:36 ` Michal Hocko
2023-01-27 7:14 ` Leonardo Brás
2023-01-27 7:14 ` Leonardo Brás
[not found] ` <55ac6e3cbb97c7d13c49c3125c1455d8a2c785c3.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2023-01-27 7:20 ` Michal Hocko
2023-01-27 7:20 ` Michal Hocko
2023-01-27 7:35 ` Leonardo Brás
2023-01-27 9:29 ` Michal Hocko
[not found] ` <Y9OZezjUPITtEvTx-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2023-01-27 19:29 ` Leonardo Brás
2023-01-27 19:29 ` Leonardo Brás
2023-01-27 23:50 ` Roman Gushchin
2023-01-26 18:19 ` Marcelo Tosatti
2023-01-26 18:19 ` Marcelo Tosatti
2023-01-27 5:40 ` Leonardo Brás
2023-01-27 5:40 ` Leonardo Brás
2023-01-26 2:01 ` Hillf Danton
2023-01-26 7:45 ` Michal Hocko
2023-01-26 7:45 ` Michal Hocko
[not found] ` <Y9IvoDJbLbFcitTc-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2023-01-26 18:14 ` Marcelo Tosatti [this message]
2023-01-26 18:14 ` Marcelo Tosatti
2023-01-26 19:13 ` Michal Hocko
2023-01-26 19:13 ` Michal Hocko
[not found] ` <Y9LQ615H13RmG7wL-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2023-01-27 6:55 ` Leonardo Brás
2023-01-27 6:55 ` Leonardo Brás
[not found] ` <0122005439ffb7895efda7a1a67992cbe41392fe.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2023-01-31 11:35 ` Marcelo Tosatti
2023-01-31 11:35 ` Marcelo Tosatti
2023-02-01 4:36 ` Leonardo Brás
[not found] ` <5ba79c4feb829ed75cfd98cf5c8042dcb2ddea91.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2023-02-01 12:52 ` Michal Hocko
2023-02-01 12:52 ` Michal Hocko
2023-02-01 12:41 ` Michal Hocko
2023-02-01 12:41 ` Michal Hocko
[not found] ` <Y9pd7AxAILUSHrpe-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2023-02-04 4:55 ` Leonardo Brás
2023-02-04 4:55 ` Leonardo Brás
2023-02-05 19:49 ` Roman Gushchin
2023-02-07 3:18 ` Leonardo Brás
[not found] ` <4b232f47e038ab6fcaa0114f73c28d4bf8799f84.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2023-02-08 19:23 ` Roman Gushchin
2023-02-08 19:23 ` Roman Gushchin
2023-01-25 7:35 ` [PATCH v2 4/5] mm/memcontrol: Perform all stock drain in current CPU Leonardo Bras
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=Y9LDAZmApLeffrT8@tpad \
--to=mtosatti-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org \
--cc=leobras-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org \
--cc=mhocko-IBi9RG/b67k@public.gmane.org \
--cc=muchun.song-fxUVXftIFDnyG1zEObXtfA@public.gmane.org \
--cc=roman.gushchin-fxUVXftIFDnyG1zEObXtfA@public.gmane.org \
--cc=shakeelb-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.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 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.