Hi, as discussed before: If a high-scalability locking scheme is built with multiple spinlocks, then often additional memory barriers are required.
The documentation was not as clear as possible, and memory barriers were missing / superfluous in the implementation. Patch 1: Documentation, define one standard barrier, update ipc/sem.c Patch 2: Update rcutree Patch 3: Update nf_conntrack Patch 4: Update for qspinlock: smp_mb__after_spin_lock is free. Patch 3 is larger than required, it rewrites the conntrack logic with the code from ipc/sem.c. I think the new code is simpler and more realtime-friendly. Please review! @Andrew: The patches are relative to mmots. Could you include them in your tree, with the target of including in linux-next? -- Manfred