This patch set creates a vdso and moves the signal trampolines to it from their previous home on the stack. In the original patch set: http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=49EE3B0F.3040506%40caviumnetworks.com I stated: Tested with a 64-bit kernel on a Cavium Octeon cn3860 where I have the following results from lmbench2: Before: n64 - Signal handler overhead: 14.517 microseconds n32 - Signal handler overhead: 14.497 microseconds o32 - Signal handler overhead: 16.637 microseconds After: n64 - Signal handler overhead: 7.935 microseconds n32 - Signal handler overhead: 7.334 microseconds o32 - Signal handler overhead: 8.628 microsecond All that is still true. Improvements from the first version: * Compiles and runs in 32-bit kernels (on qemu at least). * Updated for linux-queue based 2.6.33-rc8 David Daney (3): MIPS: Add SYSCALL to uasm. MIPS: Preliminary vdso. MIPS: Move signal trampolines off of the stack. arch/mips/include/asm/abi.h | 6 +- arch/mips/include/asm/elf.h | 4 + arch/mips/include/asm/mmu.h | 5 +- arch/mips/include/asm/mmu_context.h | 2 +- arch/mips/include/asm/processor.h | 11 +++- arch/mips/include/asm/uasm.h | 1 + arch/mips/include/asm/vdso.h | 29 +++++++++ arch/mips/kernel/Makefile | 2 +- arch/mips/kernel/signal-common.h | 5 -- arch/mips/kernel/signal.c | 86 ++++++--------------------- arch/mips/kernel/signal32.c | 55 ++++------------- arch/mips/kernel/signal_n32.c | 26 ++------ arch/mips/kernel/syscall.c | 6 ++- arch/mips/kernel/vdso.c | 112 +++++++++++++++++++++++++++++++++++ arch/mips/mm/uasm.c | 19 +++++- 15 files changed, 226 insertions(+), 143 deletions(-) create mode 100644 arch/mips/include/asm/vdso.h create mode 100644 arch/mips/kernel/vdso.c