Re: Patch to reorder functions in the vmlinux to a defined order

From: Arjan van de Ven
Date: Thu Feb 23 2006 - 12:59:59 EST


Linus Torvalds wrote:

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.

ok fair enough; that's easy to fix.


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.

the results were sort of inconclusive (eg some wins, but some losses, but mostly in the noise) in the "large" run done by the perf guys, so I'm hoping to get another slot in testing soonish.


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.

or keep the existing order for a "hot set", but move all the cold ones out. That way it'll at least not be worse than today
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/