All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@suse.com>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Matthew Wilcox <willy@infradead.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-mm@kvack.org
Subject: Re: [PATCH v2 3/8] mm/vmstat: Use preempt_[dis|en]able_nested()
Date: Thu, 1 Sep 2022 16:41:09 +0200	[thread overview]
Message-ID: <YxDEhV0QAnil3h7e@dhcp22.suse.cz> (raw)
In-Reply-To: <20220825164131.402717-4-bigeasy@linutronix.de>

On Thu 25-08-22 18:41:26, Sebastian Andrzej Siewior wrote:
> From: Thomas Gleixner <tglx@linutronix.de>
> 
> Replace the open coded CONFIG_PREEMPT_RT conditional
> preempt_enable/disable() pairs with the new helper functions which hide
> the underlying implementation details.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: linux-mm@kvack.org
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>

Acked-by: Michal Hocko <mhocko@suse.com>
Thanks!

> ---
>  mm/vmstat.c | 36 ++++++++++++------------------------
>  1 file changed, 12 insertions(+), 24 deletions(-)
> 
> diff --git a/mm/vmstat.c b/mm/vmstat.c
> index 373d2730fcf21..d514fe7f90af0 100644
> --- a/mm/vmstat.c
> +++ b/mm/vmstat.c
> @@ -355,8 +355,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item,
>  	 * CPU migrations and preemption potentially corrupts a counter so
>  	 * disable preemption.
>  	 */
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_disable();
> +	preempt_disable_nested();
>  
>  	x = delta + __this_cpu_read(*p);
>  
> @@ -368,8 +367,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item,
>  	}
>  	__this_cpu_write(*p, x);
>  
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_enable();
> +	preempt_enable_nested();
>  }
>  EXPORT_SYMBOL(__mod_zone_page_state);
>  
> @@ -393,8 +391,7 @@ void __mod_node_page_state(struct pglist_data *pgdat, enum node_stat_item item,
>  	}
>  
>  	/* See __mod_node_page_state */
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_disable();
> +	preempt_disable_nested();
>  
>  	x = delta + __this_cpu_read(*p);
>  
> @@ -406,8 +403,7 @@ void __mod_node_page_state(struct pglist_data *pgdat, enum node_stat_item item,
>  	}
>  	__this_cpu_write(*p, x);
>  
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_enable();
> +	preempt_enable_nested();
>  }
>  EXPORT_SYMBOL(__mod_node_page_state);
>  
> @@ -441,8 +437,7 @@ void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
>  	s8 v, t;
>  
>  	/* See __mod_node_page_state */
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_disable();
> +	preempt_disable_nested();
>  
>  	v = __this_cpu_inc_return(*p);
>  	t = __this_cpu_read(pcp->stat_threshold);
> @@ -453,8 +448,7 @@ void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
>  		__this_cpu_write(*p, -overstep);
>  	}
>  
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_enable();
> +	preempt_enable_nested();
>  }
>  
>  void __inc_node_state(struct pglist_data *pgdat, enum node_stat_item item)
> @@ -466,8 +460,7 @@ void __inc_node_state(struct pglist_data *pgdat, enum node_stat_item item)
>  	VM_WARN_ON_ONCE(vmstat_item_in_bytes(item));
>  
>  	/* See __mod_node_page_state */
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_disable();
> +	preempt_disable_nested();
>  
>  	v = __this_cpu_inc_return(*p);
>  	t = __this_cpu_read(pcp->stat_threshold);
> @@ -478,8 +471,7 @@ void __inc_node_state(struct pglist_data *pgdat, enum node_stat_item item)
>  		__this_cpu_write(*p, -overstep);
>  	}
>  
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_enable();
> +	preempt_enable_nested();
>  }
>  
>  void __inc_zone_page_state(struct page *page, enum zone_stat_item item)
> @@ -501,8 +493,7 @@ void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
>  	s8 v, t;
>  
>  	/* See __mod_node_page_state */
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_disable();
> +	preempt_disable_nested();
>  
>  	v = __this_cpu_dec_return(*p);
>  	t = __this_cpu_read(pcp->stat_threshold);
> @@ -513,8 +504,7 @@ void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
>  		__this_cpu_write(*p, overstep);
>  	}
>  
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_enable();
> +	preempt_enable_nested();
>  }
>  
>  void __dec_node_state(struct pglist_data *pgdat, enum node_stat_item item)
> @@ -526,8 +516,7 @@ void __dec_node_state(struct pglist_data *pgdat, enum node_stat_item item)
>  	VM_WARN_ON_ONCE(vmstat_item_in_bytes(item));
>  
>  	/* See __mod_node_page_state */
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_disable();
> +	preempt_disable_nested();
>  
>  	v = __this_cpu_dec_return(*p);
>  	t = __this_cpu_read(pcp->stat_threshold);
> @@ -538,8 +527,7 @@ void __dec_node_state(struct pglist_data *pgdat, enum node_stat_item item)
>  		__this_cpu_write(*p, overstep);
>  	}
>  
> -	if (IS_ENABLED(CONFIG_PREEMPT_RT))
> -		preempt_enable();
> +	preempt_enable_nested();
>  }
>  
>  void __dec_zone_page_state(struct page *page, enum zone_stat_item item)
> -- 
> 2.37.2

-- 
Michal Hocko
SUSE Labs

  reply	other threads:[~2022-09-01 14:41 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-25 16:41 [PATCH v2 0/8] Replace PREEMPT_RT ifdefs with preempt_[dis|en]able_nested() Sebastian Andrzej Siewior
2022-08-25 16:41 ` [PATCH v2 1/8] preempt: Provide preempt_[dis|en]able_nested() Sebastian Andrzej Siewior
2022-09-19 12:37   ` [tip: sched/rt] " tip-bot2 for Thomas Gleixner
2022-08-25 16:41 ` [PATCH v2 2/8] dentry: Use preempt_[dis|en]able_nested() Sebastian Andrzej Siewior
2022-08-26  7:52   ` Christian Brauner
2022-09-19 12:37   ` [tip: sched/rt] " tip-bot2 for Thomas Gleixner
2022-08-25 16:41 ` [PATCH v2 3/8] mm/vmstat: " Sebastian Andrzej Siewior
2022-09-01 14:41   ` Michal Hocko [this message]
2022-09-19 12:37   ` [tip: sched/rt] " tip-bot2 for Thomas Gleixner
2022-08-25 16:41 ` [PATCH v2 4/8] mm/debug: Provide VM_WARN_ON_IRQS_ENABLED() Sebastian Andrzej Siewior
2022-09-01 14:41   ` Michal Hocko
2022-09-19 12:37   ` [tip: sched/rt] " tip-bot2 for Thomas Gleixner
2022-08-25 16:41 ` [PATCH v2 5/8] mm/memcontrol: Replace the PREEMPT_RT conditionals Sebastian Andrzej Siewior
2022-08-25 16:41   ` Sebastian Andrzej Siewior
2022-09-01 14:45   ` Michal Hocko
2022-09-01 14:45     ` Michal Hocko
2022-09-19 12:37   ` [tip: sched/rt] " tip-bot2 for Thomas Gleixner
2022-08-25 16:41 ` [PATCH v2 6/8] mm/compaction: Get rid of RT ifdeffery Sebastian Andrzej Siewior
2022-09-19 12:37   ` [tip: sched/rt] " tip-bot2 for Thomas Gleixner
2022-08-25 16:41 ` [PATCH v2 7/8] flex_proportions: Disable preemption entering the write section Sebastian Andrzej Siewior
2022-09-19 12:37   ` [tip: sched/rt] " tip-bot2 for Sebastian Andrzej Siewior
2022-08-25 16:41 ` [PATCH v2 8/8] u64_stats: Streamline the implementation Sebastian Andrzej Siewior
2022-09-19 12:37   ` [tip: sched/rt] " tip-bot2 for Thomas Gleixner

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=YxDEhV0QAnil3h7e@dhcp22.suse.cz \
    --to=mhocko@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=bigeasy@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --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: 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.