Messages in this thread |  | | Date | Tue, 27 Nov 2001 15:57:03 +0100 (CET) | From | Ingo Molnar <> | Subject | [patch] scalable timers implementation, 2.4.16, 2.5.0 |
| |
the 'ultra scalable timers' patch, against 2.4.16 or 2.5.0 is available at:
http://redhat.com/~mingo/scalable-timers-patches/smptimers-2.4.16-A0
these are the goals of the patch:
the current 2.4 timer implementation uses a global spinlock for synchronizing access to the global timer lists. This causes excessive cacheline ping-pongs and visible performance degradation under very high TCP networking load (and other, timer-intensive operations).
The new implementation introduces per-CPU timer lists and per-CPU spinlocks that protect them. All timer operations, add_timer(), del_timer() and mod_timer() are still O(1) and cause no cacheline contention at all (because all data structures are separated). All existing semantics of Linux timers are preserved, so the patch is 'transparent' to all other subsystems.
(The patch does not attempt to change the timer interface in any way - that might be done via different patches. These timers are compatible with TIMER_BH & cli() methods of synchronization as well.)
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/
|  |