Subj : Re: JOB: Sandbridge Technologies, White Plains, NY To : comp.programming.threads From : Mayan Moudgill Date : Fri Jul 15 2005 10:46 am Joe Seigh wrote: > Mayan Moudgill wrote: > Realtime and good thread performance are somewhat antithetical. FIFO > locks perform less well than normal locks. Lock-free is a better way > to go. We've already got some lock-free algorithms in place. The ISA uses load-word-reserved/store-word-conditional as our "synchronization" primitives, so we can implement stuff like atomic increment, lock-free LIFOs etc. Plus most of the conventional solutions I've see for priority > inversion are really suboptimal. Basically you get all your RT guarantees > by crippling everything so lower priority threads can't perform better > than high priority threads. Our biggest issue is the difference between "pinned" and "unpinned" threads. A pinned thread is one which is locked down to a hardware thread, and will not get switched. For perfomance, you want to use spin-based synchronization mechanisms as opposed to dequeing/context-switching when a pinned thread needs to wait. > And try to avoid preemptive signaling like Linux NPTL does. Unless > Posix mandates > it as a scheduling point. kill and signalling have all kinds of ugliness associated with it. We don't have a notion of a process (though we were thinking of thread-groups) so we avoid the real ugliness, but even pthread_kill is pretty ugly. .