lkml.org 
[lkml]   [2008]   [May]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: oprofile BUG() in current kernel.
From
Date
On Tue, 2008-05-13 at 01:40 -0700, Andrew Morton wrote:
> In trying to reprocude this on a uniprocessor machine, it seems that
> someone broke oprofile:
>
> /usr/bin/opcontrol: line 911: /dev/oprofile/0/enabled: No such file or directory
> /usr/bin/opcontrol: line 911: /dev/oprofile/0/event: No such file or directory
> /usr/bin/opcontrol: line 911: /dev/oprofile/0/count: No such file or directory
> /usr/bin/opcontrol: line 911: /dev/oprofile/0/kernel: No such file or directory
> /usr/bin/opcontrol: line 911: /dev/oprofile/0/user: No such file or directory
> /usr/bin/opcontrol: line 911: /dev/oprofile/0/unit_mask: No such file or directo
>
> sony:/home/akpm> l /dev/oprofile
> total 0
> drwxr-xr-x 1 root root 0 May 13 01:25 1
> -rw-r--r-- 1 root root 0 May 13 01:25 backtrace_depth
> -rw-r--r-- 1 root root 0 May 13 01:25 buffer
> -rw-r--r-- 1 root root 0 May 13 01:25 buffer_size
> -rw-r--r-- 1 root root 0 May 13 01:25 buffer_watershed
> -rw-r--r-- 1 root root 0 May 13 01:25 cpu_buffer_size
> -rw-r--r-- 1 root root 0 May 13 01:25 cpu_type
> -rw-rw-rw- 1 root root 0 May 13 01:25 dump
> -rw-r--r-- 1 root root 0 May 13 01:25 enable
> -rw-r--r-- 1 root root 0 May 13 01:25 pointer_size
> drwxr-xr-x 1 root root 0 May 13 01:25 stats
>
> Looks like the "0" got renamed to "1". Who did that?
>
>
>
> So then I try it on the old 2-way:
>
> No event named GLOBAL_POWER_EVENTS is available.
> No event named GLOBAL_POWER_EVENTS is available.
> No event named GLOBAL_POWER_EVENTS is available.
> No event named GLOBAL_POWER_EVENTS is available.
> No event named GLOBAL_POWER_EVENTS is available.
>
> so that got broken too.

I didn't try sampling those events, but CPU_CLK_UNHALTED (or whatever
default is now) seems to work fine on my 2-way... (when percpu patch is
reverted)

> I queued the revert of 608dfddd845da5ab6accef70154c8910529699f7,
> although that doesn't fix these regressions.
>
> I see no oops. And I don't see what's wrong with the fairly simple
> per-cpu conversion, so I'd rather not revert what appears to be a good
> patch when we don't understand what's going wrong.
>
>
> Grasping at straws, we have had problems with per-cpu variable
> initialisation in the past. Does this
>
> --- a/drivers/oprofile/cpu_buffer.c~a
> +++ a/drivers/oprofile/cpu_buffer.c
> @@ -27,7 +27,7 @@
> #include "buffer_sync.h"
> #include "oprof.h"
>
> -DEFINE_PER_CPU_SHARED_ALIGNED(struct oprofile_cpu_buffer, cpu_buffer);
> +DEFINE_PER_CPU_SHARED_ALIGNED(struct oprofile_cpu_buffer, cpu_buffer) = { };
>
> static void wq_sync_buffer(struct work_struct *work);

Nope, exact same bad paging request in kernel mode... probably the bug
is something deep in oprofile then?



\
 
 \ /
  Last update: 2008-05-13 11:45    [W:0.090 / U:0.140 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site