lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <46a4c63c-510e-455e-aad6-805e4b519736@paulmck-laptop>
Date: Tue, 20 Aug 2024 10:48:23 -0700
From: "Paul E. McKenney" <paulmck@...nel.org>
To: John Ogness <john.ogness@...utronix.de>
Cc: Petr Mladek <pmladek@...e.com>,
	Sergey Senozhatsky <senozhatsky@...omium.org>,
	Steven Rostedt <rostedt@...dmis.org>,
	Thomas Gleixner <tglx@...utronix.de>, linux-kernel@...r.kernel.org,
	Frederic Weisbecker <frederic@...nel.org>,
	Neeraj Upadhyay <neeraj.upadhyay@...nel.org>,
	Joel Fernandes <joel@...lfernandes.org>,
	Josh Triplett <josh@...htriplett.org>,
	Boqun Feng <boqun.feng@...il.com>,
	Uladzislau Rezki <urezki@...il.com>,
	Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
	Lai Jiangshan <jiangshanlai@...il.com>,
	Zqiang <qiang.zhang1211@...il.com>, rcu@...r.kernel.org
Subject: Re: [PATCH printk v8 34/35] rcu: Mark emergency sections in rcu
 stalls

On Tue, Aug 20, 2024 at 08:36:00AM +0206, John Ogness wrote:
> Mark emergency sections wherever multiple lines of
> rcu stall information are generated. In an emergency
> section, every printk() call will attempt to directly
> flush to the consoles using the EMERGENCY priority.
> 
> Signed-off-by: John Ogness <john.ogness@...utronix.de>
> Reviewed-by: Petr Mladek <pmladek@...e.com>

I am guessing that this should go with the rest of this series, so:

Acked-by: Paul E. McKenney <paulmck@...nel.org>

> ---
>  kernel/rcu/tree_exp.h   | 7 +++++++
>  kernel/rcu/tree_stall.h | 9 +++++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h
> index 4acd29d16fdb..f6b35a0585a8 100644
> --- a/kernel/rcu/tree_exp.h
> +++ b/kernel/rcu/tree_exp.h
> @@ -7,6 +7,7 @@
>   * Authors: Paul E. McKenney <paulmck@...ux.ibm.com>
>   */
>  
> +#include <linux/console.h>
>  #include <linux/lockdep.h>
>  
>  static void rcu_exp_handler(void *unused);
> @@ -590,6 +591,9 @@ static void synchronize_rcu_expedited_wait(void)
>  			return;
>  		if (rcu_stall_is_suppressed())
>  			continue;
> +
> +		nbcon_cpu_emergency_enter();
> +
>  		j = jiffies;
>  		rcu_stall_notifier_call_chain(RCU_STALL_NOTIFY_EXP, (void *)(j - jiffies_start));
>  		trace_rcu_stall_warning(rcu_state.name, TPS("ExpeditedStall"));
> @@ -643,6 +647,9 @@ static void synchronize_rcu_expedited_wait(void)
>  			rcu_exp_print_detail_task_stall_rnp(rnp);
>  		}
>  		jiffies_stall = 3 * rcu_exp_jiffies_till_stall_check() + 3;
> +
> +		nbcon_cpu_emergency_exit();
> +
>  		panic_on_rcu_stall();
>  	}
>  }
> diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h
> index 4b0e9d7c4c68..b3a6943127bc 100644
> --- a/kernel/rcu/tree_stall.h
> +++ b/kernel/rcu/tree_stall.h
> @@ -7,6 +7,7 @@
>   * Author: Paul E. McKenney <paulmck@...ux.ibm.com>
>   */
>  
> +#include <linux/console.h>
>  #include <linux/kvm_para.h>
>  #include <linux/rcu_notifier.h>
>  
> @@ -605,6 +606,8 @@ static void print_other_cpu_stall(unsigned long gp_seq, unsigned long gps)
>  	if (rcu_stall_is_suppressed())
>  		return;
>  
> +	nbcon_cpu_emergency_enter();
> +
>  	/*
>  	 * OK, time to rat on our buddy...
>  	 * See Documentation/RCU/stallwarn.rst for info on how to debug
> @@ -657,6 +660,8 @@ static void print_other_cpu_stall(unsigned long gp_seq, unsigned long gps)
>  	rcu_check_gp_kthread_expired_fqs_timer();
>  	rcu_check_gp_kthread_starvation();
>  
> +	nbcon_cpu_emergency_exit();
> +
>  	panic_on_rcu_stall();
>  
>  	rcu_force_quiescent_state();  /* Kick them all. */
> @@ -677,6 +682,8 @@ static void print_cpu_stall(unsigned long gps)
>  	if (rcu_stall_is_suppressed())
>  		return;
>  
> +	nbcon_cpu_emergency_enter();
> +
>  	/*
>  	 * OK, time to rat on ourselves...
>  	 * See Documentation/RCU/stallwarn.rst for info on how to debug
> @@ -706,6 +713,8 @@ static void print_cpu_stall(unsigned long gps)
>  			   jiffies + 3 * rcu_jiffies_till_stall_check() + 3);
>  	raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
>  
> +	nbcon_cpu_emergency_exit();
> +
>  	panic_on_rcu_stall();
>  
>  	/*
> -- 
> 2.39.2
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ