lkml.org 
[lkml]   [2013]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v6 0/2] cpufreq: cpufreq_driver_lock is hot on large systems
    Date
    I am noticing the cpufreq_driver_lock is quite hot.
    On an idle 512 system perf shows me most of the system time is spent on this
    lock. This is quite significant as top shows 5% of time in system time.
    My solution was to first split the lock into two parts, cpu_driver_lock and
    cpu_data_lock, with the cpufreq_driver also being protected by the RCU.
    There was measurable heat left on the cpufreq_data_lock in __cpufreq_cpu_get.
    So in the second part I converted the cpufreq_data_lock to be a rw lock since
    an rcu solution was not apparent, at least to me.

    v5: Go a different way and split up the lock and use the rcu
    v6: use bools instead of checking function pointers
    covert the cpufreq_data_lock to a rwlock

    Nathan Zimmer (2):
    cpufreq: split the cpufreq_driver_lock and use the rcu
    cpufreq: covert the cpufreq_data_lock to a spinlock

    drivers/cpufreq/cpufreq.c | 302 +++++++++++++++++++++++++++++++++-------------
    1 file changed, 219 insertions(+), 83 deletions(-)

    --
    1.8.1.2



    \
     
     \ /
      Last update: 2013-04-01 23:01    [W:3.498 / U:2.168 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site