Loading arch/mips/math-emu/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -9,3 +9,5 @@ obj-y := cp1emu.o ieee754m.o ieee754d.o ieee754dp.o ieee754sp.o ieee754.o \ sp_div.o sp_mul.o sp_sub.o sp_add.o sp_fdp.o sp_cmp.o sp_logb.o \ sp_scalb.o sp_simple.o sp_tint.o sp_fint.o sp_tlong.o sp_flong.o \ dp_sqrt.o sp_sqrt.o kernel_linkage.o dsemul.o obj-$(CONFIG_DEBUG_FS) += me-debugfs.o arch/mips/math-emu/cp1emu.c +1 −56 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ */ #include <linux/sched.h> #include <linux/debugfs.h> #include <linux/percpu-defs.h> #include <linux/perf_event.h> #include <asm/branch.h> Loading Loading @@ -66,12 +67,6 @@ static int fpux_emu(struct pt_regs *, struct mips_fpu_struct *, mips_instruction, void *__user *); #endif /* Further private data for which no space exists in mips_fpu_struct */ #ifdef CONFIG_DEBUG_FS DEFINE_PER_CPU(struct mips_fpu_emulator_stats, fpuemustats); #endif /* Control registers */ #define FPCREG_RID 0 /* $0 = revision id */ Loading Loading @@ -2158,53 +2153,3 @@ int fpu_emulator_cop1Handler(struct pt_regs *xcp, struct mips_fpu_struct *ctx, return sig; } #ifdef CONFIG_DEBUG_FS static int fpuemu_stat_get(void *data, u64 *val) { int cpu; unsigned long sum = 0; for_each_online_cpu(cpu) { struct mips_fpu_emulator_stats *ps; local_t *pv; ps = &per_cpu(fpuemustats, cpu); pv = (void *)ps + (unsigned long)data; sum += local_read(pv); } *val = sum; return 0; } DEFINE_SIMPLE_ATTRIBUTE(fops_fpuemu_stat, fpuemu_stat_get, NULL, "%llu\n"); extern struct dentry *mips_debugfs_dir; static int __init debugfs_fpuemu(void) { struct dentry *d, *dir; if (!mips_debugfs_dir) return -ENODEV; dir = debugfs_create_dir("fpuemustats", mips_debugfs_dir); if (!dir) return -ENOMEM; #define FPU_STAT_CREATE(M) \ do { \ d = debugfs_create_file(#M , S_IRUGO, dir, \ (void *)offsetof(struct mips_fpu_emulator_stats, M), \ &fops_fpuemu_stat); \ if (!d) \ return -ENOMEM; \ } while (0) FPU_STAT_CREATE(emulated); FPU_STAT_CREATE(loads); FPU_STAT_CREATE(stores); FPU_STAT_CREATE(cp1ops); FPU_STAT_CREATE(cp1xops); FPU_STAT_CREATE(errors); return 0; } __initcall(debugfs_fpuemu); #endif arch/mips/math-emu/me-debugfs.c 0 → 100644 +59 −0 Original line number Diff line number Diff line #include <linux/cpumask.h> #include <linux/debugfs.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/percpu.h> #include <linux/types.h> #include <asm/fpu_emulator.h> #include <asm/local.h> DEFINE_PER_CPU(struct mips_fpu_emulator_stats, fpuemustats); static int fpuemu_stat_get(void *data, u64 *val) { int cpu; unsigned long sum = 0; for_each_online_cpu(cpu) { struct mips_fpu_emulator_stats *ps; local_t *pv; ps = &per_cpu(fpuemustats, cpu); pv = (void *)ps + (unsigned long)data; sum += local_read(pv); } *val = sum; return 0; } DEFINE_SIMPLE_ATTRIBUTE(fops_fpuemu_stat, fpuemu_stat_get, NULL, "%llu\n"); extern struct dentry *mips_debugfs_dir; static int __init debugfs_fpuemu(void) { struct dentry *d, *dir; if (!mips_debugfs_dir) return -ENODEV; dir = debugfs_create_dir("fpuemustats", mips_debugfs_dir); if (!dir) return -ENOMEM; #define FPU_STAT_CREATE(M) \ do { \ d = debugfs_create_file(#M , S_IRUGO, dir, \ (void *)offsetof(struct mips_fpu_emulator_stats, M), \ &fops_fpuemu_stat); \ if (!d) \ return -ENOMEM; \ } while (0) FPU_STAT_CREATE(emulated); FPU_STAT_CREATE(loads); FPU_STAT_CREATE(stores); FPU_STAT_CREATE(cp1ops); FPU_STAT_CREATE(cp1xops); FPU_STAT_CREATE(errors); return 0; } __initcall(debugfs_fpuemu); Loading
arch/mips/math-emu/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -9,3 +9,5 @@ obj-y := cp1emu.o ieee754m.o ieee754d.o ieee754dp.o ieee754sp.o ieee754.o \ sp_div.o sp_mul.o sp_sub.o sp_add.o sp_fdp.o sp_cmp.o sp_logb.o \ sp_scalb.o sp_simple.o sp_tint.o sp_fint.o sp_tlong.o sp_flong.o \ dp_sqrt.o sp_sqrt.o kernel_linkage.o dsemul.o obj-$(CONFIG_DEBUG_FS) += me-debugfs.o
arch/mips/math-emu/cp1emu.c +1 −56 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ */ #include <linux/sched.h> #include <linux/debugfs.h> #include <linux/percpu-defs.h> #include <linux/perf_event.h> #include <asm/branch.h> Loading Loading @@ -66,12 +67,6 @@ static int fpux_emu(struct pt_regs *, struct mips_fpu_struct *, mips_instruction, void *__user *); #endif /* Further private data for which no space exists in mips_fpu_struct */ #ifdef CONFIG_DEBUG_FS DEFINE_PER_CPU(struct mips_fpu_emulator_stats, fpuemustats); #endif /* Control registers */ #define FPCREG_RID 0 /* $0 = revision id */ Loading Loading @@ -2158,53 +2153,3 @@ int fpu_emulator_cop1Handler(struct pt_regs *xcp, struct mips_fpu_struct *ctx, return sig; } #ifdef CONFIG_DEBUG_FS static int fpuemu_stat_get(void *data, u64 *val) { int cpu; unsigned long sum = 0; for_each_online_cpu(cpu) { struct mips_fpu_emulator_stats *ps; local_t *pv; ps = &per_cpu(fpuemustats, cpu); pv = (void *)ps + (unsigned long)data; sum += local_read(pv); } *val = sum; return 0; } DEFINE_SIMPLE_ATTRIBUTE(fops_fpuemu_stat, fpuemu_stat_get, NULL, "%llu\n"); extern struct dentry *mips_debugfs_dir; static int __init debugfs_fpuemu(void) { struct dentry *d, *dir; if (!mips_debugfs_dir) return -ENODEV; dir = debugfs_create_dir("fpuemustats", mips_debugfs_dir); if (!dir) return -ENOMEM; #define FPU_STAT_CREATE(M) \ do { \ d = debugfs_create_file(#M , S_IRUGO, dir, \ (void *)offsetof(struct mips_fpu_emulator_stats, M), \ &fops_fpuemu_stat); \ if (!d) \ return -ENOMEM; \ } while (0) FPU_STAT_CREATE(emulated); FPU_STAT_CREATE(loads); FPU_STAT_CREATE(stores); FPU_STAT_CREATE(cp1ops); FPU_STAT_CREATE(cp1xops); FPU_STAT_CREATE(errors); return 0; } __initcall(debugfs_fpuemu); #endif
arch/mips/math-emu/me-debugfs.c 0 → 100644 +59 −0 Original line number Diff line number Diff line #include <linux/cpumask.h> #include <linux/debugfs.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/percpu.h> #include <linux/types.h> #include <asm/fpu_emulator.h> #include <asm/local.h> DEFINE_PER_CPU(struct mips_fpu_emulator_stats, fpuemustats); static int fpuemu_stat_get(void *data, u64 *val) { int cpu; unsigned long sum = 0; for_each_online_cpu(cpu) { struct mips_fpu_emulator_stats *ps; local_t *pv; ps = &per_cpu(fpuemustats, cpu); pv = (void *)ps + (unsigned long)data; sum += local_read(pv); } *val = sum; return 0; } DEFINE_SIMPLE_ATTRIBUTE(fops_fpuemu_stat, fpuemu_stat_get, NULL, "%llu\n"); extern struct dentry *mips_debugfs_dir; static int __init debugfs_fpuemu(void) { struct dentry *d, *dir; if (!mips_debugfs_dir) return -ENODEV; dir = debugfs_create_dir("fpuemustats", mips_debugfs_dir); if (!dir) return -ENOMEM; #define FPU_STAT_CREATE(M) \ do { \ d = debugfs_create_file(#M , S_IRUGO, dir, \ (void *)offsetof(struct mips_fpu_emulator_stats, M), \ &fops_fpuemu_stat); \ if (!d) \ return -ENOMEM; \ } while (0) FPU_STAT_CREATE(emulated); FPU_STAT_CREATE(loads); FPU_STAT_CREATE(stores); FPU_STAT_CREATE(cp1ops); FPU_STAT_CREATE(cp1xops); FPU_STAT_CREATE(errors); return 0; } __initcall(debugfs_fpuemu);