Re: [mm patch] oprofile: backtrace operation does not initialized

From: Greg Banks
Date: Wed Dec 08 2004 - 17:33:46 EST


On Wed, Dec 08, 2004 at 04:00:55PM +0000, John Levon wrote:
> On Wed, Dec 08, 2004 at 06:30:51PM +0900, Akinobu Mita wrote:
>
> > When I forced the oprofile to use timer interrupt with specifying
> > "timer=1" module parameter. "oprofile_operations->backtrace" did
> > not initialized on i386.
> >
> > Please apply this patch, or make oprofile initialize the backtrace
> > operation in case of using timer interrupt in your preferable way.
>
> I don't like this patch. The arches should just set the backtrace
> always, then try to init the hardware. oprofile_init() should then force
> the timer ops as needed.
>
> Greg?

Agreed, that's a cleaner approach. The attached patch (untested)
implements that. Akinobu-san, can you please test the patch?

Greg.
--
Greg Banks, R&D Software Engineer, SGI Australian Software Group.
I don't speak for SGI.
Allow stack tracing to work when sampling on timer is forced
using the timer=1 boot option. Reported by Akinobu Mita.

Signed-off-by: Greg Banks <gnb@xxxxxxxxxxxxxxxxx>
---
oprof.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)


Index: linux/drivers/oprofile/oprof.c
===================================================================
--- linux.orig/drivers/oprofile/oprof.c 2004-12-04 19:43:37.%N +1100
+++ linux/drivers/oprofile/oprof.c 2004-12-09 09:25:02.%N +1100
@@ -155,13 +155,11 @@ static int __init oprofile_init(void)
{
int err = 0;

- /* this is our fallback case */
- oprofile_timer_init(&oprofile_ops);
+ oprofile_arch_init(&oprofile_ops);

if (timer) {
printk(KERN_INFO "oprofile: using timer interrupt.\n");
- } else {
- oprofile_arch_init(&oprofile_ops);
+ oprofile_timer_init(&oprofile_ops);
}

err = oprofilefs_register();