[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <9f1dc2cf0705140016w6d8f44f9wec7586e7879af873@mail.gmail.com>
Date: Mon, 14 May 2007 12:46:26 +0530
From: "Learning Linux" <learninglinux4@...il.com>
To: "pradeep singh" <2500.pradeep@...il.com>
Cc: kernelnewbies@...linux.org, linux-newbie@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: Why can't we sleep in an ISR?
> > I have a very basic doubt here ... what makes it impossible to sleep
> > in an ISR? I mean, I know that the kernel preemption is disabled and
> > the kernel will panic, but I could not understand why?
>
> Because the interrupt which you are serving in the
> ISR has been masked to avoid preemption(
> true for maskable inetrrupts ).Any locks you are holding in ISR are now with
> you solely. So, if you try to sleep you take the locks you untill you are
> rescheduled and complete. This may lead to
> a deadlock for the lock resource.
Ok, but how about an ISR, that does not take any locks? Why can't we
sleep in SUCH an ISR?
AFAIK, taking a lock disables kernel preemption, and hence it is not
allowed to sleep. So I think my question would boil down to why is
sleeping not allowed when the kernel preemption is disabled.
LL
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists