• Woodruff, Richard's avatar
    nohz: suppress needless timer reprogramming · 00147449
    Woodruff, Richard authored
    In my device I get many interrupts from a high speed USB device in a very
    short period of time.  The system spends a lot of time reprogramming the
    hardware timer which is in a slower timing domain as compared to the CPU. 
    This results in the CPU spending a huge amount of time waiting for the
    timer posting to be done.  All of this reprogramming is useless as the
    wake up time has not changed.
    
    As measured using ETM trace this drops my reprogramming penalty from
    almost 60% CPU load down to 15% during high interrupt rate.  I can send
    traces to show this.
    
    Suppress setting of duplicate timer event when timer already stopped. 
    Timer programming can be very costly and can result in long cpu stall/wait
    times.
    
    [akpm@linux-foundation.org: coding-style fixes]
    [tglx@linutronix.de: move the check to the right place and avoid raising
    		     the softirq for nothing]
    Signed-off-by: default avatarRichard Woodruff <r-woodruff2@ti.com>
    Cc: johnstul@us.ibm.com
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    00147449
tick-sched.c 19.1 KB