• Heiko Carstens's avatar
    timer stats: Optimize by adding quick check to avoid function calls · 507e1231
    Heiko Carstens authored
    When the kernel is configured with CONFIG_TIMER_STATS but timer
    stats are runtime disabled we still get calls to
    __timer_stats_timer_set_start_info which initializes some
    fields in the corresponding struct timer_list.
    
    So add some quick checks in the the timer stats setup functions
    to avoid function calls to __timer_stats_timer_set_start_info
    when timer stats are disabled.
    
    In an artificial workload that does nothing but playing ping
    pong with a single tcp packet via loopback this decreases cpu
    consumption by 1 - 1.5%.
    
    This is part of a modified function trace output on SLES11:
    
     perl-2497  [00] 28630647177732388 [+  125]: sk_reset_timer <-tcp_v4_rcv
     perl-2497  [00] 28630647177732513 [+  125]: mod_timer <-sk_reset_timer
     perl-2497  [00] 28630647177732638 [+  125]: __timer_stats_timer_set_start_info <-mod_timer
     perl-2497  [00] 28630647177732763 [+  125]: __mod_timer <-mod_timer
     perl-2497  [00] 28630647177732888 [+  125]: __timer_stats_timer_set_start_info <-__mod_timer
     perl-2497  [00] 28630647177733013 [+   93]: lock_timer_base <-__mod_timer
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Mustafa Mesanovic <mustafa.mesanovic@de.ibm.com>
    Cc: Arjan van de Ven <arjan@infradead.org>
    LKML-Reference: <20090623153811.GA4641@osiris.boeblingen.de.ibm.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    507e1231
timer_stats.c 9.82 KB