On Thu, 23 Feb 2006, Arjan van de Ven wrote:I think that to get to a better list we need to invite people to submit
their own profiles, and somehow add those all up and base the final list on
that. I'm willing to do that effort if this is ends up being the prefered
approach. Such an effort probably needs to be repeated like once a year or
so to adopt to the changing nature of the kernel.
I suspect we need architecture-specific profiles.
For example, on x86(-64), memcpy() is mostly inlined for the interesting cases. That's not always so. Other architectures will have things like the page copying and clearing as _the_ hottest functions. Same goes for architecture-specific things like context switching etc, that have different names on different architectures.
So putting the profile data in scripts/ doesn't sound very good.
That said, this certainly seems simple enough. I'd like to hear about actual performance improvements with it before I'd apply anything like this.
Also, since it's quite possible that being dense in the I$ is more of an issue than being dense in the TLB (especially since almost everybody has super-pages for kernel TLB entries and thus uses just a single entry - or maybe a couple - for the kernel), it would probably make sense to try to take calling patterns into account some way.