tile: support delivering NMIs for multicore backtrace
A new hypervisor service was added some time ago (MDE 4.2.1 or later, or MDE 4.3 or later) that allows cores to request NMIs to be delivered to other cores. Use this facility to deliver a request that causes a backtrace to be generated on each core, and hook it into the magic SysRq functionality. Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com>
This commit is contained in:
@@ -78,4 +78,9 @@ void tile_irq_activate(unsigned int irq, int tile_irq_type);
|
||||
|
||||
void setup_irq_regs(void);
|
||||
|
||||
#ifdef __tilegx__
|
||||
void arch_trigger_all_cpu_backtrace(bool self);
|
||||
#define arch_trigger_all_cpu_backtrace arch_trigger_all_cpu_backtrace
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_TILE_IRQ_H */
|
||||
|
@@ -52,6 +52,14 @@ void do_timer_interrupt(struct pt_regs *, int fault_num);
|
||||
/* kernel/messaging.c */
|
||||
void hv_message_intr(struct pt_regs *, int intnum);
|
||||
|
||||
#define TILE_NMI_DUMP_STACK 1 /* Dump stack for sysrq+'l' */
|
||||
|
||||
/* kernel/process.c */
|
||||
void do_nmi_dump_stack(struct pt_regs *regs);
|
||||
|
||||
/* kernel/traps.c */
|
||||
void do_nmi(struct pt_regs *, int fault_num, unsigned long reason);
|
||||
|
||||
/* kernel/irq.c */
|
||||
void tile_dev_intr(struct pt_regs *, int intnum);
|
||||
|
||||
|
Reference in New Issue
Block a user