Thread (11 messages) flat view 11 messages, 3 authors, 2014-11-08

Re: [PATCH v8] kernel, add panic_on_warn

From: Prarit Bhargava <hidden>
Date: 2014-11-07 11:05:57
Also in: kexec, lkml


On 11/07/2014 05:15 AM, David Rientjes wrote:
On Thu, 6 Nov 2014, Vivek Goyal wrote:
quoted
On Thu, Nov 06, 2014 at 01:57:36PM -0800, David Rientjes wrote:

[..]
quoted
You see that doing

	if (panic_on_warn) {
		panic_on_warn = 0;
		panic(...);
	}

is racy, I hope.  If two threads WARN() at the same time, then there's 
nothing preventing a double panic() because WARN() itself is not 
serialized against anything.  So both the current comment and your 
suggested revision comment are bogus.
panic() is serialized on panic_lock. So I guess it is fine to hit WARN()
on multiple cpus. Do you see an issue there?
No issue at all, what's completely mysterious is the panic_on_warn = 0 and 
the completely bogus comment that says "prevent further WARN()s from 
panicking the system" when that's racy.  There's no need to clear 
panic_on_warn at all.
There very much is.  Consider a thread that hits a WARN() and then panics.  Then
somewhere in the panic code the thread hits another WARN() ... and then panics
again.  Previously this would have caused the system to "finish" panick'ing.
Now it makes the system hang.

P.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help