[patch] Real-Time Preemption, -RT-2.6.12-rc1-V0.7.41-10

Ingo Molnar
2005-03-25T15:00:01Z

i have released the -V0.7.41-10 Real-Time Preemption patch, which can be
downloaded from the usual place:

http://redhat.com/~mingo/realtime-preempt/

this release fixes two bugs:

- one affecting SMP systems & RCU (the missing smp_mb()s)

- the other one in net/xfrm/xfrm_policy.c, affecting systems where
network interfaces (or pseudo-interfaces) are frequently
created/destroyed

i've also added a new debugging feature which is activated if
RT_DEADLOCK_DETECT is enabled: the checking of active locks in freed
memory.

This catches a dangerous category of bugs which the upstream kernel can
silently ignore (because there locks are quite 'passive'), while the -RT
kernel will often go down in flames sometime later (it has lists within
the lock, etc.). This mechanism found the xfrm_policy.c bug:

BUG: events/0/4, active lock [e94a8cdc(e94a8cd0-e94a90dc)] freed!
[<c0103e31>] dump_stack+0x1e/0x20 (20)
[<c0136fa2>] check_no_locks_freed+0x158/0x210 (60)
[<c01477e9>] kfree+0x59/0x15a (48)
[<c03638db>] xfrm_policy_gc_task+0x6f/0x7e (28)
[<c012f3c7>] worker_thread+0x1c1/0x26c (132)
[<c01333e9>] kthread+0x95/0xbd (48)
[<c01012c9>] kernel_thread_helper+0x5/0xb (1039269908)

so i'd expect more such bugs to be found. If you had stability problems
under PREEMPT_RT (hangs, crashes), please enable RT_DEADLOCK_DETECT and
try to reproduce the problem and send me the resulting log messages.

to create a -V0.7.41-10 tree from scratch, the patching order is:

http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.tar.bz2
http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.12-rc1.bz2
http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.12-rc1-V0.7.41-10

Ingo