From: Robert Love <rml@tech9.net> To: linux-kernel@vger.kernel.org Subject: [PATCH] (Updated) Preemptible Kernel Date: 01 Oct 2001 00:21:44 -0400 Updated patches for 2.4.10, 2.4.11-pre1, and 2.4.10-ac1 are at http://tech9.net/rml/linux 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: 20010928 - have spin_lock_prefetch prefetch the preempt_count, too, since its incremented on each spin_lock - some more ifdef and namespace cleanups 20010925 - 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 20010923 - fix strace race: make ptrace preempt safe - fix job control race: make SIGSTOP signal preempt safe - fix adfs compile bug: add sched.h include to fs/adfs/map.c -- Robert M. Love rml at ufl.edu rml at tech9.net - 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/