Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.16-rc3 74 lines 1.9 kB view raw
1/** 2 * @file oprofile_stats.c 3 * 4 * @remark Copyright 2002 OProfile authors 5 * @remark Read the file COPYING 6 * 7 * @author John Levon 8 */ 9 10#include <linux/oprofile.h> 11#include <linux/smp.h> 12#include <linux/cpumask.h> 13#include <linux/threads.h> 14 15#include "oprofile_stats.h" 16#include "cpu_buffer.h" 17 18struct oprofile_stat_struct oprofile_stats; 19 20void oprofile_reset_stats(void) 21{ 22 struct oprofile_cpu_buffer * cpu_buf; 23 int i; 24 25 for_each_cpu(i) { 26 cpu_buf = &cpu_buffer[i]; 27 cpu_buf->sample_received = 0; 28 cpu_buf->sample_lost_overflow = 0; 29 } 30 31 atomic_set(&oprofile_stats.sample_lost_no_mm, 0); 32 atomic_set(&oprofile_stats.sample_lost_no_mapping, 0); 33 atomic_set(&oprofile_stats.event_lost_overflow, 0); 34} 35 36 37void oprofile_create_stats_files(struct super_block * sb, struct dentry * root) 38{ 39 struct oprofile_cpu_buffer * cpu_buf; 40 struct dentry * cpudir; 41 struct dentry * dir; 42 char buf[10]; 43 int i; 44 45 dir = oprofilefs_mkdir(sb, root, "stats"); 46 if (!dir) 47 return; 48 49 for_each_cpu(i) { 50 cpu_buf = &cpu_buffer[i]; 51 snprintf(buf, 10, "cpu%d", i); 52 cpudir = oprofilefs_mkdir(sb, dir, buf); 53 54 /* Strictly speaking access to these ulongs is racy, 55 * but we can't simply lock them, and they are 56 * informational only. 57 */ 58 oprofilefs_create_ro_ulong(sb, cpudir, "sample_received", 59 &cpu_buf->sample_received); 60 oprofilefs_create_ro_ulong(sb, cpudir, "sample_lost_overflow", 61 &cpu_buf->sample_lost_overflow); 62 oprofilefs_create_ro_ulong(sb, cpudir, "backtrace_aborted", 63 &cpu_buf->backtrace_aborted); 64 } 65 66 oprofilefs_create_ro_atomic(sb, dir, "sample_lost_no_mm", 67 &oprofile_stats.sample_lost_no_mm); 68 oprofilefs_create_ro_atomic(sb, dir, "sample_lost_no_mapping", 69 &oprofile_stats.sample_lost_no_mapping); 70 oprofilefs_create_ro_atomic(sb, dir, "event_lost_overflow", 71 &oprofile_stats.event_lost_overflow); 72 oprofilefs_create_ro_atomic(sb, dir, "bt_lost_no_mapping", 73 &oprofile_stats.bt_lost_no_mapping); 74}