Messages in this thread | | | Date | Tue, 19 Oct 2004 14:46:06 +0200 | From | Ingo Molnar <> | Subject | [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U6 |
| |
i have released the -U6 Real-Time Preemption patch:
http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.9-rc4-mm1-U6
this is a fixes-only release.
found and fixed the 'big bug' that was probably the one causing stability problems for a number of people. There was a small window for a task double-free race to occur, causing all sorts of crashes later on. This bug could trigger on UP and SMP systems alike, on SMP being a bit more frequent.
Also, a common networking deadlock was found and fixed as well, using the deadlock detector.
Changes since -U5:
- crash bug: fix task double free caused by irq-preemption of do_exit(). This got introduced in -U5 as part of a simplification of the zombie-reaping rewrite that the -U series did. That rewrite had an unrobustness which got triggered by -U5 in a subtle way, opening up a small window at the end of do_exit() for an interrupt-triggered preemption to cause a double-free. This could fix some of the crashes reported by Rui Nuno Capela, Mark H Johnson.
- deadlock bug: fix networking deadlock reported by Matthew L Foster. Restructured the way the RT-RCU locking of ptype_lock is done - it's cleaner and more obvious now (besides being correct). This could also fix the deadlock reported by Michal Schmidt.
- deadlock bug: fix NFS startup breakage related to semaphore abuse, patch from Thomas Gleixner.
- build bug: fix aha152x.c, based on patch from K.R. Foley.
- build bug: fix compilation error in qla2xxx. (reported by Fernando Pablo Lopez-Lezcano and Mark H Johnson)
- build bug: fix !PREEMPT_REALTIME compilation error. (reported by Matthew L Foster)
- build bug: fix ipmi-watchdog compilation error. (reported by Mark H Johnson)
- tracer fix: if an assert happens within the tracer then we'd get into infinite recursion. The fix was to correctly nest tracing on/off points.
- debug enhancement: added a few more asserts to catch underflowing atomic counters. (this made the task double-free trigger earlier.)
- debug enhancement: extended CONFIG_DEBUG_STACKOVERFLOW to be mcount()-driven as well. This helps in catching stack overflows much more reliably than the do_IRQ() based method.
to create a -U6 tree from scratch, the patching order is:
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.8.tar.bz2 + http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.9-rc4.bz2 + http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc4/2.6.9-rc4-mm1/2.6.9-rc4-mm1.bz2 + http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.9-rc4-mm1-U6
Ingo - 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/
| |