parisc: show number of FPE and unaligned access handler calls in /proc/interrupts
Helge Deller
maintainerPATCH 1/1 parisc: show number of FPE and unaligned access handler calls in /proc/interrupts
Show number of floating point assistant and unaligned access fixup handler in /proc/interrupts file.
Signed-off-by Helge Deller <[email protected]>
arch/parisc/include/asm/hardirq.h +2 -0
@@ -28,6 +28,8 @@ typedef struct {unsigned int irq_resched_count;unsigned int irq_call_count;#endif +unsigned int irq_unaligned_count; +unsigned int irq_fpassist_count;unsigned int irq_tlb_count; }____cacheline_aligned irq_cpustat_t;
arch/parisc/kernel/irq.c +8 -0
@@ -188,6 +188,14 @@ int arch_show_interrupts(struct seq_file *p, int prec)seq_printf (p,"%10u " ,irq_stats (j)->irq_call_count);seq_puts (p," Function call interrupts\n" );#endif +seq_printf (p,"%*s: " , prec,"UAH" ); +for_each_online_cpu (j) +seq_printf (p,"%10u " ,irq_stats (j)->irq_unaligned_count); +seq_puts (p," Unaligned access handler traps\n" ); +seq_printf (p,"%*s: " , prec,"FPA" ); +for_each_online_cpu (j) +seq_printf (p,"%10u " ,irq_stats (j)->irq_fpassist_count); +seq_puts (p," Floating point assist traps\n" );seq_printf (p,"%*s: " , prec,"TLB" );for_each_online_cpu (j)seq_printf (p,"%10u " ,irq_stats (j)->irq_tlb_count);
arch/parisc/kernel/traps.c +1 -0
@@ -646,6 +646,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)case 14 :/* Assist Exception Trap, i.e. floating point exception. */ die_if_kernel ("Floating point exception" , regs,0 );/* quiet */ +__inc_irq_stat (irq_fpassist_count);handle_fpe (regs);return ;
arch/parisc/kernel/unaligned.c +3 -0
@@ -27,6 +27,7 @@#include <linux/signal.h> #include <linux/ratelimit.h> #include <asm/uaccess.h> +#include <asm/hardirq.h> /* #define DEBUG_UNALIGNED 1 */
@@ -454,6 +455,8 @@ void handle_unaligned(struct pt_regs *regs)struct siginfo si; registerint flop=0 ;/* true if this is a flop */ +__inc_irq_stat (irq_unaligned_count); +/* log a message with pacing */ if (user_mode (regs)) {if (current->thread.flags &PARISC_UAC_SIGBUS ) {