Skip to content
  • Rik van Riel's avatar
    time, acct: Drop irq save & restore from __acct_update_integrals() · 9344c92c
    Rik van Riel authored
    
    
    It looks like all the call paths that lead to __acct_update_integrals()
    already have irqs disabled, and __acct_update_integrals() does not need
    to disable irqs itself.
    
    This is very convenient since about half the CPU time left in this
    function was spent in local_irq_save alone.
    
    Performance of a microbenchmark that calls an invalid syscall
    ten million times in a row on a nohz_full CPU improves 21% vs.
    4.5-rc1 with both the removal of divisions from __acct_update_integrals()
    and this patch, with runtime dropping from 3.7 to 2.9 seconds.
    
    With these patches applied, the highest remaining cpu user in
    the trace is native_sched_clock, which is addressed in the next
    patch.
    
    For testing purposes I stuck a WARN_ON(!irqs_disabled()) test
    in __acct_update_integrals(). It did not trigger.
    
    Suggested-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Signed-off-by: default avatarRik van Riel <riel@redhat.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Rev...
    9344c92c