On 01/12, Kohli, Gaurav wrote: > > HI Peter, Oleg, > > as per flag and state this seems to be possible only from below code:
Not sure I understand you, > XXX: 0 1 0x40844c > PF_NOFREEZE > PF_RANDOMIZE > PF_SIGNALED > PF_FORKNOEXEC > PF_EXITING > PF_EXITPIDONE > > above state shows do_exit runs properely and if somehow after parked stated > , TASK_WAKEKILL got set and signal_pending_state returns 1 in below case: > > switch_count = &prev->nivcsw; > if (!preempt && prev->state) { > if (unlikely(signal_pending_state(prev->state, prev))) { > prev->state = TASK_RUNNING; > } else { > deactivate_task(rq, prev, DEQUEUE_SLEEP | > DEQUEUE_NOCLOCK); or task->state was TASK_RUNNING when __schedule() was called, or the deactivated dead task was woken up later... The only problem is that every case looks "obviously impossible" ;) I have no idea whats going on, I can only suggest more stupid debugging patches which might narrow the problem. Oleg.