• Linus Torvalds's avatar
    security: optimize avc_audit() common path · 48aab2f7
    Linus Torvalds authored
    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: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    48aab2f7
avc.c 22 KB