From mboxrd@z Thu Jan 1 00:00:00 1970 From: dhylands@gmail.com (Dave Hylands) Date: Thu, 2 Jun 2011 15:54:56 -0700 Subject: Calling printk with locks held In-Reply-To: References: Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org Hi Neil, On Thu, Jun 2, 2011 at 1:43 PM, Neil Baylis wrote: > I've just been told that it's not OK to call printk while holding a lock. > This came as a surprise to me, as I've written thousands of lines of code > that calls printk while holding multiple locks, and have not seen any > problem. The only explanation I was given was that it can deadlock. > Is this correct? I thought there were very few places where it was not safe > to call printk. In general I don't think that there's any issue with calling printk with locks held. If the lock was held within the console driver using to send the printk data you might have trouble. I know its fine (but not recommended for performance reasons) to call printk from interrupt context. printk uses the "try" variant on its own locks and if it can't get that lock then it just adds the data to its internal buffer and doesn't try to output anything. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com