[PATCH] Futexes IV (Fast Lightweight Userspace Semaphores)
authorRusty Russell <rusty@rustcorp.com.au>
Sun, 10 Mar 2002 03:50:14 +0000 (19:50 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Sun, 10 Mar 2002 03:50:14 +0000 (19:50 -0800)
commit882ad449046cec136c484dd2b3659fb4c683e0a3
tree363f84f0dc65135b84accd91a32e82e8f4810e68
parentee7ae3cac7e27634267cde1159e84b069d3c7d6f
[PATCH] Futexes IV (Fast Lightweight Userspace Semaphores)

Fast user-space mutex implementation, allowing user space to do all
of the normal handling, with a minimal fallback to kernel space for
when there is lock contention.

The kernel space implementation does not keep any per-lock data
structures, but instead does a fast hash on the physical page and offset
of the user-space lock when contended.  Thus no build/teardown costs, or
any scalability costs wrt metadata.

Updated syscall numbers for 2.5.6, and changed FUTEX_UP/DOWN definitions
to be more logical for future expansions (eg.  r/w).
14 files changed:
arch/i386/kernel/entry.S
arch/ppc/kernel/misc.S
include/asm-i386/mman.h
include/asm-i386/unistd.h
include/asm-ppc/mman.h
include/asm-ppc/unistd.h
include/linux/futex.h [new file with mode: 0644]
include/linux/hash.h [new file with mode: 0644]
include/linux/mmzone.h
kernel/Makefile
kernel/futex.c [new file with mode: 0644]
mm/filemap.c
mm/mprotect.c
mm/page_alloc.c