lkml.org 
[lkml]   [2011]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: PPS parport boot lockup: INFO: HARDIRQ-READ-safe -> HARDIRQ-READ-unsafe lock order detected
В Fri, 21 Jan 2011 20:43:17 +0100
Ingo Molnar <mingo@elte.hu> пишет:

>
> * Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> > HOWEVER, even then I think you should see the lockdep message as a
> > problem. The automated toolchain is great because it shows problems
> > that it thinks might happen - not when they happen, but based on a
> > simpler theoretical model. Ignoring the error because there is some
> > rule in place that is hard to explain to the automated toolchain is
> > the wrong thing to do, because it makes the lockdep automation less
> > reliable.
>
> Yeah. Also, inevitably the false positives have a higher likelyhood
> of making it into a released kernel, often because the bugs where
> there was a real lockup as well got noticed via other means.
>
> It's similar with compiler warnings as well: the questionable ones where
> GCC is wrong or at least confused accumulate.
>
> Also note that here there's a real lockup here as well, shortly after the lockdep
> message - the boot never continues, the box keep spewing the PPS debug messages:
>
> [ 76.240020] pps pps0: PPS event at 4294911356
> [ 76.244380] pps pps0: PPS event at 1295471377.240018362
> [ 76.249608] pps pps0: capture assert seq #2
> [ 77.252019] pps pps0: PPS event at 4294911609
> [ 77.256379] pps pps0: PPS event at 1295471378.252017372
> [ 77.261604] pps pps0: capture assert seq #3
> [ 78.264021] pps pps0: PPS event at 4294911862
> [ 78.268387] pps pps0: PPS event at 1295471379.264018619
> [ 78.273621] pps pps0: capture assert seq #4
> [ 79.276018] pps pps0: PPS event at 4294912115
> [ 79.280384] pps pps0: PPS event at 1295471380.276016791
> [ 79.285619] pps pps0: capture assert seq #5
>
> But nothing happens, the boot never continues.

I think I was able to reproduce the lockup by compiling parport,
parport_pc, pps_parport and pps_gen_parport into the kernel. Both
pps_parport and pps_gen_parport use parport_claim_or_block() to claim
the parallel port. They compete for the parallel port at bootup. One
of them gets it. The other one then lockups the system.

After reading the docs I decided to just add PARPORT_FLAG_EXCL and it
worked. The patch follows. Does it help with the lockup you experience?

--
Alexander
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2011-01-25 00:31    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site