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    [W:4.121 / U:0.516 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site