On Tue, Nov 12, 2013 at 02:21:39PM -0000, David Laight wrote: > > > @@ -1637,7 +1637,7 @@ static int sync_thread_master(void *data) > > > continue; > > > } > > > while (ip_vs_send_sync_msg(tinfo->sock, sb->mesg) < 0) { > > > - int ret = __wait_event_interruptible(*sk_sleep(sk), > > > > So ideally there's be a comment here why we're using interruptible but > > then ignore interruptions. > > > > Julian said ( > > http://lkml.kernel.org/r/alpine.lfd.2.00.1310012245020.1...@ja.ssi.bg ): > > > > " Yes, your patch looks ok to me. In the past > > we used ssleep() but IPVS users were confused why > > IPVS threads increase the load average. So, we > > switched to _interruptible calls and later the socket > > polling was added. " > > I've done this in the past so that the code sleeps interruptibly > unless there is a signal pending - which would cause it to return > early. > > /* Tell scheduler we are going to sleep... */ > if (signal_pending(current)) > /* We don't want waking immediately (again) */ > sleep_state = TASK_UNINTERRUPTIBLE; > else > sleep_state = TASK_INTERRUPTIBLE; > set_current_state(sleep_state);
If this is for kernel threads, I think you can wipe the pending state; not entirely sure how signals interact with kthreads; Oleg will know. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/