Re: pthread_mutex_unlock (was Re: sched_yield() makes OpenLDAP slow)

From: Howard Chu
Date: Thu Jan 26 2006 - 09:42:55 EST


Kyle Moffett wrote:
Haven't you OpenLDAP guys realized that the pthread model you're actually looking for is this? POSIX mutexes are not designed to mandate scheduling requirements *precisely* because this achieves your scheduling goals by explicitly stating what they are.

This isn't about OpenLDAP. Yes, we had a lot of yield() calls scattered through the code, leftovers from when we only supported non-preemptive threading. Those calls have been removed. There are a few remaining, that are only in code paths for unusual errors, so what they do has no real performance impact.

The point of this discussion is that the POSIX spec says one thing and you guys say another; one way or another that should be resolved. The 2.6 kernel behavior is a noticable departure from previous releases. The 2.4/LinuxThreads guys believed their implementation was correct. If you believe the 2.6 implementation is correct, then you should get the spec amended or state up front that the "P" in "NPTL" doesn't really mean anything.

--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
OpenLDAP Core Team http://www.openldap.org/project/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/