• Andrew Morton's avatar
    cpufreq: use smp_call_function_[single|many]() in acpi-cpufreq.c · 01599fca
    Andrew Morton authored
    Atttempting to rid us of the problematic work_on_cpu().  Just use
    smp_call_fuction_single() here.
    
    This repairs a 10% sysbench(oltp)+mysql regression which Mike reported,
    due to
    
      commit 6b44003e
      Author: Andrew Morton <akpm@linux-foundation.org>
      Date:   Thu Apr 9 09:50:37 2009 -0600
    
          work_on_cpu(): rewrite it to create a kernel thread on demand
    
    It seems that the kernel calls these acpi-cpufreq functions at a quite
    high frequency.
    
    Valdis Kletnieks also reports that this causes 70-90 forks per second on
    his hardware.
    
    Cc: Valdis.Kletnieks@vt.edu
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
    Cc: Len Brown <len.brown@intel.com>
    Cc: Zhao Yakui <yakui.zhao@intel.com>
    Acked-by: default avatarDave Jones <davej@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: default avatarMike Galbraith <efault@gmx.de>
    Cc: "Zhang, Yanmin" <yanmin_zhang@linux.intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Acked-by: default avatarIngo Molnar <mingo@elte.hu>
    [ Made it use smp_call_function_many() instead of looping over cpu's
      with smp_call_function_single()    - Linus ]
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    01599fca
acpi-cpufreq.c 21 KB