Michael S. Tsirkin
f822566165
[PATCH] madvise MADV_DONTFORK/MADV_DOFORK
...
Currently, copy-on-write may change the physical address of a page even if the
user requested that the page is pinned in memory (either by mlock or by
get_user_pages). This happens if the process forks meanwhile, and the parent
writes to that page. As a result, the page is orphaned: in case of
get_user_pages, the application will never see any data hardware DMA's into
this page after the COW. In case of mlock'd memory, the parent is not getting
the realtime/security benefits of mlock.
In particular, this affects the Infiniband modules which do DMA from and into
user pages all the time.
This patch adds madvise options to control whether memory range is inherited
across fork. Useful e.g. for when hardware is doing DMA from/into these
pages. Could also be useful to an application wanting to speed up its forks
by cutting large areas out of consideration.
Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Acked-by: Hugh Dickins <hugh@veritas.com>
Cc: Michael Kerrisk <mtk-manpages@gmx.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-14 16:09:34 -08:00
..
mach-bigsmp
[PATCH] x86: convert bigsmp to use flat physical mode
2006-01-06 08:33:37 -08:00
mach-default
[PATCH] x86_64/i386: Remove preempt disable calls in lowlevel IPI
2006-01-11 19:01:57 -08:00
mach-es7000
[PATCH] ES7000 platform update
2005-10-30 17:37:12 -08:00
mach-generic
[PATCH] x86: sutomatically enable bigsmp when we have more than 8 CPUs
2005-09-05 00:06:10 -07:00
mach-numaq
[PATCH] Do not enforce unique IO_APIC_ID check for xAPIC systems (i386)
2005-06-23 09:45:09 -07:00
mach-summit
[PATCH] USB: Always do usb-handoff
2005-10-28 16:47:49 -07:00
mach-visws
Revert "i386: move apic init in init_IRQs"
2005-10-31 19:16:17 -08:00
mach-voyager
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
8253pit.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
a.out.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
acpi.h
[ACPI] Avoid BIOS inflicted crashes by evaluating _PDC only once
2005-12-01 01:30:35 -05:00
agp.h
[PATCH] i386: inline asm cleanup
2005-09-05 00:06:11 -07:00
apic.h
[PATCH] i386: Handle missing local APIC timer interrupts on C3 state
2006-01-11 19:04:54 -08:00
apicdef.h
[PATCH] x86: sutomatically enable bigsmp when we have more than 8 CPUs
2005-09-05 00:06:10 -07:00
arch_hooks.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
atomic.h
[PATCH] EDAC: core EDAC support code
2006-01-18 19:20:31 -08:00
auxvec.h
[PATCH] auxiliary vector cleanups
2005-09-07 16:57:21 -07:00
bitops.h
[PATCH] mark several functions __always_inline
2006-01-14 18:27:15 -08:00
boot.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
bug.h
[PATCH] remove all kernel BUGs
2005-05-01 08:59:01 -07:00
bugs.h
[PATCH] i386: move SIMD initialization
2006-01-06 08:33:34 -08:00
byteorder.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
cache.h
[PATCH] Kill L1_CACHE_SHIFT_MAX
2006-01-08 20:13:39 -08:00
cacheflush.h
[PATCH] x86/x86_64: mark rodata section read only: x86 parts
2006-01-06 08:33:36 -08:00
checksum.h
[NET]: Fix ipl=>ihl typo in ip_fast_csum
2005-08-29 16:02:48 -07:00
cpu.h
[PATCH] i386 CPU hotplug
2005-06-25 16:24:29 -07:00
cpufeature.h
[PATCH] i386/x86-64: Generalize X86_FEATURE_CONSTANT_TSC flag
2006-01-11 19:01:12 -08:00
cputime.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
current.h
[PATCH] mark several functions __always_inline
2006-01-14 18:27:15 -08:00
debugreg.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
delay.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
desc.h
[PATCH] x86: GDT alignment fix
2006-01-06 08:33:33 -08:00
div64.h
[PATCH] include/asm-i386/: "extern inline" -> "static inline"
2005-09-10 10:06:34 -07:00
dma-mapping.h
[PATCH] i386: make pci_map_single/pci_map_sg warn for zero length.
2006-01-11 19:04:56 -08:00
dma.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
e820.h
[PATCH] Increase number of e820 entries hard limit from 32 to 128
2005-05-01 08:58:51 -07:00
edac.h
[PATCH] EDAC: core EDAC support code
2006-01-18 19:20:31 -08:00
elf.h
[PATCH] fix remaining missing includes
2005-11-07 07:53:41 -08:00
emergency-restart.h
[PATCH] i386: Implement machine_emergency_reboot
2005-07-26 14:35:42 -07:00
errno.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
fcntl.h
[PATCH] Clean up struct flock64 definitions
2005-09-07 16:57:38 -07:00
fixmap.h
[ACPI] delete CONFIG_ACPI_BOOT
2005-08-24 12:08:54 -04:00
floppy.h
[PATCH] make some things static
2005-05-05 16:36:47 -07:00
futex.h
[PATCH] uml: remove leftover from patch revertal
2006-01-18 19:20:20 -08:00
genapic.h
[PATCH] Do not enforce unique IO_APIC_ID check for xAPIC systems (i386)
2005-06-23 09:45:09 -07:00
hardirq.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
highmem.h
[PATCH] kdump: Routines for copying dump pages
2005-06-25 16:24:53 -07:00
hpet.h
[PATCH] i386: fix hpet for systems that don't support legacy replacement
2005-05-01 08:58:50 -07:00
hw_irq.h
Revert "i386: move apic init in init_IRQs"
2005-10-31 19:16:17 -08:00
i387.h
[PATCH] i386: task_thread_info()
2006-01-12 09:08:51 -08:00
i8253.h
[PATCH] x86: i8253/i8259A lock cleanup
2005-06-30 08:45:10 -07:00
i8259.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ide.h
[PATCH] ide: explain the PCI bus test we do in <asm-i386/ide.h>
2005-11-10 00:10:37 +01:00
io.h
[PATCH] x86_64: Generalize DMI and enable for x86-64
2006-01-11 19:04:51 -08:00
io_apic.h
[ACPI] delete CONFIG_ACPI_BOOT
2005-08-24 12:08:54 -04:00
ioctl.h
[PATCH] Generic ioctl.h
2006-01-10 08:01:34 -08:00
ioctls.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ipc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ipcbuf.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
irq.h
[PATCH] Make vm86 support optional
2006-01-08 20:14:11 -08:00
ist.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
kdebug.h
[PATCH] x86 NMI: better support for debuggers
2005-09-05 00:06:13 -07:00
kexec.h
[PATCH] Kdump: i386 compiler warning fix
2006-01-10 08:01:27 -08:00
kmap_types.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
kprobes.h
[PATCH] kprobes: fix build breakage
2006-01-10 08:01:40 -08:00
ldt.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
linkage.h
[PATCH] i386: fix prevent_tail_call
2005-05-26 16:16:16 -07:00
local.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
math_emu.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mc146818rtc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mca.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mca_dma.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mman.h
[PATCH] madvise MADV_DONTFORK/MADV_DOFORK
2006-02-14 16:09:34 -08:00
mmu.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mmu_context.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mmx.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mmzone.h
[PATCH] mm: kvaddr_to_nid not used in common code
2006-01-06 08:33:23 -08:00
module.h
[PATCH] Base support for AMD Geode GX/LX processors
2006-01-06 08:33:38 -08:00
mpspec.h
Merge linux-2.6 with linux-acpi-2.6
2005-09-08 01:45:47 -04:00
mpspec_def.h
[PATCH] mpspec: remove unneeded packed attribute
2006-01-06 08:33:39 -08:00
msgbuf.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
msi.h
[PATCH] PCI: Change MSI to use physical delivery mode always
2005-11-10 16:09:18 -08:00
msr.h
[PATCH] x86: more asm cleanups
2005-09-05 00:06:12 -07:00
mtrr.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
mutex.h
Fix mutex_trylock() copy-and-paste bug (x86, x86-64, generic mutex-dec.h)
2006-01-11 15:50:47 -08:00
namei.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
nmi.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
node.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
numa.h
[PATCH] x86-64: Use ACPI PXM to parse PCI<->node assignments
2005-09-12 10:49:57 -07:00
numaq.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
numnodes.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
page.h
[PATCH] VMSPLIT config options
2006-02-01 08:53:21 -08:00
param.h
[PATCH] Avoid namespace pollution in <asm/param.h>
2006-01-02 08:38:38 -08:00
parport.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pci-direct.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pci.h
Revert PCIBIOS_MIN_IO changes for 2.6.13
2005-08-14 18:21:30 -07:00
percpu.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pgalloc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pgtable-2level-defs.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pgtable-2level.h
[PATCH] i386: little pgtable.h consolidation vs 2/3level
2005-10-30 17:37:12 -08:00
pgtable-3level-defs.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
pgtable-3level.h
[PATCH] i386: little pgtable.h consolidation vs 2/3level
2005-10-30 17:37:12 -08:00
pgtable.h
[PATCH] fix remaining missing includes
2005-11-07 07:53:41 -08:00
poll.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
posix_types.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
processor.h
[PATCH] i386: task_stack_page()
2006-01-12 09:08:52 -08:00
ptrace.h
[PATCH] PTRACE_SYSEMU is only for i386 and clashes with other ptrace codes of other archs
2006-01-08 20:14:04 -08:00
resource.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
rtc.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
rwlock.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
rwsem.h
[PATCH] add sem_is_read/write_locked()
2005-10-29 21:40:35 -07:00
scatterlist.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
seccomp.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
sections.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
segment.h
[PATCH] x86: Pnp segments in segment h
2006-01-06 08:33:34 -08:00
semaphore.h
[PATCH] semaphore: Remove __MUTEX_INITIALIZER()
2005-10-30 17:37:27 -08:00
sembuf.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
serial.h
[PATCH] Serial: Split 8250 port table (part 2)
2005-06-29 18:45:19 +01:00
setup.h
[PATCH] x86: fix EFI memory map parsing
2005-09-05 00:06:09 -07:00
shmbuf.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
shmparam.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
sigcontext.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
siginfo.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
signal.h
[PATCH] Handle TIF_RESTORE_SIGMASK for i386
2006-01-18 19:20:29 -08:00
smp.h
[PATCH] PCI: Change MSI to use physical delivery mode always
2005-11-10 16:09:18 -08:00
socket.h
[NET]: Introduce SO_{SND,RCV}BUFFORCE socket options
2005-08-29 15:31:35 -07:00
sockios.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
sparsemem.h
[PATCH] sparsemem memory model for i386
2005-06-23 09:45:05 -07:00
spinlock.h
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
spinlock_types.h
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
srat.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
stat.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
statfs.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
string.h
[PATCH] mark several functions __always_inline
2006-01-14 18:27:15 -08:00
suspend.h
[PATCH] i386: Use loaddebug macro consistently
2005-04-16 15:24:46 -07:00
system.h
[PATCH] Fix "value computed is not used" compile warnings with gcc-4.1
2006-02-05 11:06:54 -08:00
termbits.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
termios.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
thread_info.h
[PATCH] Handle TIF_RESTORE_SIGMASK for i386
2006-01-18 19:20:29 -08:00
timer.h
[PATCH] add suspend/resume for timer
2005-09-05 00:06:18 -07:00
timex.h
[PATCH] x86: cpu_khz type fix
2005-06-23 09:45:11 -07:00
tlb.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
tlbflush.h
[PATCH] seccomp: tsc disable
2005-06-27 15:11:44 -07:00
topology.h
[PATCH] fix x86 topology export in sysfs for subarchitectures
2006-02-14 16:09:34 -08:00
types.h
[PATCH] sab: consolidate kmem_bufctl_t
2005-09-05 00:05:48 -07:00
uaccess.h
[PATCH] mark several functions __always_inline
2006-01-14 18:27:15 -08:00
ucontext.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
unaligned.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
unistd.h
[PATCH] fstatat64 support
2006-02-11 21:41:10 -08:00
user.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
vga.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
vic.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
vm86.h
[PATCH] Make vm86 support optional
2006-01-08 20:14:11 -08:00
voyager.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
xor.h
[PATCH] i386: inline asm cleanup
2005-09-05 00:06:11 -07:00