remarkable-linux/include
Benjamin Herrenschmidt 7f7bbbe50b [PATCH] page fault retry with NOPAGE_REFAULT
Add a way for a no_page() handler to request a retry of the faulting
instruction.  It goes back to userland on page faults and just tries again
in get_user_pages().  I added a cond_resched() in the loop in that later
case.

The problem I have with signal and spufs is an actual bug affecting apps and I
don't see other ways of fixing it.

In addition, we are having issues with infiniband and 64k pages (related to
the way the hypervisor deals with some HV cards) that will require us to muck
around with the MMU from within the IB driver's no_page() (it's a pSeries
specific driver) and return to the caller the same way using NOPAGE_REFAULT.

And to add to this, the graphics folks have been following a new approach of
memory management that involves transparently swapping objects between video
ram and main meory.  To do that, they need installing PTEs from a no_page()
handler as well and that also requires returning with NOPAGE_REFAULT.

(For the later, they are currently using io_remap_pfn_range to install one PTE
from no_page() which is a bit racy, we need to add a check for the PTE having
already been installed afer taking the lock, but that's ok, they are only at
the proof-of-concept stage.  I'll send a patch adding a "clean" function to do
that, we can use that from spufs too and get rid of the sparsemem hacks we do
to create struct page for SPEs.  Basically, that provides a generic solution
for being able to have no_page() map hardware devices, which is something that
I think sound driver folks have been asking for some time too).

All of these things depend on having the NOPAGE_REFAULT exit path from
no_page() handlers.

Signed-off-by: Benjamin Herrenchmidt <benh@kernel.crashing.org>
Cc: Hugh Dickins <hugh@veritas.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-06 08:53:40 -07:00
..
acpi
asm-alpha [PATCH] rename the provided execve functions to kernel_execve 2006-10-02 07:57:23 -07:00
asm-arm [PATCH] atmel_serial: Pass fixed register mappings through platform_data 2006-10-04 10:25:05 -07:00
asm-arm26 fix file specification in comments 2006-10-03 23:01:26 +02:00
asm-avr32 [PATCH] AVR32: Allow renumbering of serial devices 2006-10-04 10:25:06 -07:00
asm-cris [PATCH] remove remaining errno and __KERNEL_SYSCALLS__ references 2006-10-02 07:57:23 -07:00
asm-frv IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
asm-generic [PATCH] Fix WARN_ON / WARN_ON_ONCE regression 2006-10-06 08:53:39 -07:00
asm-h8300 [PATCH] remove remaining errno and __KERNEL_SYSCALLS__ references 2006-10-02 07:57:23 -07:00
asm-i386 IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
asm-ia64 IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
asm-m32r fix file specification in comments 2006-10-03 23:01:26 +02:00
asm-m68k fix file specification in comments 2006-10-03 23:01:26 +02:00
asm-m68knommu fix file specification in comments 2006-10-03 23:01:26 +02:00
asm-mips IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
asm-parisc [PARISC] Make DMA routines more stubby 2006-10-04 06:51:07 -06:00
asm-powerpc IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
asm-ppc fix file specification in comments 2006-10-03 23:01:26 +02:00
asm-s390 [S390] Remove open-coded mem_map usage. 2006-10-04 20:02:23 +02:00
asm-sh fix file specification in comments 2006-10-03 23:01:26 +02:00
asm-sh64 fix file specification in comments 2006-10-03 23:01:26 +02:00
asm-sparc fix file specification in comments 2006-10-03 23:01:26 +02:00
asm-sparc64 Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
asm-um [PATCH] rename the provided execve functions to kernel_execve 2006-10-02 07:57:23 -07:00
asm-v850 [PATCH] remove remaining errno and __KERNEL_SYSCALLS__ references 2006-10-02 07:57:23 -07:00
asm-x86_64 IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
asm-xtensa fix file specification in comments 2006-10-03 23:01:26 +02:00
crypto
keys
linux [PATCH] page fault retry with NOPAGE_REFAULT 2006-10-06 08:53:40 -07:00
math-emu
media V4L/DVB (4666): Ensure the WM8775 driver is loaded generically for any board. 2006-10-03 15:13:48 -03:00
mtd Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2006-10-01 17:55:53 +01:00
net Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
pcmcia
rdma
rxrpc
scsi Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2006-10-04 18:57:35 -07:00
sound IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
video fix file specification in comments 2006-10-03 23:01:26 +02:00
Kbuild