Hi Linus and All, This patch breaks down the three global IPC locks into one lock per IPC ID. In current implementation, the operations on any IPC semaphores are synchronized by one single IPC semaphore lock. Changing the IPC locks from one lock per IPC resource type into one lock per IPC ID makes sense to me. By doing so could reduce the possible lock contention in some applications where the IPC resources are heavily used. Test results from the LMbench Pipe and IPC latency test shows this patch improves the performance of those functions from 1% to 9%. Patch applies to 2.5.30 kernel. Please consider it. -- Mingming Cao