linux/drivers
Seiji Aguchi fc2d557c74 kmsg_dump: constrain mtdoops and ramoops to perform their actions only for KMSG_DUMP_PANIC
This series aims to develop logging facility for enterprise use.

It is important to save kernel messages reliably on enterprise system
because they are helpful for diagnosing system.

This series add kmsg_dump() to the paths loosing kernel messages.  The use
case is the following.

[Use case of reboot/poweroff/halt/emergency_restart]

 My company has often experienced the followings in our support service.
 - Customer's system suddenly reboots.
 - Customers ask us to investigate the reason of the reboot.

We recognize the fact itself because boot messages remain in
/var/log/messages.  However, we can't investigate the reason why the
system rebooted, because the last messages don't remain.  And off course
we can't explain the reason.

We can solve above problem with this patch as follows.

 Case1: reboot with command
   - We can see "Restarting system with command:" or ""Restarting system.".

 Case2: halt with command
   - We can see "System halted.".

 Case3: poweroff with command
   - We can see " Power down.".

 Case4: emergency_restart with sysrq.
   - We can see "Sysrq:" outputted in __handle_sysrq().

 Case5: emergency_restart with softdog.
   - We can see "Initiating system reboot" in watchdog_fire().

So, we can distinguish the reason of reboot, poweroff, halt and emergency_restart.

If customer executed reboot command, you may think the customer should
know the fact.  However, they often claim they don't execute the command
when they rebooted system by mistake.

No message remains on the current Linux kernel, so we can't show the proof
to the customer.  This patch improves this situation.

This patch:

Alters mtdoops and ramoops to perform their actions only for
KMSG_DUMP_PANIC, KMSG_DUMP_OOPS and KMSG_DUMP_KEXEC because they would
like to log crashes only.

Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Marco Stornelli <marco.stornelli@gmail.com>
Reviewed-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-01-13 08:03:07 -08:00
..
accessibility
acpi Merge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2011-01-07 17:02:58 -08:00
amba
ata Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev 2011-01-10 08:22:33 -08:00
atm Madge Ambassador ATM Adapter driver: Always release_firmware() in ucode_init() and don't leak memory. 2011-01-09 15:45:48 -08:00
auxdisplay
base Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2011-01-10 16:10:33 -08:00
block Merge branch 'stable/xenbus' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2011-01-12 08:37:35 -08:00
bluetooth
cdrom gdrom: don't use flush_scheduled_work() 2010-12-24 15:59:06 +01:00
char kmsg_dump: constrain mtdoops and ramoops to perform their actions only for KMSG_DUMP_PANIC 2011-01-13 08:03:07 -08:00
clk
clocksource clocksource: sh_cmt: Remove nested spinlock fix 2010-12-17 19:38:33 +09:00
connector connector: Use this_cpu operations 2010-12-17 15:18:05 +01:00
cpufreq perf: Clean up power events by introducing new, more generic ones 2011-01-04 08:16:54 +01:00
cpuidle Merge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2011-01-07 17:02:58 -08:00
crypto
dca
dio
dma Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2011-01-11 16:31:41 -08:00
edac Merge branch 'mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp 2011-01-07 14:54:03 -08:00
eisa
firewire firewire: use split transaction timeout only for split transactions 2011-01-04 08:48:34 +01:00
firmware
gpio Merge branch 'devel-stable' into devel 2011-01-06 22:33:32 +00:00
gpu drm/i915/execbuffer: Reorder binding of objects to favour restrictions 2011-01-11 22:55:48 +00:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2011-01-10 08:15:37 -08:00
hwmon hwmon: Support for Dallas Semiconductor DS620 2011-01-09 09:10:10 -08:00
i2c i2c: Constify i2c_client where possible 2011-01-10 22:11:23 +01:00
ide
idle perf: Clean up power events by introducing new, more generic ones 2011-01-04 08:16:54 +01:00
ieee802154
infiniband Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2011-01-11 16:30:08 -08:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2011-01-10 08:15:37 -08:00
isdn Merge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2011-01-07 16:58:04 -08:00
leds leds: add output inversion option to backlight trigger 2011-01-13 08:03:06 -08:00
lguest
macintosh Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2011-01-11 16:31:41 -08:00
mca
md Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2010-12-20 09:19:46 -08:00
media Merge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2011-01-07 16:58:04 -08:00
memstick
message
mfd mfd: sh_mobile_sdhi: activate SDIO IRQ for tmio_mmc 2011-01-08 23:52:31 -05:00
misc Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 2011-01-10 08:57:03 -08:00
mmc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc 2011-01-11 11:01:24 -08:00
mtd kmsg_dump: constrain mtdoops and ramoops to perform their actions only for KMSG_DUMP_PANIC 2011-01-13 08:03:07 -08:00
net Merge branch 'stable/xenbus' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2011-01-12 08:37:35 -08:00
nubus
of Merge remote branch 'gcl/next' into next 2011-01-11 15:10:08 +11:00
oprofile
parisc
parport
pci Merge branch 'stable/xenbus' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2011-01-12 08:37:35 -08:00
pcmcia Merge branch 'devel-stable' into devel 2011-01-06 22:33:32 +00:00
platform sony-laptop: support new hotkeys on the P, Z and EC series 2011-01-10 12:00:22 -05:00
pnp ACPI/PNP: avoid section mismatch warning 2010-12-11 02:01:47 -05:00
power workqueue: convert cancel_rearming_delayed_work[queue]() users to cancel_delayed_work_sync() 2010-12-15 10:56:11 +01:00
pps
ps3
rapidio
regulator
rtc Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2011-01-11 16:31:41 -08:00
s390 headers: kobject.h redux 2011-01-10 08:51:44 -08:00
sbus sparc: explicitly cast negative phandle checks to s32 2011-01-03 20:02:06 -07:00
scsi Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev 2011-01-10 08:22:33 -08:00
serial Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin 2011-01-10 17:06:08 -08:00
sfi
sh headers: kobject.h redux 2011-01-10 08:51:44 -08:00
sn
spi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6 2011-01-10 08:14:53 -08:00
ssb ssb: Use pci_is_pcie() 2010-12-22 15:43:26 -05:00
staging Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 2011-01-10 16:04:53 -08:00
tc
telephony
thermal
tty Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-01-07 14:39:20 -08:00
uio
usb Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 2011-01-10 16:04:53 -08:00
uwb Merge branch 'usb-next' into musb-merge 2010-12-16 10:05:06 -08:00
vhost Merge branch 'vhost-net-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost 2010-12-14 11:33:23 -08:00
video drivers/video/backlight/l4f00242t03.c: fix reset sequence 2011-01-13 08:03:06 -08:00
virtio
vlynq
w1
watchdog Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-01-11 11:02:13 -08:00
xen Merge branch 'stable/xenbus' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2011-01-12 08:37:35 -08:00
zorro
Kconfig
Makefile Merge branch 'smp' into misc 2011-01-06 22:32:03 +00:00