Message ID | 20220817162703.728679-7-bigeasy@linutronix.de (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/9] slub: Make PREEMPT_RT support less convoluted | expand |
On Wed, Aug 17, 2022 at 06:27:00PM +0200, Sebastian Andrzej Siewior wrote: > From: Thomas Gleixner <tglx@linutronix.de> > > Use VM_WARN_ON_IRQS_ENABLED() and preempt_disable/enable_nested() to > replace the CONFIG_PREEMPT_RT #ifdeffery. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Cc: Johannes Weiner <hannes@cmpxchg.org> > Cc: Michal Hocko <mhocko@kernel.org> > Cc: Roman Gushchin <roman.gushchin@linux.dev> > Cc: Shakeel Butt <shakeelb@google.com> > Cc: Muchun Song <songmuchun@bytedance.com> > Cc: cgroups@vger.kernel.org > Cc: linux-mm@kvack.org > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Acked-by: Johannes Weiner <hannes@cmpxchg.org>
> On Aug 18, 2022, at 00:27, Sebastian Andrzej Siewior <bigeasy@linutronix.de> wrote: > > From: Thomas Gleixner <tglx@linutronix.de> > > Use VM_WARN_ON_IRQS_ENABLED() and preempt_disable/enable_nested() to > replace the CONFIG_PREEMPT_RT #ifdeffery. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Cc: Johannes Weiner <hannes@cmpxchg.org> > Cc: Michal Hocko <mhocko@kernel.org> > Cc: Roman Gushchin <roman.gushchin@linux.dev> > Cc: Shakeel Butt <shakeelb@google.com> > Cc: Muchun Song <songmuchun@bytedance.com> > Cc: cgroups@vger.kernel.org > Cc: linux-mm@kvack.org > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> More simple. Reviewed-by: Muchun Song <songmuchun@bytedance.com> Thanks.
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index b69979c9ced5c..d35b6fa560f0a 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -597,25 +597,18 @@ static u64 flush_next_time; */ static void memcg_stats_lock(void) { -#ifdef CONFIG_PREEMPT_RT - preempt_disable(); -#else - VM_BUG_ON(!irqs_disabled()); -#endif + preempt_disable_nested(); + VM_WARN_ON_IRQS_ENABLED(); } static void __memcg_stats_lock(void) { -#ifdef CONFIG_PREEMPT_RT - preempt_disable(); -#endif + preempt_disable_nested(); } static void memcg_stats_unlock(void) { -#ifdef CONFIG_PREEMPT_RT - preempt_enable(); -#endif + preempt_enable_nested(); } static inline void memcg_rstat_updated(struct mem_cgroup *memcg, int val) @@ -715,7 +708,7 @@ void __mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, * interrupt context while other caller need to have disabled interrupt. */ __memcg_stats_lock(); - if (IS_ENABLED(CONFIG_DEBUG_VM) && !IS_ENABLED(CONFIG_PREEMPT_RT)) { + if (IS_ENABLED(CONFIG_DEBUG_VM)) { switch (idx) { case NR_ANON_MAPPED: case NR_FILE_MAPPED: @@ -725,7 +718,7 @@ void __mod_memcg_lruvec_state(struct lruvec *lruvec, enum node_stat_item idx, WARN_ON_ONCE(!in_task()); break; default: - WARN_ON_ONCE(!irqs_disabled()); + VM_WARN_ON_IRQS_ENABLED(); } }