]> git.baikalelectronics.ru Git - kernel.git/commit
security: optimize avc_audit() common path
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 23 Mar 2012 00:01:41 +0000 (17:01 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 23 Mar 2012 00:01:41 +0000 (17:01 -0700)
commit4dbb5ddb3c858854787035607ed4f89b3b4f77d1
tree7f690fe147bccc24b7a017845dbe9a99d7978b5f
parent67c826d484c4c336bcefe583ee412bd3380c47e4
security: optimize avc_audit() common path

avc_audit() did a lot of jumping around and had a big stack frame, all
for the uncommon case.

Split up the uncommon case (which we really can't make go fast anyway)
into its own slow function, and mark the conditional branches
appropriately for the common likely case.

This causes avc_audit() to no longer show up as one of the hottest
functions on the branch profiles (the new "perf -b" thing), and makes
the cycle profiles look really nice and dense too.

The whole audit path is still annoyingly very much one of the biggest
costs of name lookup, so these things are worth optimizing for.  I wish
we could just tell people to turn it off, but realistically we do need
it: we just need to make sure that the overhead of the necessary evil is
as low as possible.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
security/selinux/avc.c