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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux