Thread (5 messages) 5 messages, 2 authors, 2015-05-27

wake_up_interruptible in ISR

From: Jeff Haran <hidden>
Date: 2015-05-26 17:37:56

-----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
quoted
-----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
quoted
-----Original Message-----
From: kernelnewbies-bounces at kernelnewbies.org
[mailto:kernelnewbies-
quoted
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
quoted
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"
quoted
per se.

Jeff Haran
quoted
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?
quoted
(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.
quoted
quoted
(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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help