I am finding that my kernel thread will occasionally
fail to wake up eventhough it has a signal pending.
The thread is calling wait_event_interruptible and
waiting for SIGIO (from the sg driver). I only see it
fail to wake up when performing intensive sg activity.
>From kdb, the task shows the signal was delivered
(sigpending==1 and pending.signal.sig[0]==0x10000000).
So, I was just wondering if anyone was aware of a fix
(I'm using 2.4.18 on i386). A google search failed to
turn up anything obvious. My code is pretty basic
stuff but here the wait loop just in case:
for (;;) {
gotsig = wait_event_interruptible();
if (gotsig) {
sigemptyset(&set);
spin_lock_irq(¤t->sigmask_lock);
signum = dequeue_signal(&set, &info);
spin_unlock_irq(¤t->sigmask_lock);
if (signum != SIGIO)
break;
process_io();
}
}
Please CC me in the response. Thanks in advance.
__________________________________________________
Do you Yahoo!?
Yahoo! Shopping - Send Flowers for Valentine's Day
http://shopping.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sat Feb 15 2003 - 22:00:51 EST