[lkml]   [2001]   [Oct]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH] (Updated) Preemptible Kernel
Updated patches for 2.4.10, 2.4.11-pre1, and 2.4.10-ac1 are at

Note that the 2.4.10 patch is updated over previous patches.

It's been awhile, because a lot has changed. Please give this a good
once (and twice) -over. For those of you using preempt-stats, I suggest
not keeping that patch compiled in during regular use and certainly not
during any benchmarking.

What's New:

Most notably, George Anzinger of MontaVista rewrote how we keep track of
whether a task is preempted or not. The "preempt bit" has been moved
from a task's status flag to the preempt_count (per-task_struct)
variable. The resulting code is cleaner and simpler, and as a bonus the
race with ptrace and signals (and any undetected similar problems) has
been fixed, so we don't need explicit fixes.

I also renamed our namespace, cleaning things up, and trying to stick to
a prefix of "preempt." Most important, ctx_sw_on and ctx_sw_off are now
preempt_enable and preempt_disable.

The ChangeLog since the last official release:

- have spin_lock_prefetch prefetch the preempt_count, too,
since its incremented on each spin_lock
- some more ifdef and namespace cleanups

- modify our handling of the "preemption bit": move from the
task's status to the preempt_count
- the above removes the risk of race in ptrace and SIGSTOP
signal handling, so we can back out those fixes.
- rearrange our namespace. most notably, ctx_sw_on/off
is now preempt_enable/disable.
- cleanup some defines

- fix strace race: make ptrace preempt safe
- fix job control race: make SIGSTOP signal preempt
- fix adfs compile bug: add sched.h include to

Robert M. Love
rml at
rml at

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:03    [W:0.038 / U:0.052 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site