Loading arch/parisc/include/asm/hardirq.h +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading arch/parisc/kernel/irq.c +8 −0 Original line number Diff line number Diff line Loading @@ -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); Loading arch/parisc/kernel/traps.c +1 −0 Original line number Diff line number Diff line Loading @@ -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; Loading arch/parisc/kernel/unaligned.c +3 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <linux/signal.h> #include <linux/ratelimit.h> #include <asm/uaccess.h> #include <asm/hardirq.h> /* #define DEBUG_UNALIGNED 1 */ Loading Loading @@ -454,6 +455,8 @@ void handle_unaligned(struct pt_regs *regs) struct siginfo si; register int 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) { Loading Loading
arch/parisc/include/asm/hardirq.h +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
arch/parisc/kernel/irq.c +8 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
arch/parisc/kernel/traps.c +1 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
arch/parisc/kernel/unaligned.c +3 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <linux/signal.h> #include <linux/ratelimit.h> #include <asm/uaccess.h> #include <asm/hardirq.h> /* #define DEBUG_UNALIGNED 1 */ Loading Loading @@ -454,6 +455,8 @@ void handle_unaligned(struct pt_regs *regs) struct siginfo si; register int 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) { Loading