• Mike Travis's avatar
    x86/UV: Add call to KGDB/KDB from NMI handler · e379ea82
    Mike Travis authored
    This patch restores the capability to enter KDB (and KGDB) from
    the UV NMI handler.  This is needed because the UV system
    console is not capable of sending the 'break' signal to the
    serial console port.  It is also useful when the kernel is hung
    in such a way that it isn't responding to normal external I/O,
    so sending 'g' to sysreq-trigger does not work either.
    
    Another benefit of the external NMI command is that all the cpus
    receive the NMI signal at roughly the same time so they are more
    closely aligned timewise.
    
    It utilizes the newly added kgdb_nmicallin function to gain
    entry to KGDB/KDB by the master.  The slaves still enter via the
    standard kgdb_nmicallback function.  It also uses the new
    'send_ready' pointer to tell KGDB/KDB to signal the slaves when
    to proceed into the KGDB slave loop.
    
    It is enabled when the nmi action is set to "kdb" and the kernel
    is built with CONFIG_KDB enabled.  Note that if kgdb is
    connected that interface will be used instead.
    Signed-off-by: default avatarMike Travis <travis@sgi.com>
    Reviewed-by: default avatarDimitri Sivanich <sivanich@sgi.com>
    Reviewed-by: default avatarHedi Berriche <hedi@sgi.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
    Cc: Jason Wessel <jason.wessel@windriver.com>
    Link: http://lkml.kernel.org/r/20131002151418.089692683@asylum.americas.sgi.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    e379ea82
uv_nmi.c 18.1 KB