Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile: (21 commits) OProfile: Fix buffer synchronization for IBS oprofile: hotplug cpu fix oprofile: fixing whitespaces in arch/x86/oprofile/* oprofile: fixing whitespaces in arch/x86/oprofile/* oprofile: fixing whitespaces in drivers/oprofile/* x86/oprofile: add the logic for enabling additional IBS bits x86/oprofile: reordering functions in nmi_int.c x86/oprofile: removing unused function parameter in add_ibs_begin() oprofile: more whitespace fixes oprofile: whitespace fixes OProfile: Rename IBS sysfs dir into "ibs_op" OProfile: Rework string handling in setup_ibs_files() OProfile: Rework oprofile_add_ibs_sample() function oprofile: discover counters for op ppro too oprofile: Implement Intel architectural perfmon support oprofile: Don't report Nehalem as core_2 oprofile: drop const in num counters field Revert "Oprofile Multiplexing Patch" x86, oprofile: BUG: using smp_processor_id() in preemptible code x86/oprofile: fix on_each_cpu build error ... Manually fixed trivial conflicts in drivers/oprofile/{cpu_buffer.c,event_buffer.h}
This commit is contained in:
@@ -41,7 +41,6 @@ static cpumask_t marked_cpus = CPU_MASK_NONE;
|
||||
static DEFINE_SPINLOCK(task_mortuary);
|
||||
static void process_task_mortuary(void);
|
||||
|
||||
|
||||
/* Take ownership of the task struct and place it on the
|
||||
* list for processing. Only after two full buffer syncs
|
||||
* does the task eventually get freed, because by then
|
||||
@@ -341,7 +340,7 @@ static void add_trace_begin(void)
|
||||
* Add IBS fetch and op entries to event buffer
|
||||
*/
|
||||
static void add_ibs_begin(struct oprofile_cpu_buffer *cpu_buf, int code,
|
||||
int in_kernel, struct mm_struct *mm)
|
||||
struct mm_struct *mm)
|
||||
{
|
||||
unsigned long rip;
|
||||
int i, count;
|
||||
@@ -565,9 +564,11 @@ void sync_buffer(int cpu)
|
||||
struct task_struct *new;
|
||||
unsigned long cookie = 0;
|
||||
int in_kernel = 1;
|
||||
unsigned int i;
|
||||
sync_buffer_state state = sb_buffer_start;
|
||||
#ifndef CONFIG_OPROFILE_IBS
|
||||
unsigned int i;
|
||||
unsigned long available;
|
||||
#endif
|
||||
|
||||
mutex_lock(&buffer_mutex);
|
||||
|
||||
@@ -575,9 +576,13 @@ void sync_buffer(int cpu)
|
||||
|
||||
/* Remember, only we can modify tail_pos */
|
||||
|
||||
#ifndef CONFIG_OPROFILE_IBS
|
||||
available = get_slots(cpu_buf);
|
||||
|
||||
for (i = 0; i < available; ++i) {
|
||||
#else
|
||||
while (get_slots(cpu_buf)) {
|
||||
#endif
|
||||
struct op_sample *s = &cpu_buf->buffer[cpu_buf->tail_pos];
|
||||
|
||||
if (is_code(s->eip)) {
|
||||
@@ -593,12 +598,10 @@ void sync_buffer(int cpu)
|
||||
#ifdef CONFIG_OPROFILE_IBS
|
||||
} else if (s->event == IBS_FETCH_BEGIN) {
|
||||
state = sb_bt_start;
|
||||
add_ibs_begin(cpu_buf,
|
||||
IBS_FETCH_CODE, in_kernel, mm);
|
||||
add_ibs_begin(cpu_buf, IBS_FETCH_CODE, mm);
|
||||
} else if (s->event == IBS_OP_BEGIN) {
|
||||
state = sb_bt_start;
|
||||
add_ibs_begin(cpu_buf,
|
||||
IBS_OP_CODE, in_kernel, mm);
|
||||
add_ibs_begin(cpu_buf, IBS_OP_CODE, mm);
|
||||
#endif
|
||||
} else {
|
||||
struct mm_struct *oldmm = mm;
|
||||
|
Reference in New Issue
Block a user