This patch breaks the three global IPC locks into one lock per IPC ID. By doing so it could reduce possible lock contention in workloads which make heavy use of IPC semaphores, message queues and Shared memories...etc. Changes from last version: - move the IPC ID lock from the ipc_ids structure to kern_ipc_perm structure to avoid cacheline bouncing - make the ipc_lockall() and ipc_unlockal() use the global read-write locks. Remove the old global spin locks. Patch is against 2.5.31 kernel. Please comment. Mingming