Messages in this thread |  | | | Date | Tue, 30 Mar 2004 11:05:15 +0530 | | From | Srivatsa Vaddagiri <> | | Subject | Re: route cache DoS testing and softirqs |
| |
On Tue, Mar 30, 2004 at 10:36:14AM +0530, Srivatsa Vaddagiri wrote: > kthread_stop does: > > 1. kthread_stop_info.k = k; > 2. wake_up_process(k); > > and if ksoftirqd were to do : > > a. while (!kthread_should_stop()) { > b. __set_current_state(TASK_INTERRUPTIBLE); > c. schedule(); > } > > > There is a (narrow) possibility here that a) happens _after_ 1) as well as > b) _after_ 2).
hmm .. I meant a) happening _before_ 1) and b) happening _after_ 2) ..
> > a. __set_current_state(TASK_INTERRUPTIBLE); > b. while (!kthread_should_stop()) { > c. schedule(); > d. __set_current_state(TASK_INTERRUPTIBLE); > } > > e. __set_current_state(TASK_RUNNING); > > In this case, even if b) happens _after_ 1) and c) _after_ 2),
Again I meant "even if b) happens _before_ 1) and c) _after_ 2) !!
> schedule simply returns immediately because task's state would have been set > to TASK_RUNNING by 2). It goes back to the kthread_should_stop() check and > exits!
--
Thanks and Regards, Srivatsa Vaddagiri, Linux Technology Center, IBM Software Labs, Bangalore, INDIA - 560017 - 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/
|  |