BUG: scheduling while atomic
Srivatsa S. Bhat
srivatsa.bhat at linux.vnet.ibm.com
Wed Apr 18 04:27:36 EDT 2012
On 04/18/2012 01:38 PM, Arun KS wrote:
> Hi Dave,
>
> Thanks for your reply.
>
> On Wed, Apr 18, 2012 at 1:01 PM, Dave Hylands <dhylands at gmail.com
> <mailto:dhylands at gmail.com>> wrote:
>
> Hi Arun,
>
> On Tue, Apr 17, 2012 at 11:44 PM, Arun KS <getarunks at gmail.com
> <mailto:getarunks at gmail.com>> wrote:
> >
> > Hello Guys,
> >
> > System is working normal after this BUG.
> > PC is at 0x400b4614, probably a mmaped address.
> >
> > Just wondering how can this BUG happen when a process is running
> in user
> > space.
> >
> > Can it be something like this
> > 1) enter to kernel from userspace through some system call.
> > 2) kernel disables the interrupt and return to user space.
>
> Don't do that
>
>
> I don't do that. This scenario mentioned is a just a wild guess.
>
>
> > 3) and now it can happen in user space?
>
> Because something in userspace made a blocking call which would cause
> a context switch to occur and your driver erroneously left interrupts
> disabled.
>
> In that case, my system should have been unstable afterwards if
> interrupts are left disabled. But that is not happening.
>
> If we return to user space with interrupts disabled, can we switch back
> again to kernel using a system cal(because interrupts are already disabled)?
>
Depends on how many CPUs you have - AFAICS the "interrupts disabled"
discussion above applies to a single CPU.. so if you have other CPUs on your
system, you could probably use the system for a little more time.
There is a simple way to check if interrupts are indeed disabled as
hypothesised: turn on the hard-lockup detector (See
Documentation/lockup-watchdogs.txt for details on what it is and what
config options you have to enable). You can even turn on the soft-lockup
detector and see what you get. Setting the option to panic on hard-lockup/
soft-lockup/hung tasks would be even better, to debug the issue.
Regards,
Srivatsa S. Bhat
More information about the Kernelnewbies
mailing list