Messages in this thread | | | From | pwhiting@fury ... | Date | Tue, 13 Apr 1999 13:04:29 -0500 | Subject | Re: looking for info on kernel_thread |
| |
On Tue, Apr 13, 1999 at 05:54:04PM +0100, Stephen C. Tweedie wrote: > The are _non_ preemptable, just like any other process. The general > rule is that we never, ever preempt a process which is running in kernel > mode. That means that normal user processes do not get preempted in the > middle of a system call, for example. It also means that kernel > threads, which run entirely within kernel mode, are automatically > protected against preemption by the scheduler. > > Kernel threads are still allowed to be rescheduled, but only > voluntarily: if they sleep on a wait queue, wait for IO, take a page > fault which has to satisfy disk or call the scheduler directly, they > will be rescheduled.
Thanks for the answer on preemptiveness. In retrospect (now that I have the answer) I realize it was probably a dumb question. Where is the best source of information on kernel threads? There isn't much discussion of them in the source code. I am interested in how they are scheduled - it appears they are running at a very high priority. It also appears that they are normal processes in the view of the scheduler as I can not see any special code to handle them in kernel/sched.c. Am I free to alter the priority of a kernel thread?
pete
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |