Re: looking for info on kernel_thread

pwhiting@fury.ittc.ukans.edu
Tue, 13 Apr 1999 13:04:29 -0500


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/