Messages in this thread | | | Date | Fri, 13 Jan 2006 00:07:34 -0800 | Subject | Re: RT Mutex patch and tester [PREEMPT_RT] | From | Bill Huey (hui) <> |
| |
On Thu, Jan 12, 2006 at 01:54:23PM +0100, Esben Nielsen wrote: > turnstiles? What is that?
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/subr_turnstile.c
Please, read. Now tell me or not if that looks familiar ? :)
Moving closer an implementation is arguable, but it is something that should be considered somewhat since folks in both the Solaris (and FreeBSD) communities have given a lot more consideration to these issues.
The stack allocated objects are fine for now. Priority inheritance chains should never get long with a fine grained kernel, so the use of a stack allocated object and migrating pi-ed waiters should not be a major real world issue in Linux yet.
Folks should also consider using an adaptive spin in the __grab_lock() (sp?) related loops as a possible way of optimizing away the immediate blocks. FreeBSD actually checks the owner of a lock aacross another processor to see if it's actively running, "current", and will block or wait if it's running or not respectively. It's pretty trivial code, so it's not a big issue to implement. This is ignoring the CPU local storage issues.
bill
- 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/
| |