Thread (13 messages) 13 messages, 5 authors, 2010-08-05

Re: [PATCH 1/3] Input: sysrq - drop tty argument from sysrq ops handlers

From: Jason Wessel <jason.wessel@windriver.com>
Date: 2010-08-04 12:03:45
Also in: lkml

On 08/04/2010 03:33 AM, Benjamin Herrenschmidt wrote:
On Wed, 2010-08-04 at 00:59 -0700, Dmitry Torokhov wrote:
  
quoted
Noone is using tty argument so let's get rid of it.
    
While talking about sysrq...

I noticed that serial drivers call sysrq with the uart lock held.

  
The usb serial has the same kind of problem with all sorts of locks.  I
had resorted to using a tasklet or workqueue to get the sysrq to execute
just outside the usb serial driver context.  This work never made it
upstream because it was part of another series, but the reference is:
http://lkml.org/lkml/2010/3/9/17

For the standard serial you might be able to get away with dropping the
lock for the sysrq.

Did you have a particular way to trigger the problem or was it just
completely random, because I don't know that I have observed this
behavior with the typical 8250 driver.

Jason.
I've seen deadlocks caused by that, for example, when entering the
debugger, it waits forever for a CPU which is itself waiting on the UART
lock.

I have a patch to drop the lock in serial_core.h, I'll post that
tomorrow hopefully, just checking if there's any objection there ? The
serial drivers might need to be audited a bit to make sure they cope
with the lock being dropped and re-acquired around the sysrq call.

Cheers,
Ben.
 

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