]> err.no Git - linux-2.6/commit
uml: speed page fault path
authorJeff Dike <jdike@addtoit.com>
Sun, 6 May 2007 21:51:45 +0000 (14:51 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Mon, 7 May 2007 19:13:04 +0000 (12:13 -0700)
commit64f60841c096594b8073e408cd9b40d7d08dcfdd
tree3ad05b0b5f83d174eb2a7efdfd95d09f171aa51d
parent8603ec81487a5fefbc29611ff0d635b33b6da990
uml: speed page fault path

Give the page fault code a specialized path.  There is only one page to look
at, so there's no point in going into the general page table walking code.
There's only going to be one host operation, so there are no opportunities for
merging.  So, we go straight to the pte we want, figure out what needs doing,
and do it.

While I was in here, I fixed the wart where the address passed to unmap was a
void *, but an unsigned long to map and protect.

This gives me just under 10% on a kernel build.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/um/include/os.h
arch/um/include/skas/mode_kern_skas.h
arch/um/kernel/skas/tlb.c
arch/um/kernel/tlb.c
arch/um/os-Linux/skas/mem.c