Browse Source

MIPS: Add FPU emulator counter for emulated delay slots.

Delay slot emulation in the FPU emulator is the only kernel user of an
executable stack, it is also very slow.  Add a counter so we can see
how many of these emulations are done.

Signed-off-by: David Daney <david.daney@cavium.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/8634/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
David Daney 10 years ago
parent
commit
2707cd293c

+ 1 - 0
arch/mips/include/asm/fpu_emulator.h

@@ -44,6 +44,7 @@ struct mips_fpu_emulator_stats {
 	unsigned long ieee754_overflow;
 	unsigned long ieee754_overflow;
 	unsigned long ieee754_zerodiv;
 	unsigned long ieee754_zerodiv;
 	unsigned long ieee754_invalidop;
 	unsigned long ieee754_invalidop;
+	unsigned long ds_emul;
 };
 };
 
 
 DECLARE_PER_CPU(struct mips_fpu_emulator_stats, fpuemustats);
 DECLARE_PER_CPU(struct mips_fpu_emulator_stats, fpuemustats);

+ 1 - 1
arch/mips/math-emu/dsemul.c

@@ -158,6 +158,6 @@ int do_dsemulret(struct pt_regs *xcp)
 
 
 	/* Set EPC to return to post-branch instruction */
 	/* Set EPC to return to post-branch instruction */
 	xcp->cp0_epc = epc;
 	xcp->cp0_epc = epc;
-
+	MIPS_FPU_EMU_INC_STATS(ds_emul);
 	return 1;
 	return 1;
 }
 }

+ 1 - 0
arch/mips/math-emu/me-debugfs.c

@@ -61,6 +61,7 @@ do {									\
 	FPU_STAT_CREATE(ieee754_overflow);
 	FPU_STAT_CREATE(ieee754_overflow);
 	FPU_STAT_CREATE(ieee754_zerodiv);
 	FPU_STAT_CREATE(ieee754_zerodiv);
 	FPU_STAT_CREATE(ieee754_invalidop);
 	FPU_STAT_CREATE(ieee754_invalidop);
+	FPU_STAT_CREATE(ds_emul);
 
 
 	return 0;
 	return 0;
 }
 }