![]() | |||||||||||
Messages in this thread |
On 8/8/06, Eric Dumazet <dada1@cosmosbay.com> wrote: > So we really can... but for 'private futexes' which are the vast majority of > futexes needed by typical program (using POSIX pshared thread mutex attribute > PTHREAD_PROCESS_PRIVATE, currently not used by NPTL glibc) Nonsense. Mutexes are by default always private. They explicitly have to be marked as sharable. This happens using the pthread_mutexattr_setpshared function which takes PTHREAD_PROCESS_PRIVATE or PTHREAD_PROCESS_SHARED in the second parameter. So the former _is_ clearly used. > Of course we would need a new syscall, and to change glibc to be able to > actually use this new private_futex syscall. No, why? The kernel already does recognize private mutexes. It just checks whether the pages used to store it are private or mapped. This requires some interaction with the memory subsystem but as long as no crashes happen the data can change underneath. It's the program's fault if it does. On the waker side you would search the local futex hash table/tree first and if this doesn't yield a match, search the global table. Wakeup calls without any waiters are usually rare. - 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/ | ||||||||||
| Last update: 2006-08-08 19:01 [from the cache] ©2003-2008 | |||||||||||