From: Michal Hocko <mhocko@suse.com> To: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, "Andrew Morton" <akpm@linux-foundation.org>, "Johannes Weiner" <hannes@cmpxchg.org>, "Michal Koutný" <mkoutny@suse.com>, "Peter Zijlstra" <peterz@infradead.org>, "Thomas Gleixner" <tglx@linutronix.de>, "Vladimir Davydov" <vdavydov.dev@gmail.com>, "Waiman Long" <longman@redhat.com> Subject: Re: [PATCH 1/4] mm/memcg: Disable threshold event handlers on PREEMPT_RT Date: Wed, 26 Jan 2022 15:40:54 +0100 [thread overview] Message-ID: <YfFddqkAhd1YKqX9@dhcp22.suse.cz> (raw) In-Reply-To: <20220125164337.2071854-2-bigeasy@linutronix.de> On Tue 25-01-22 17:43:34, Sebastian Andrzej Siewior wrote: > During the integration of PREEMPT_RT support, the code flow around > memcg_check_events() resulted in `twisted code'. Moving the code around > and avoiding then would then lead to an additional local-irq-save > section within memcg_check_events(). While looking better, it adds a > local-irq-save section to code flow which is usually within an > local-irq-off block on non-PREEMPT_RT configurations. > > The threshold event handler is a deprecated memcg v1 feature. Instead of > trying to get it to work under PREEMPT_RT just disable it. There should > be no users on PREEMPT_RT. From that perspective it makes even less > sense to get it to work under PREEMPT_RT while having zero users. > > Make memory.soft_limit_in_bytes and cgroup.event_control return > -EOPNOTSUPP on PREEMPT_RT. Make an empty memcg_check_events() and > memcg_write_event_control() which return only -EOPNOTSUPP on PREEMPT_RT. > Document that the two knobs are disabled on PREEMPT_RT. Shuffle the code around > so that all unused function are in on #ifdef block. > > Suggested-by: Michal Hocko <mhocko@kernel.org> > Suggested-by: Michal Koutný <mkoutny@suse.com> > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> I still support this approach but the patch is much larger than necessary. The code moving shouldn't be really necessary and a simple "do not allow" to set any thresholds or soft limit should be good enough. While in general it is better to disable the unreachable code I do not think this is worth the code churn here. > --- > .../admin-guide/cgroup-v1/memory.rst | 2 + > mm/memcontrol.c | 788 +++++++++--------- > 2 files changed, 404 insertions(+), 386 deletions(-) -- Michal Hocko SUSE Labs
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko-IBi9RG/b67k@public.gmane.org> To: Sebastian Andrzej Siewior <bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org> Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, "Andrew Morton" <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>, "Johannes Weiner" <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>, "Michal Koutný" <mkoutny-IBi9RG/b67k@public.gmane.org>, "Peter Zijlstra" <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>, "Thomas Gleixner" <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>, "Vladimir Davydov" <vdavydov.dev-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, "Waiman Long" <longman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> Subject: Re: [PATCH 1/4] mm/memcg: Disable threshold event handlers on PREEMPT_RT Date: Wed, 26 Jan 2022 15:40:54 +0100 [thread overview] Message-ID: <YfFddqkAhd1YKqX9@dhcp22.suse.cz> (raw) In-Reply-To: <20220125164337.2071854-2-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org> On Tue 25-01-22 17:43:34, Sebastian Andrzej Siewior wrote: > During the integration of PREEMPT_RT support, the code flow around > memcg_check_events() resulted in `twisted code'. Moving the code around > and avoiding then would then lead to an additional local-irq-save > section within memcg_check_events(). While looking better, it adds a > local-irq-save section to code flow which is usually within an > local-irq-off block on non-PREEMPT_RT configurations. > > The threshold event handler is a deprecated memcg v1 feature. Instead of > trying to get it to work under PREEMPT_RT just disable it. There should > be no users on PREEMPT_RT. From that perspective it makes even less > sense to get it to work under PREEMPT_RT while having zero users. > > Make memory.soft_limit_in_bytes and cgroup.event_control return > -EOPNOTSUPP on PREEMPT_RT. Make an empty memcg_check_events() and > memcg_write_event_control() which return only -EOPNOTSUPP on PREEMPT_RT. > Document that the two knobs are disabled on PREEMPT_RT. Shuffle the code around > so that all unused function are in on #ifdef block. > > Suggested-by: Michal Hocko <mhocko-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > Suggested-by: Michal Koutný <mkoutny-IBi9RG/b67k@public.gmane.org> > Signed-off-by: Sebastian Andrzej Siewior <bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org> I still support this approach but the patch is much larger than necessary. The code moving shouldn't be really necessary and a simple "do not allow" to set any thresholds or soft limit should be good enough. While in general it is better to disable the unreachable code I do not think this is worth the code churn here. > --- > .../admin-guide/cgroup-v1/memory.rst | 2 + > mm/memcontrol.c | 788 +++++++++--------- > 2 files changed, 404 insertions(+), 386 deletions(-) -- Michal Hocko SUSE Labs
next prev parent reply other threads:[~2022-01-26 14:40 UTC|newest] Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-01-25 16:43 [PATCH 0/4] mm/memcg: Address PREEMPT_RT problems instead of disabling it Sebastian Andrzej Siewior 2022-01-25 16:43 ` Sebastian Andrzej Siewior 2022-01-25 16:43 ` [PATCH 1/4] mm/memcg: Disable threshold event handlers on PREEMPT_RT Sebastian Andrzej Siewior 2022-01-25 16:43 ` Sebastian Andrzej Siewior 2022-01-26 14:40 ` Michal Hocko [this message] 2022-01-26 14:40 ` Michal Hocko 2022-01-26 14:45 ` Sebastian Andrzej Siewior 2022-01-26 14:45 ` Sebastian Andrzej Siewior 2022-01-26 15:04 ` Michal Koutný 2022-01-26 15:04 ` Michal Koutný 2022-01-27 13:36 ` Sebastian Andrzej Siewior 2022-01-27 13:36 ` Sebastian Andrzej Siewior 2022-01-26 15:21 ` Michal Hocko 2022-01-26 15:21 ` Michal Hocko 2022-01-25 16:43 ` [PATCH 2/4] mm/memcg: Protect per-CPU counter by disabling preemption on PREEMPT_RT where needed Sebastian Andrzej Siewior 2022-01-25 16:43 ` Sebastian Andrzej Siewior 2022-01-26 10:06 ` Vlastimil Babka 2022-01-26 10:06 ` Vlastimil Babka 2022-01-26 11:24 ` Sebastian Andrzej Siewior 2022-01-26 11:24 ` Sebastian Andrzej Siewior 2022-01-26 14:56 ` Michal Hocko 2022-01-26 14:56 ` Michal Hocko 2022-01-25 16:43 ` [PATCH 3/4] mm/memcg: Add a local_lock_t for IRQ and TASK object Sebastian Andrzej Siewior 2022-01-25 16:43 ` Sebastian Andrzej Siewior 2022-01-26 15:20 ` Michal Hocko 2022-01-26 15:20 ` Michal Hocko 2022-01-27 11:53 ` Sebastian Andrzej Siewior 2022-01-27 11:53 ` Sebastian Andrzej Siewior 2022-02-01 12:04 ` Michal Hocko 2022-02-01 12:04 ` Michal Hocko 2022-02-01 12:11 ` Sebastian Andrzej Siewior 2022-02-01 12:11 ` Sebastian Andrzej Siewior 2022-02-01 15:29 ` Michal Hocko 2022-02-01 15:29 ` Michal Hocko 2022-02-03 9:54 ` Sebastian Andrzej Siewior 2022-02-03 9:54 ` Sebastian Andrzej Siewior 2022-02-03 10:09 ` Michal Hocko 2022-02-03 10:09 ` Michal Hocko 2022-02-03 11:09 ` Sebastian Andrzej Siewior 2022-02-03 11:09 ` Sebastian Andrzej Siewior 2022-02-08 17:58 ` Shakeel Butt 2022-02-08 17:58 ` Shakeel Butt 2022-02-09 9:17 ` Michal Hocko 2022-02-09 9:17 ` Michal Hocko 2022-01-26 16:57 ` Vlastimil Babka 2022-01-26 16:57 ` Vlastimil Babka 2022-01-31 15:06 ` Sebastian Andrzej Siewior 2022-01-31 15:06 ` Sebastian Andrzej Siewior 2022-02-03 16:01 ` Vlastimil Babka 2022-02-03 16:01 ` Vlastimil Babka 2022-02-08 17:17 ` Sebastian Andrzej Siewior 2022-02-08 17:17 ` Sebastian Andrzej Siewior 2022-02-08 17:28 ` Michal Hocko 2022-02-08 17:28 ` Michal Hocko 2022-02-09 1:48 ` [mm/memcg] 86895e1e85: WARNING:possible_circular_locking_dependency_detected kernel test robot 2022-02-09 1:48 ` kernel test robot 2022-01-25 16:43 ` [PATCH 4/4] mm/memcg: Allow the task_obj optimization only on non-PREEMPTIBLE kernels Sebastian Andrzej Siewior 2022-01-25 16:43 ` Sebastian Andrzej Siewior 2022-01-25 23:21 ` [PATCH 0/4] mm/memcg: Address PREEMPT_RT problems instead of disabling it Andrew Morton 2022-01-25 23:21 ` Andrew Morton 2022-01-26 7:30 ` Sebastian Andrzej Siewior 2022-01-26 7:30 ` Sebastian Andrzej Siewior 2022-07-12 11:22 [PATCH 0/4] Backport MEMCG changes from v5.17 David Oberhollenzer 2022-07-12 11:22 ` [PATCH 1/4] mm/memcg: Disable threshold event handlers on PREEMPT_RT David Oberhollenzer
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=YfFddqkAhd1YKqX9@dhcp22.suse.cz \ --to=mhocko@suse.com \ --cc=akpm@linux-foundation.org \ --cc=bigeasy@linutronix.de \ --cc=cgroups@vger.kernel.org \ --cc=hannes@cmpxchg.org \ --cc=linux-mm@kvack.org \ --cc=longman@redhat.com \ --cc=mkoutny@suse.com \ --cc=peterz@infradead.org \ --cc=tglx@linutronix.de \ --cc=vdavydov.dev@gmail.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.