linux-mips
[Top] [All Lists]

Re: [Perfctr-devel] 2.6.19-rc6-git10 new perfmon code base + libpfm + pf

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: [Perfctr-devel] 2.6.19-rc6-git10 new perfmon code base + libpfm + pfmon
From: "Philip J. Mucci" <mucci@cs.utk.edu>
Date: Tue, 28 Nov 2006 20:05:02 +0100
Cc: eranian@hpl.hp.com, perfmon@napali.hpl.hp.com, linux-mips@linux-mips.org
In-reply-to: <20061128182049.GA19304@linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20061127143705.GC24980@frankl.hpl.hp.com> <1164725427.2316.109.camel@localhost.localdomain> <20061128182049.GA19304@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
Hi Ralf,

Forgive me, I thought Stefane had posted the announcement of the new
perfmon kernel substrate on Linux/MIPS list. I see now that he did not,
so it's likely that the below patch has little meaning to you folks. I
do know however, that there are some broadcom folks tracking this work.

This is not meant to be a patch for the Linux/MIPS tree, but rather the
perfmon2 patch when applied to Linus' latest GIT tree. This hack (marked
as such) gets around a NULL pointer dereference upon boot. I make no
claims other than that it lets the MIPS folks play with the perfmon2
implementation.

Phil

On Tue, 2006-11-28 at 18:20 +0000, Ralf Baechle wrote:
> On Tue, Nov 28, 2006 at 03:50:27PM +0100, Philip J. Mucci wrote:
> 
> > Linux-MIPS users will need the following patch to add the 'cpu'
> > directories to sysfs.
> 
> This patch is to some file which doesn't even exist in standard
> kernels.  Nor should it be done in the perfmon code if it did exist in
> the stock kernel.
> 
> > Index: perfmon/perfmon_sysfs.c
> > ===================================================================
> > --- perfmon/perfmon_sysfs.c (.../perfmon2-post-sf-pre-fixup)        
> > (revision 27882)
> > +++ perfmon/perfmon_sysfs.c (.../perfmon2-post-sf-post-fixup)       
> > (revision 27882)
> > @@ -79,6 +79,10 @@
> >  
> >  static struct kobject pfm_kernel_kobj, pfm_kernel_fmt_kobj;
> >  
> > +/* Remove this after mips get topology.c files */
> 
> Why should there be one?  I guess you were looking for topology_init
> which exists since Febuary 20 / linux-2.6.16-rc5 and does register all
> CPUs.
> 
> > +struct cpu sysfs_cpus[NR_CPUS];
> > +
> >  static void pfm_reset_stats(int cpu)
> >  {
> >     struct pfm_stats *st;
> > @@ -400,6 +404,19 @@
> >     int done_kobj_fmt = 0, done_kobj_kernel = 0;
> >     int i, cpu = -1;
> >     
> > +   /* This is a hack to be removed */
> > +
> > +        for_each_present_cpu(i) {
> > +          ret = register_cpu(&sysfs_cpus[i],i,NULL);
> > +          if (ret)
> > +            {
> > +              PFM_INFO("cannot register cpu %d: %d\n",i,ret);
> > +              goto error;
> > +            }
> > +        }
> > +
> > +   /* End hack */
> 
> Formatting style, see Documentation/CodingStyle.
> 
>   Ralf


<Prev in Thread] Current Thread [Next in Thread>