• Chen, Kenneth W's avatar
    [PATCH] ia64: cpu_idle performance bug fix · 1e185b97
    Chen, Kenneth W authored
    Our performance validation on 2.6.15-rc1 caught a disastrous performance
    regression on ia64 with netperf (-98%) and volanomark (-58%) compares to
    previous kernel version 2.6.14-git7.  See the following chart (result
    group 1 & 2).
    
      http://kernel-perf.sourceforge.net/results.machine_id=26.html
    
    We have root caused it to commit 64c7c8f8
    
    This changeset broke the ia64 task resched notification.  In
    sched.c:resched_task(), a reschedule IPI is conditioned upon
    TIF_POLLING_NRFLAG.  However, the above changeset unconditionally set
    the polling thread flag for idle tasks regardless whether pal_halt_light
    is in use or not.  As a result, resched IPI is not sent from
    resched_task().  And since the default behavior on ia64 is to use
    pal_halt_light, we end up delaying the rescheduling task until next
    timer tick, and thus cause the performance regression.
    
    This fixes the performance bug.  I'm glad our performance suite is
    turning up bad performance bug like this in time.
    Signed-off-by: default avatarKen Chen <kenneth.w.chen@intel.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    1e185b97
process.c 21.9 KB