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