wake_up_interruptible in ISR

Jeff Haran Jeff.Haran at citrix.com
Tue May 26 13:37:56 EDT 2015


> -----Original Message-----
> From: Jeff Haran
> Sent: Tuesday, May 26, 2015 10:36 AM
> To: 'Chan Kim'; 'kernelnewbies at kernelnewbies.org'
> Subject: RE: wake_up_interruptible in ISR
> 
> > -----Original Message-----
> > From: Jeff Haran
> > Sent: Tuesday, May 26, 2015 10:31 AM
> > To: 'Chan Kim'; kernelnewbies at kernelnewbies.org
> > Subject: RE: wake_up_interruptible in ISR
> >
> > > -----Original Message-----
> > > From: kernelnewbies-bounces at kernelnewbies.org
> > [mailto:kernelnewbies-
> > > bounces at kernelnewbies.org] On Behalf Of Chan Kim
> > > Sent: Monday, May 25, 2015 10:23 PM
> > > To: kernelnewbies at kernelnewbies.org
> > > Subject: wake_up_interruptible in ISR
> > >
> > >
> > >
> > > Hello,
> > >
> > > I see in the source (linux ver 3.3) that wake_up_interruptible
> > > function doesn't sleep
> >
> 
> Please ignore the below. I confused it with wake_event_interruptible().

Make that wait_event_interruptible(). I think I should just go back to bed.

Jeff Haran

> 
> No enough coffee yet this morning. Sorry for the confusion.
> 
> Jeff Haran
> 
> > Not sure how you came to that conclusion, but calling that function
> > definitely can result in an attempt to do a context switch. That's
> > what the "scheduling while atomic" is telling you.
> > To my knowledge it is only safe to call this from process context.
> >
> > No ISRs, no bottom halves.
> >
> > Could be it's that "_interruptible" in the name that is misleading
> > you. That means the wait can be interrupted and the call can return if
> > the process doing the waiting is delivered a signal. It's got nothing to do
> with "interrupts"
> > per se.
> >
> > Jeff Haran
> >
> > > so I used in it an ISR but I'm getting 'BUG:scheduling while atomic'
> > > message. (I'm not sure it's coming from this) I'm looking for the
> > > exact cause but Is there any caveat when using
> > > wake_up_interruptible() in
> > an ISR?
> > > (I found some drivers use it in ISR, some use it in work_struct)
> > >
> > > I also read in
> > > http://www.slideshare.net/rampalliraj/tasklet-vs-work-
> > > queues?from_action=save  that tasklet is not allowed to sleep but work
> is.
> > > (because  tasklet is not in process context, but in bottom-half) I
> > > don't know if I have to move my wake_up_interruptible function to
> > > tasklet or
> > > work(queue) or even it matters to the current problem.
> > >
> > > Any tip will be appreciated.
> > > Regards,
> > >
> > > Chan
> > > _______________________________________________
> > > Kernelnewbies mailing list
> > > Kernelnewbies at kernelnewbies.org
> > > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



More information about the Kernelnewbies mailing list