kernel-fxtec-pro1x/arch/powerpc/kernel
Jason Baron 909af768e8 coredump: remove VM_ALWAYSDUMP flag
The motivation for this patchset was that I was looking at a way for a
qemu-kvm process, to exclude the guest memory from its core dump, which
can be quite large.  There are already a number of filter flags in
/proc/<pid>/coredump_filter, however, these allow one to specify 'types'
of kernel memory, not specific address ranges (which is needed in this
case).

Since there are no more vma flags available, the first patch eliminates
the need for the 'VM_ALWAYSDUMP' flag.  The flag is used internally by
the kernel to mark vdso and vsyscall pages.  However, it is simple
enough to check if a vma covers a vdso or vsyscall page without the need
for this flag.

The second patch then replaces the 'VM_ALWAYSDUMP' flag with a new
'VM_NODUMP' flag, which can be set by userspace using new madvise flags:
'MADV_DONTDUMP', and unset via 'MADV_DODUMP'.  The core dump filters
continue to work the same as before unless 'MADV_DONTDUMP' is set on the
region.

The qemu code which implements this features is at:

  http://people.redhat.com/~jbaron/qemu-dump/qemu-dump.patch

In my testing the qemu core dump shrunk from 383MB -> 13MB with this
patch.

I also believe that the 'MADV_DONTDUMP' flag might be useful for
security sensitive apps, which might want to select which areas are
dumped.

This patch:

The VM_ALWAYSDUMP flag is currently used by the coredump code to
indicate that a vma is part of a vsyscall or vdso section.  However, we
can determine if a vma is in one these sections by checking it against
the gate_vma and checking for a non-NULL return value from
arch_vma_name().  Thus, freeing a valuable vma bit.

Signed-off-by: Jason Baron <jbaron@redhat.com>
Acked-by: Roland McGrath <roland@hack.frob.com>
Cc: Chris Metcalf <cmetcalf@tilera.com>
Cc: Avi Kivity <avi@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-03-23 16:58:42 -07:00
..
vdso32
vdso64
.gitignore
align.c
asm-offsets.c powerpc: Remove the remaining CONFIG_PPC_ISERIES pieces 2012-03-21 11:16:12 +11:00
audit.c
btext.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
cacheinfo.c cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem 2011-12-21 14:29:42 -08:00
cacheinfo.h
clock.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_a2.S powerpc/book3e: Add ICSWX/ACOP support to Book3e cores like A2 2011-11-25 14:11:28 +11:00
cpu_setup_fsl_booke.S
cpu_setup_pa6t.S
cpu_setup_power7.S powerpc, KVM: Split HVMODE_206 cpu feature bit into separate HV and architecture bits 2011-07-12 13:16:58 +03:00
cpu_setup_ppc970.S powerpc, KVM: Split HVMODE_206 cpu feature bit into separate HV and architecture bits 2011-07-12 13:16:58 +03:00
cputable.c Merge remote-tracking branch 'kumar/next' into next 2012-03-21 10:56:04 +11:00
crash.c powerpc/crash: Fix build error without SMP 2012-01-25 09:47:45 +11:00
crash_dump.c powerpc: Rename mapping based RELOCATABLE to DYNAMIC_MEMSTART for BookE 2011-12-20 10:20:19 -05:00
dbell.c powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
dma-iommu.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
dma-swiotlb.c powerpc: Use the newly added get_required_mask dma_map_ops hook 2011-09-20 09:19:35 +10:00
dma.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
entry_32.S powerpc: Fix various issues with return to userspace 2012-02-22 16:48:53 +11:00
entry_64.S powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
exceptions-64e.S powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
exceptions-64s.S powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
fadump.c fadump: Invalidate registration and release reserved memory for general use. 2012-02-23 10:50:02 +11:00
firmware.c powerpc: fix implicit use of cache.h in kernel/firmware.c 2011-10-31 19:30:41 -04:00
fpu.S
fsl_booke_entry_mapping.S
ftrace.c
head_8xx.S powerpc: Call do_page_fault() with interrupts off 2012-03-09 10:55:08 +11:00
head_32.S powerpc: Call do_page_fault() with interrupts off 2012-03-09 10:55:08 +11:00
head_40x.S powerpc: Call do_page_fault() with interrupts off 2012-03-09 10:55:08 +11:00
head_44x.S powerpc/44x: Enable CONFIG_RELOCATABLE for PPC44x 2011-12-20 10:21:57 -05:00
head_64.S powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
head_booke.h powerpc: Call do_page_fault() with interrupts off 2012-03-09 10:55:08 +11:00
head_fsl_booke.S powerpc: Call do_page_fault() with interrupts off 2012-03-09 10:55:08 +11:00
hw_breakpoint.c powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
ibmebus.c drivercore: Output common devicetree information in uevent 2012-02-01 14:26:30 -07:00
idle.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-03-21 18:55:10 -07:00
idle_6xx.S
idle_book3e.S powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
idle_e500.S powerpc: e500mc: Fix: use CONFIG_PPC_E500MC in idle_e500.S 2011-10-11 23:23:24 -05:00
idle_power4.S powerpc: Fix power4/970 idle code regression with lockdep 2012-03-16 09:28:17 +11:00
idle_power7.S powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
init_task.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
io-workarounds.c powerpc: io-workarounds.c was implicitly getting init_mm 2011-10-31 19:30:37 -04:00
io.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
iomap.c powerpc: switch to GENERIC_PCI_IOMAP 2011-11-28 21:13:18 +02:00
iommu.c fadump: Register for firmware assisted dump. 2012-02-23 10:50:01 +11:00
irq.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-03-21 18:55:10 -07:00
isa-bridge.c powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
jump_label.c powerpc: Fix build breakage in jump_label.c 2011-11-16 14:25:19 +11:00
kgdb.c
kprobes.c
kvm.c powerpc: Copy down exception vectors after feature fixups 2011-11-16 14:47:54 +11:00
kvm_emul.S
l2cr_6xx.S
legacy_serial.c powerpc: Fix build on some non-freescale platforms 2012-01-25 13:33:22 +11:00
lparcfg.c powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
machine_kexec.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-01-06 17:58:22 -08:00
machine_kexec_32.c treewide: convert uses of ATTRIB_NORETURN to __noreturn 2012-01-12 20:13:03 -08:00
machine_kexec_64.c treewide: convert uses of ATTRIB_NORETURN to __noreturn 2012-01-12 20:13:03 -08:00
Makefile powerpc/perf: Move perf core & PMU code into a subdirectory 2012-02-23 10:50:04 +11:00
misc.S powerpc: Remove legacy iSeries bits from assembly files 2012-03-09 10:54:59 +11:00
misc_32.S powerpc/4xx: Fix typos in kexec config dependencies 2011-11-16 14:47:54 +11:00
misc_64.S
module.c powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
module_32.c modules: make arch's use default loader hooks 2011-07-24 22:06:04 +09:30
module_64.c modules: make arch's use default loader hooks 2011-07-24 22:06:04 +09:30
msi.c
nvram_64.c
of_platform.c powerpc/eeh: Introduce EEH device 2012-03-09 11:39:29 +11:00
paca.c powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
pci-common.c powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
pci_32.c powerpc: include export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:30:38 -04:00
pci_64.c powerpc/PCI: split PHB part out of pcibios_map_io_space() 2012-01-06 12:11:08 -08:00
pci_dn.c powerpc/powernv: PCI support for p7IOC under OPAL v2 2011-11-25 14:53:15 +11:00
pci_of_scan.c powerpc: add export.h to files making use of EXPORT_SYMBOL 2011-10-31 19:30:37 -04:00
pmc.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
ppc32.h
ppc_ksyms.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
ppc_save_regs.S
proc_powerpc.c
process.c powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
prom.c fadump: Remove the phyp assisted dump code. 2012-02-23 10:50:03 +11:00
prom_init.c powerpc/prom: Remove limit on maximum size of properties 2012-03-07 17:06:10 +11:00
prom_init_check.sh powerpc/powernv: Get kernel command line accross OPAL takeover 2011-09-20 16:09:48 +10:00
prom_parse.c powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
ptrace.c audit: inline audit_syscall_entry to reduce burden on archs 2012-01-17 16:16:56 -05:00
ptrace32.c
reloc_32.S powerpc: Process dynamic relocations for kernel 2011-12-20 10:21:08 -05:00
reloc_64.S
rtas-proc.c
rtas-rtc.c
rtas.c powerpc/pseries: Fix partition migration hang in stop_topology_update 2012-02-14 15:01:39 +11:00
rtas_flash.c powerpc/pseries: Cancel RTAS event scan before firmware flash 2011-11-25 14:11:29 +11:00
rtas_pci.c powerpc/eeh: Introduce EEH device 2012-03-09 11:39:29 +11:00
rtasd.c powerpc/pseries: Cancel RTAS event scan before firmware flash 2011-11-25 14:11:29 +11:00
setup-common.c fadump: Invalidate the fadump registration during machine shutdown. 2012-02-23 10:50:03 +11:00
setup.h
setup_32.c powerpc: Copy down exception vectors after feature fixups 2011-11-16 14:47:54 +11:00
setup_64.c powerpc: Add gpages reservation code for 64-bit FSL BOOKE 2011-12-07 16:26:23 +11:00
signal.c powerpc: Use set_current_blocked() and block_sigmask() 2012-03-07 17:06:09 +11:00
signal.h powerpc: Fix various issues with return to userspace 2012-02-22 16:48:53 +11:00
signal_32.c powerpc: Use set_current_blocked() and block_sigmask() 2012-03-07 17:06:09 +11:00
signal_64.c powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
smp-tbsync.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
smp.c Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
softemu8xx.c
stacktrace.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
suspend.c
swsusp.c powerpc/mm: Fix the call trace when resumed from hibernation 2011-09-20 09:19:58 +10:00
swsusp_32.S
swsusp_64.c powerpc: Fix up implicit sched.h users 2011-10-31 19:30:40 -04:00
swsusp_asm64.S
swsusp_booke.S
sys_ppc32.c
syscalls.c
sysfs.c powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
systbl.S
systbl_chk.c
systbl_chk.sh
tau_6xx.c
time.c powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
traps.c powerpc: Disable interrupts in 64-bit kernel FP and vector faults 2012-03-09 10:55:10 +11:00
udbg.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2011-11-06 17:12:03 -08:00
udbg_16550.c
vdso.c coredump: remove VM_ALWAYSDUMP flag 2012-03-23 16:58:42 -07:00
vecemu.c
vector.S
vio.c powerpc: clean up vio.c 2012-03-09 10:35:23 +11:00
vmlinux.lds.S powerpc: Remove legacy iSeries bits from assembly files 2012-03-09 10:54:59 +11:00