Re: [PATCH V2] kernel, add bug_on_warn

2014-11-03 Thread Prarit Bhargava


On 10/30/2014 08:25 PM, Rusty Russell wrote:
> Prarit Bhargava  writes:
>> On 10/22/2014 12:27 AM, Rusty Russell wrote:
>>> Prarit Bhargava  writes:
 There have been several times where I have had to rebuild a kernel to
 cause a panic when hitting a WARN() in the code in order to get a crash
 dump from a system.  Sometimes this is easy to do, other times (such as
 in the case of a remote admin) it is not trivial to send new images to the
 user.
>>>
>>> What about during early boot?
>>
>> Hi Rusty,
>>
>> I really don't have a use case for this in early boot.  The kernel boots, the
>> initramfs, and then we run whatever init (systemd in my case).  A systemd 
>> script
>> configures kexec for kdump and that point kdump is "armed".  Doing a 
>> bug_on_warn
>> before this will simply result in a panicked system.  I don't get any "new"
>> information FWIW as I get a stack trace, etc., in both the WARN() and BUG() 
>> cases.
>>
>>>
>>> I'd recommend you use core_param().  Less code, and can be set on
>>> commandline.

Yeah, I was just starting to do this and then I saw Hedi's comment about
disabling panic_on_warn during kdump to avoid a situation where the kdump kernel
bogus panics on a warn.

So that makes the setup function look like:

static int __init panic_on_warn_setup(char *s)
{
/* Enabling this on a kdump kernel could cause a bogus panic. */
if (!is_kdump_kernel())
panic_on_warn = 1;
return 0;
}
early_param("panic_on_warn", panic_on_warn_setup);

... so I dunno if core_param would work here :(.  It would have been nice if it 
did.

P.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH V2] kernel, add bug_on_warn

2014-10-30 Thread Rusty Russell
Prarit Bhargava  writes:
> On 10/22/2014 12:27 AM, Rusty Russell wrote:
>> Prarit Bhargava  writes:
>>> There have been several times where I have had to rebuild a kernel to
>>> cause a panic when hitting a WARN() in the code in order to get a crash
>>> dump from a system.  Sometimes this is easy to do, other times (such as
>>> in the case of a remote admin) it is not trivial to send new images to the
>>> user.
>> 
>> What about during early boot?
>
> Hi Rusty,
>
> I really don't have a use case for this in early boot.  The kernel boots, the
> initramfs, and then we run whatever init (systemd in my case).  A systemd 
> script
> configures kexec for kdump and that point kdump is "armed".  Doing a 
> bug_on_warn
> before this will simply result in a panicked system.  I don't get any "new"
> information FWIW as I get a stack trace, etc., in both the WARN() and BUG() 
> cases.
>
>> 
>> I'd recommend you use core_param().  Less code, and can be set on
>> commandline.
>
> Is that a general request, or is it dependent on the answer above?  Of course 
> I
> have no problem doing it either way.

Oops, I read your initial patch too lightly: I see you added both
a sysctl (which I saw) and an early_param (which I didn't).

I still think it should be a core_param, like so (untested!):

diff --git a/Documentation/kdump/kdump.txt b/Documentation/kdump/kdump.txt
index 6c0b9f27e465..cf16cbe9f544 100644
--- a/Documentation/kdump/kdump.txt
+++ b/Documentation/kdump/kdump.txt
@@ -471,6 +471,13 @@ format. Crash is available on Dave Anderson's site at the 
following URL:
 
http://people.redhat.com/~anderson/
 
+Trigger Kdump on WARN()
+===
+
+The kernel parameter, bug_on_warn, calls BUG() in all WARN() paths.  This
+will cause a kdump to occur at the BUG() call.  In cases where a user
+wants to specify this during runtime, /sys/module/kernel/bug_on_warn can be
+set to 1 to achieve the same behaviour.
 
 Contact
 ===
diff --git a/Documentation/kernel-parameters.txt 
b/Documentation/kernel-parameters.txt
index 74339c57b914..aa1d3198e987 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -553,6 +553,9 @@ bytes respectively. Such letter suffixes can also be 
entirely omitted.
bttv.pll=   See Documentation/video4linux/bttv/Insmod-options
bttv.tuner=
 
+   bug_on_warn BUG() instead of WARN().  Useful to cause kdump
+   on a WARN().
+
bulk_remove=off [PPC]  This parameter disables the use of the pSeries
firmware feature for flushing multiple hpte entries
at a time.
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index 630dd2372238..4d0c763862b0 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -75,10 +75,18 @@ extern void warn_slowpath_null(const char *file, const int 
line);
 #define __WARN_printf_taint(taint, arg...) \
warn_slowpath_fmt_taint(__FILE__, __LINE__, taint, arg)
 #else
-#define __WARN()   __WARN_TAINT(TAINT_WARN)
+#define check_bug_on_warn()\
+   do {\
+   if (bug_on_warn)\
+   BUG();  \
+   } while (0)
+
+#define __WARN()   \
+   do { __WARN_TAINT(TAINT_WARN); check_bug_on_warn(); } while (0)
+
 #define __WARN_printf(arg...)  do { printk(arg); __WARN(); } while (0)
 #define __WARN_printf_taint(taint, arg...) \
-   do { printk(arg); __WARN_TAINT(taint); } while (0)
+   do { printk(arg); __WARN_TAINT(taint); check_bug_on_warn(); } while (0)
 #endif
 
 #ifndef WARN_ON
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 3d770f5564b8..d583df09ee82 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -423,6 +423,7 @@ extern int panic_on_oops;
 extern int panic_on_unrecovered_nmi;
 extern int panic_on_io_nmi;
 extern int sysctl_panic_on_stackoverflow;
+extern bool bug_on_warn;
 /*
  * Only to be used by arch init code. If the user over-wrote the default
  * CONFIG_PANIC_TIMEOUT, honor it.
diff --git a/kernel/panic.c b/kernel/panic.c
index d09dc5c32c67..3d345357fcc8 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -33,6 +33,7 @@ static int pause_on_oops;
 static int pause_on_oops_flag;
 static DEFINE_SPINLOCK(pause_on_oops_lock);
 static bool crash_kexec_post_notifiers;
+bool bug_on_warn;
 
 int panic_timeout = CONFIG_PANIC_TIMEOUT;
 EXPORT_SYMBOL_GPL(panic_timeout);
@@ -420,13 +421,24 @@ static void warn_slowpath_common(const char *file, int 
line, void *caller,
 {
disable_trace_on_warning();
 
-   pr_warn("[ cut here ]\n");
+   if (!bug_on_warn)
+   pr_warn("[

Re: [PATCH V2] kernel, add bug_on_warn

2014-10-22 Thread Yasuaki Ishimatsu
(2014/10/22 1:47), Prarit Bhargava wrote:
> There have been several times where I have had to rebuild a kernel to
> cause a panic when hitting a WARN() in the code in order to get a crash
> dump from a system.  Sometimes this is easy to do, other times (such as
> in the case of a remote admin) it is not trivial to send new images to the
> user.
> 
> A much easier method would be a switch to change the WARN() over to a
> BUG().  This makes debugging easier in that I can now test the actual
> image the WARN() was seen on and I do not have to engage in remote
> debugging.
> 
> This patch adds a bug_on_warn kernel parameter, which calls BUG() in the
> warn_slowpath_common() path.  The function will still print out the
> location of the warning.
> 
> An example of the bug_on_warn output:
> 
> The first line below is from the WARN_ON() to output the WARN_ON()'s location.
> After that the new BUG() call is displayed.
> 
>   WARNING: CPU: 27 PID: 3204 at
> /home/rhel7/redhat/debug/dummy-module/dummy-module.c:25 init_dummy+0x28/0x30
> [dummy_module]()
>   bug_on_warn set, calling BUG()...
>   [ cut here ]
>   kernel BUG at kernel/panic.c:434!
>   invalid opcode:  [#1] SMP
>   Modules linked in: dummy_module(OE+) sg nfsv3 rpcsec_gss_krb5 nfsv4
> dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal intel_powerclamp
> coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul crc32c_intel
> ghash_clmulni_intel igb iTCO_wdt aesni_intel iTCO_vendor_support lrw gf128mul
> sb_edac ptp edac_core glue_helper lpc_ich ioatdma pcspkr ablk_helper pps_core
> i2c_i801 mfd_core cryptd dca shpchp ipmi_si wmi ipmi_msghandler acpi_cpufreq
> nfsd auth_rpcgss nfs_acl lockd grace sunrpc xfs libcrc32c sr_mod cdrom sd_mod
> mgag200 syscopyarea sysfillrect sysimgblt i2c_algo_bit drm_kms_helper isci ttm
> drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror
> dm_region_hash dm_log dm_mod
>   CPU: 27 PID: 3204 Comm: insmod Tainted: G   OE  3.17.0+ #19
>   Hardware name: Intel Corporation S2600CP/S2600CP, BIOS
> RMLSDP.86I.00.29.D696.131329 11/11/2013
>   task: 880034e75160 ti: 8807fc5ac000 task.ti: 8807fc5ac000
>   RIP: 0010:[]  [] 
> warn_slowpath_common+0xc1/0xd0
>   RSP: 0018:8807fc5afc68  EFLAGS: 00010246
>   RAX: 0021 RBX: 8807fc5afcb0 RCX: 
>   RDX:  RSI: 88081efee5f8 RDI: 88081efee5f8
>   RBP: 8807fc5afc98 R08: 0096 R09: 
>   R10: 0711 R11: 8807fc5af93e R12: a0424070
>   R13: 0019 R14: a0423068 R15: 0009
>   FS:  7f2d4b034740() GS:88081efe() knlGS:
>   CS:  0010 DS:  ES:  CR0: 80050033
>   CR2: 7f2d4a99f3c0 CR3: 0007fd88b000 CR4: 001407e0
>   Stack:
>8807fc5afcb8 8199f020 88080e396160 
>a0423040 a0425000 8807fc5afd08 81076be5
>0008 a0424053 88070018 8807fc5afd18
>   Call Trace:
>[] ? dummy_greetings+0x40/0x40 [dummy_module]
>[] warn_slowpath_fmt+0x55/0x70
>[] init_dummy+0x28/0x30 [dummy_module]
>[] do_one_initcall+0xd4/0x210
>[] ? __vunmap+0xc2/0x110
>[] load_module+0x16a9/0x1b30
>[] ? store_uevent+0x70/0x70
>[] ? copy_module_from_fd.isra.44+0x129/0x180
>[] SyS_finit_module+0xa6/0xd0
>[] system_call_fastpath+0x12/0x17
>   Code: c4 08 5b 41 5c 41 5d 41 5e 41 5f 5d c3 48 c7 c7 20 42 8a 81 31 c0 e8 
> fc
> 80 5e 00 eb 80 48 c7 c7 78 42 8a 81 31 c0 e8 ec 80 5e 00 <0f> 0b 66 66 66 66 
> 2e
> 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55
>   RIP  [] warn_slowpath_common+0xc1/0xd0
>RSP 
>   ---[ end trace 428218934a12088b ]---
> 
> Successfully tested by me.
> 
> Cc: Jonathan Corbet 
> Cc: Andrew Morton 
> Cc: Rusty Russell 
> Cc: "H. Peter Anvin" 
> Cc: Andi Kleen 
> Cc: Masami Hiramatsu 
> Cc: Fabian Frederick 
> Cc: vgo...@redhat.com
> Cc: isimatu.yasu...@jp.fujitsu.com
> Cc: linux-...@vger.kernel.org
> Cc: ke...@lists.infradead.org
> Cc: linux-...@vger.kernel.org
> Signed-off-by: Prarit Bhargava 
> 
> [v2]: add /proc/sys/kernel/bug_on_warn, additional documentation, modify
>!slowpath cases
> ---
>   Documentation/kdump/kdump.txt   |7 +++
>   Documentation/kernel-parameters.txt |3 +++
>   Documentation/sysctl/kernel.txt |   12 
>   include/asm-generic/bug.h   |   12 ++--
>   include/linux/kernel.h  |1 +
>   include/uapi/linux/sysctl.h |1 +
>   kernel/panic.c  |   21 -
>   kernel/sysctl.c |7 +++
>   kernel/sysctl_binary.c  |1 +
>   9 files changed, 62 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/kdump/kdump.txt b/Documentation/kdump/kdump.txt
> index 6c0b9f2..a04ed72 100644
> --- a/Documentation/kdump/kdump.txt
> +++ b/Documentation/kd

Re: [PATCH V2] kernel, add bug_on_warn

2014-10-22 Thread Prarit Bhargava


On 10/22/2014 12:27 AM, Rusty Russell wrote:
> Prarit Bhargava  writes:
>> There have been several times where I have had to rebuild a kernel to
>> cause a panic when hitting a WARN() in the code in order to get a crash
>> dump from a system.  Sometimes this is easy to do, other times (such as
>> in the case of a remote admin) it is not trivial to send new images to the
>> user.
>>
>> A much easier method would be a switch to change the WARN() over to a
>> BUG().  This makes debugging easier in that I can now test the actual
>> image the WARN() was seen on and I do not have to engage in remote
>> debugging.
>>
>> This patch adds a bug_on_warn kernel parameter, which calls BUG() in the
>> warn_slowpath_common() path.  The function will still print out the
>> location of the warning.
>>
>> An example of the bug_on_warn output:
>>
>> The first line below is from the WARN_ON() to output the WARN_ON()'s 
>> location.
>> After that the new BUG() call is displayed.
>>
>>  WARNING: CPU: 27 PID: 3204 at
>> /home/rhel7/redhat/debug/dummy-module/dummy-module.c:25 init_dummy+0x28/0x30
>> [dummy_module]()
>>  bug_on_warn set, calling BUG()...
>>  [ cut here ]
>>  kernel BUG at kernel/panic.c:434!
>>  invalid opcode:  [#1] SMP
>>  Modules linked in: dummy_module(OE+) sg nfsv3 rpcsec_gss_krb5 nfsv4
>> dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal 
>> intel_powerclamp
>> coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul crc32c_intel
>> ghash_clmulni_intel igb iTCO_wdt aesni_intel iTCO_vendor_support lrw gf128mul
>> sb_edac ptp edac_core glue_helper lpc_ich ioatdma pcspkr ablk_helper pps_core
>> i2c_i801 mfd_core cryptd dca shpchp ipmi_si wmi ipmi_msghandler acpi_cpufreq
>> nfsd auth_rpcgss nfs_acl lockd grace sunrpc xfs libcrc32c sr_mod cdrom sd_mod
>> mgag200 syscopyarea sysfillrect sysimgblt i2c_algo_bit drm_kms_helper isci 
>> ttm
>> drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror
>> dm_region_hash dm_log dm_mod
>>  CPU: 27 PID: 3204 Comm: insmod Tainted: G   OE  3.17.0+ #19
>>  Hardware name: Intel Corporation S2600CP/S2600CP, BIOS
>> RMLSDP.86I.00.29.D696.131329 11/11/2013
>>  task: 880034e75160 ti: 8807fc5ac000 task.ti: 8807fc5ac000
>>  RIP: 0010:[]  [] 
>> warn_slowpath_common+0xc1/0xd0
>>  RSP: 0018:8807fc5afc68  EFLAGS: 00010246
>>  RAX: 0021 RBX: 8807fc5afcb0 RCX: 
>>  RDX:  RSI: 88081efee5f8 RDI: 88081efee5f8
>>  RBP: 8807fc5afc98 R08: 0096 R09: 
>>  R10: 0711 R11: 8807fc5af93e R12: a0424070
>>  R13: 0019 R14: a0423068 R15: 0009
>>  FS:  7f2d4b034740() GS:88081efe() knlGS:
>>  CS:  0010 DS:  ES:  CR0: 80050033
>>  CR2: 7f2d4a99f3c0 CR3: 0007fd88b000 CR4: 001407e0
>>  Stack:
>>   8807fc5afcb8 8199f020 88080e396160 
>>   a0423040 a0425000 8807fc5afd08 81076be5
>>   0008 a0424053 88070018 8807fc5afd18
>>  Call Trace:
>>   [] ? dummy_greetings+0x40/0x40 [dummy_module]
>>   [] warn_slowpath_fmt+0x55/0x70
>>   [] init_dummy+0x28/0x30 [dummy_module]
>>   [] do_one_initcall+0xd4/0x210
>>   [] ? __vunmap+0xc2/0x110
>>   [] load_module+0x16a9/0x1b30
>>   [] ? store_uevent+0x70/0x70
>>   [] ? copy_module_from_fd.isra.44+0x129/0x180
>>   [] SyS_finit_module+0xa6/0xd0
>>   [] system_call_fastpath+0x12/0x17
>>  Code: c4 08 5b 41 5c 41 5d 41 5e 41 5f 5d c3 48 c7 c7 20 42 8a 81 31 c0 e8 
>> fc
>> 80 5e 00 eb 80 48 c7 c7 78 42 8a 81 31 c0 e8 ec 80 5e 00 <0f> 0b 66 66 66 66 
>> 2e
>> 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55
>>  RIP  [] warn_slowpath_common+0xc1/0xd0
>>   RSP 
>>  ---[ end trace 428218934a12088b ]---
>>
>> Successfully tested by me.
>>
>> Cc: Jonathan Corbet 
>> Cc: Andrew Morton 
>> Cc: Rusty Russell 
>> Cc: "H. Peter Anvin" 
>> Cc: Andi Kleen 
>> Cc: Masami Hiramatsu 
>> Cc: Fabian Frederick 
>> Cc: vgo...@redhat.com
>> Cc: isimatu.yasu...@jp.fujitsu.com
>> Cc: linux-...@vger.kernel.org
>> Cc: ke...@lists.infradead.org
>> Cc: linux-...@vger.kernel.org
>> Signed-off-by: Prarit Bhargava 
>>
>> [v2]: add /proc/sys/kernel/bug_on_warn, additional documentation, modify
>>   !slowpath cases
>> ---
>>  Documentation/kdump/kdump.txt   |7 +++
>>  Documentation/kernel-parameters.txt |3 +++
>>  Documentation/sysctl/kernel.txt |   12 
>>  include/asm-generic/bug.h   |   12 ++--
>>  include/linux/kernel.h  |1 +
>>  include/uapi/linux/sysctl.h |1 +
>>  kernel/panic.c  |   21 -
>>  kernel/sysctl.c |7 +++
>>  kernel/sysctl_binary.c  |1 +
>>  9 files changed, 62 insertions(+), 3 deletions(-)
>>
>> diff --git a/Documentation/kdump/kdump.txt b/Documentation/kdump/kdump.txt
>

Re: [PATCH V2] kernel, add bug_on_warn

2014-10-21 Thread Rusty Russell
Prarit Bhargava  writes:
> There have been several times where I have had to rebuild a kernel to
> cause a panic when hitting a WARN() in the code in order to get a crash
> dump from a system.  Sometimes this is easy to do, other times (such as
> in the case of a remote admin) it is not trivial to send new images to the
> user.
>
> A much easier method would be a switch to change the WARN() over to a
> BUG().  This makes debugging easier in that I can now test the actual
> image the WARN() was seen on and I do not have to engage in remote
> debugging.
>
> This patch adds a bug_on_warn kernel parameter, which calls BUG() in the
> warn_slowpath_common() path.  The function will still print out the
> location of the warning.
>
> An example of the bug_on_warn output:
>
> The first line below is from the WARN_ON() to output the WARN_ON()'s location.
> After that the new BUG() call is displayed.
>
>  WARNING: CPU: 27 PID: 3204 at
> /home/rhel7/redhat/debug/dummy-module/dummy-module.c:25 init_dummy+0x28/0x30
> [dummy_module]()
>  bug_on_warn set, calling BUG()...
>  [ cut here ]
>  kernel BUG at kernel/panic.c:434!
>  invalid opcode:  [#1] SMP
>  Modules linked in: dummy_module(OE+) sg nfsv3 rpcsec_gss_krb5 nfsv4
> dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal intel_powerclamp
> coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul crc32c_intel
> ghash_clmulni_intel igb iTCO_wdt aesni_intel iTCO_vendor_support lrw gf128mul
> sb_edac ptp edac_core glue_helper lpc_ich ioatdma pcspkr ablk_helper pps_core
> i2c_i801 mfd_core cryptd dca shpchp ipmi_si wmi ipmi_msghandler acpi_cpufreq
> nfsd auth_rpcgss nfs_acl lockd grace sunrpc xfs libcrc32c sr_mod cdrom sd_mod
> mgag200 syscopyarea sysfillrect sysimgblt i2c_algo_bit drm_kms_helper isci ttm
> drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror
> dm_region_hash dm_log dm_mod
>  CPU: 27 PID: 3204 Comm: insmod Tainted: G   OE  3.17.0+ #19
>  Hardware name: Intel Corporation S2600CP/S2600CP, BIOS
> RMLSDP.86I.00.29.D696.131329 11/11/2013
>  task: 880034e75160 ti: 8807fc5ac000 task.ti: 8807fc5ac000
>  RIP: 0010:[]  [] 
> warn_slowpath_common+0xc1/0xd0
>  RSP: 0018:8807fc5afc68  EFLAGS: 00010246
>  RAX: 0021 RBX: 8807fc5afcb0 RCX: 
>  RDX:  RSI: 88081efee5f8 RDI: 88081efee5f8
>  RBP: 8807fc5afc98 R08: 0096 R09: 
>  R10: 0711 R11: 8807fc5af93e R12: a0424070
>  R13: 0019 R14: a0423068 R15: 0009
>  FS:  7f2d4b034740() GS:88081efe() knlGS:
>  CS:  0010 DS:  ES:  CR0: 80050033
>  CR2: 7f2d4a99f3c0 CR3: 0007fd88b000 CR4: 001407e0
>  Stack:
>   8807fc5afcb8 8199f020 88080e396160 
>   a0423040 a0425000 8807fc5afd08 81076be5
>   0008 a0424053 88070018 8807fc5afd18
>  Call Trace:
>   [] ? dummy_greetings+0x40/0x40 [dummy_module]
>   [] warn_slowpath_fmt+0x55/0x70
>   [] init_dummy+0x28/0x30 [dummy_module]
>   [] do_one_initcall+0xd4/0x210
>   [] ? __vunmap+0xc2/0x110
>   [] load_module+0x16a9/0x1b30
>   [] ? store_uevent+0x70/0x70
>   [] ? copy_module_from_fd.isra.44+0x129/0x180
>   [] SyS_finit_module+0xa6/0xd0
>   [] system_call_fastpath+0x12/0x17
>  Code: c4 08 5b 41 5c 41 5d 41 5e 41 5f 5d c3 48 c7 c7 20 42 8a 81 31 c0 e8 fc
> 80 5e 00 eb 80 48 c7 c7 78 42 8a 81 31 c0 e8 ec 80 5e 00 <0f> 0b 66 66 66 66 
> 2e
> 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55
>  RIP  [] warn_slowpath_common+0xc1/0xd0
>   RSP 
>  ---[ end trace 428218934a12088b ]---
>
> Successfully tested by me.
>
> Cc: Jonathan Corbet 
> Cc: Andrew Morton 
> Cc: Rusty Russell 
> Cc: "H. Peter Anvin" 
> Cc: Andi Kleen 
> Cc: Masami Hiramatsu 
> Cc: Fabian Frederick 
> Cc: vgo...@redhat.com
> Cc: isimatu.yasu...@jp.fujitsu.com
> Cc: linux-...@vger.kernel.org
> Cc: ke...@lists.infradead.org
> Cc: linux-...@vger.kernel.org
> Signed-off-by: Prarit Bhargava 
>
> [v2]: add /proc/sys/kernel/bug_on_warn, additional documentation, modify
>   !slowpath cases
> ---
>  Documentation/kdump/kdump.txt   |7 +++
>  Documentation/kernel-parameters.txt |3 +++
>  Documentation/sysctl/kernel.txt |   12 
>  include/asm-generic/bug.h   |   12 ++--
>  include/linux/kernel.h  |1 +
>  include/uapi/linux/sysctl.h |1 +
>  kernel/panic.c  |   21 -
>  kernel/sysctl.c |7 +++
>  kernel/sysctl_binary.c  |1 +
>  9 files changed, 62 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/kdump/kdump.txt b/Documentation/kdump/kdump.txt
> index 6c0b9f2..a04ed72 100644
> --- a/Documentation/kdump/kdump.txt
> +++ b/Documentation/kdump/kdump.txt
> @@ -471,6 +471,13 @@ format. Crash is available on Dave Anders