OpenCloudOS-Kernel/arch/x86
Neil Horman 7dc0b22e3c core_pattern: ignore RLIMIT_CORE if core_pattern is a pipe
For some time /proc/sys/kernel/core_pattern has been able to set its output
destination as a pipe, allowing a user space helper to receive and
intellegently process a core.  This infrastructure however has some
shortcommings which can be enhanced.  Specifically:

1) The coredump code in the kernel should ignore RLIMIT_CORE limitation
   when core_pattern is a pipe, since file system resources are not being
   consumed in this case, unless the user application wishes to save the core,
   at which point the app is restricted by usual file system limits and
   restrictions.

2) The core_pattern code should be able to parse and pass options to the
   user space helper as an argv array.  The real core limit of the uid of the
   crashing proces should also be passable to the user space helper (since it
   is overridden to zero when called).

3) Some miscellaneous bugs need to be cleaned up (specifically the
   recognition of a recursive core dump, should the user mode helper itself
   crash.  Also, the core dump code in the kernel should not wait for the user
   mode helper to exit, since the same context is responsible for writing to
   the pipe, and a read of the pipe by the user mode helper will result in a
   deadlock.

This patch:

Remove the check of RLIMIT_CORE if core_pattern is a pipe.  In the event that
core_pattern is a pipe, the entire core will be fed to the user mode helper.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Cc: <martin.pitt@ubuntu.com>
Cc: <wwoods@redhat.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-17 08:42:50 -07:00
..
boot x86: fix boot error introduced by kbuild 2007-10-16 23:50:33 +02:00
crypto x86_64: move crypto 2007-10-11 11:17:03 +02:00
ia32 core_pattern: ignore RLIMIT_CORE if core_pattern is a pipe 2007-10-17 08:42:50 -07:00
kernel Remove workaround for unimmunized rcu_dereference from mce_log() 2007-10-17 08:42:46 -07:00
lib lockdep: x86_64: connect the sysexit hook 2007-10-11 22:11:12 +02:00
mach-default i386: move mach-default 2007-10-11 11:16:48 +02:00
mach-es7000 i386: move mach-es7000 2007-10-11 11:16:50 +02:00
mach-generic Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-11 19:18:45 -07:00
mach-visws i386: move mach-visws 2007-10-11 11:16:38 +02:00
mach-voyager i386: move kernel 2007-10-11 11:17:01 +02:00
math-emu kbuild: fix up CFLAGS usage 2007-10-14 21:49:42 +02:00
mm Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
oprofile Convert cpu_sibling_map to be a per cpu variable 2007-10-16 09:42:50 -07:00
pci Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-11 19:18:45 -07:00
power i386: move power 2007-10-11 11:16:34 +02:00
vdso kbuild: enable 'make CFLAGS=...' to add additional options to CC 2007-10-14 22:21:35 +02:00
video i386: move video 2007-10-11 11:16:56 +02:00
xen Convert cpu_sibling_map to be a per cpu variable 2007-10-16 09:42:50 -07:00