lkml.org 
[lkml]   [2008]   [Jan]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] printk deadlocks if called with runqueue lock held
    Hi!

    > I thought that one could place a printk anywhere without worrying.
    > But it seems that it is not wise to place a printk where the runqueue
    > lock is held.
    >
    > I just spent two hours debugging why some of my code was locking up,
    > to find that the lockup was caused by some debugging printk's that
    > I had in the scheduler. The printk's were only in rare paths so
    > they shouldn't be too much of a problem, but after I hit the printk
    > the system locked up.
    >
    > Thinking that it was locking up on my code I went looking down the
    > wrong path. I finally found (after examining an NMI dump) that
    > the lockup happened because printk was trying to wakeup the klogd
    > daemon, which caused a deadlock when the try_to_wakeup code tries
    > to grab the runqueue lock.

    Could try_to_wakeup use trylock, and only avoid wakeup if lock is
    already held?
    Pavel
    --
    (english) http://www.livejournal.com/~pavelmachek
    (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


    \
     
     \ /
      Last update: 2008-01-23 19:25    [W:2.430 / U:0.812 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site