/** * @file cpu_buffer.h * * @remark Copyright 2002-2009 OProfile authors * @remark Read the file COPYING * * @author John Levon <levon@movementarian.org> * @author Robert Richter <robert.richter@amd.com> */ #ifndef OPROFILE_CPU_BUFFER_H #define OPROFILE_CPU_BUFFER_H #include <linux/types.h> #include <linux/spinlock.h> #include <linux/workqueue.h> #include <linux/cache.h> #include <linux/sched.h> #include <linux/ring_buffer.h> struct task_struct; int alloc_cpu_buffers(void); void free_cpu_buffers(void); void start_cpu_work(void); void end_cpu_work(void); void flush_cpu_work(void); /* CPU buffer is composed of such entries (which are * also used for context switch notes) */ struct op_sample { unsigned long eip; unsigned long event; unsigned long data[0]; }; struct op_entry; struct oprofile_cpu_buffer { unsigned long buffer_size; struct task_struct *last_task; int last_is_kernel; int tracing; unsigned long sample_received; unsigned long sample_lost_overflow; unsigned long backtrace_aborted; unsigned long sample_invalid_eip; int cpu; struct delayed_work work; }; DECLARE_PER_CPU(struct oprofile_cpu_buffer, op_cpu_buffer); /* * Resets the cpu buffer to a sane state. * * reset these to invalid values; the next sample collected will * populate the buffer with proper values to initialize the buffer */
static inline void op_cpu_buffer_reset(int cpu) { struct oprofile_cpu_buffer *cpu_buf = &per_cpu(op_cpu_buffer, cpu); cpu_buf->last_is_kernel = -1; cpu_buf->last_task = NULL; }Contributors
Person | Tokens | Prop | Commits | CommitProp | |
robert richter | robert richter | 29 | 80.56% | 2 | 50.00% |
john levon | john levon | 6 | 16.67% | 1 | 25.00% |
tejun heo | tejun heo | 1 | 2.78% | 1 | 25.00% |
Total | 36 | 100.00% | 4 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
robert richter | robert richter | 48 | 100.00% | 1 | 100.00% |
Total | 48 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
robert richter | robert richter | 17 | 100.00% | 1 | 100.00% |
Total | 17 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
robert richter | robert richter | 53 | 100.00% | 1 | 100.00% |
Total | 53 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
robert richter | robert richter | 225 | 62.85% | 14 | 53.85% |
john levon | john levon | 97 | 27.09% | 5 | 19.23% |
greg banks | greg banks | 11 | 3.07% | 1 | 3.85% |
mike travis | mike travis | 9 | 2.51% | 1 | 3.85% |
tejun heo | tejun heo | 8 | 2.23% | 2 | 7.69% |
philippe elie | philippe elie | 4 | 1.12% | 1 | 3.85% |
anton blanchard | anton blanchard | 3 | 0.84% | 1 | 3.85% |
david howells | david howells | 1 | 0.28% | 1 | 3.85% |
Total | 358 | 100.00% | 26 | 100.00% |