lkml.org 
[lkml]   [2014]   [May]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/6] x86, nmi: Add boot line option 'panic_on_unrecovered_nmi' and 'panic_on_io_nmi'
    Date
    These options are accessable through /proc/sys/kernel but not on the command
    line. The main use is for on board controllers (iLO, DRAC, BMC) to be able
    to issue an external NMI to bring down a hung box.

    This just makes configuring a box a little easier.

    Signed-off-by: Don Zickus <dzickus@redhat.com>
    ---
    Documentation/kernel-parameters.txt | 9 +++++++++
    arch/x86/kernel/nmi.c | 14 ++++++++++++++
    2 files changed, 23 insertions(+), 0 deletions(-)

    diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
    index b6c67d5..a4056b5 100644
    --- a/Documentation/kernel-parameters.txt
    +++ b/Documentation/kernel-parameters.txt
    @@ -2339,6 +2339,15 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
    timeout < 0: reboot immediately
    Format: <timeout>

    + panic_on_unrecovered_nmi [X86]
    + Force a machine to panic if an unrecoverable NMI is
    + unclaimed. This covers SERR or UNKONWN NMI cases.
    +
    + panic_on_io_nmi [X86]
    + Force a machine to panic if an IO NMI is unclaimed.
    + This covers external NMIs with no handlers associated
    + with them.
    +
    parkbd.port= [HW] Parallel port number the keyboard adapter is
    connected to, default is 0.
    Format: <parport#>
    diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
    index b7c6f6b..0467f42 100644
    --- a/arch/x86/kernel/nmi.c
    +++ b/arch/x86/kernel/nmi.c
    @@ -87,6 +87,20 @@ static int __init setup_unknown_nmi_panic(char *str)
    }
    __setup("unknown_nmi_panic", setup_unknown_nmi_panic);

    +static int __init setup_panic_on_unrecovered_nmi(char *str)
    +{
    + panic_on_unrecovered_nmi = 1;
    + return 1;
    +}
    +__setup("panic_on_unrecovered_nmi", setup_panic_on_unrecovered_nmi);
    +
    +static int __init setup_panic_on_io_nmi(char *str)
    +{
    + panic_on_io_nmi = 1;
    + return 1;
    +}
    +__setup("panic_on_io_nmi", setup_panic_on_io_nmi);
    +
    #define nmi_to_desc(type) (&nmi_desc[type])

    static u64 nmi_longest_ns = 1 * NSEC_PER_MSEC;
    --
    1.7.1


    \
     
     \ /
      Last update: 2014-05-15 22:01    [W:4.994 / U:0.192 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site