modules: Take a shortcut for checking if an address is in a module
authorRusty Russell <rusty@rustcorp.com.au>
Wed, 23 Jul 2008 00:24:28 +0000 (19:24 -0500)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 22 Jul 2008 09:24:28 +0000 (19:24 +1000)
commit3a642e99babe0617febb6f402e1e063479f489db
tree09f7d6c7b0a4e3869d11c739113e5dd5a8ff5a2c
parent2f0f2a334bc38b61a9afca951185cd3844ee709d
modules: Take a shortcut for checking if an address is in a module

This patch keeps track of the boundaries of module allocation, in
order to speed up module_text_address().

Inspired by Arjan's version, which required arch-specific defines:

Various pieces of the kernel (lockdep, latencytop, etc) tend
to store backtraces, sometimes at a relatively high
frequency. In itself this isn't a big performance deal (after
all you're using diagnostics features), but there have been
some complaints from people who have over 100 modules loaded
that this is a tad too slow.

This is due to the new backtracer code which looks at every
slot on the stack to see if it's a kernel/module text address,
so that's 1024 slots.  1024 times 100 modules... that's a lot
of list walking.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
kernel/module.c