Permalink
Commits on Apr 16, 2013
  1. Merge branch 'test' into weekly

    edoko committed Apr 16, 2013
  2. Revert "ARM CPU Topology -Enable SCHED_MC Signed-off-by: Seongmin Par…

    edoko committed Apr 16, 2013
    …k <r_data@naver.com>"
    
    This reverts commit e54e2b6.
  3. Revert "Revert "cpufreq: Tune the FREQUENCY_DOWN_THRESHOLD""

    edoko committed Apr 16, 2013
    This reverts commit 0c9cd01.
  4. Revert "cpufreq: Tune the FREQUENCY_DOWN_THRESHOLD"

    edoko committed Apr 16, 2013
    This reverts commit 2eceb6e.
  5. hrtimer: Prevent enqueue of hrtimer on dead CPU

    Michael Bohan authored and edoko committed Apr 12, 2013
    Date	Wed, 10 Apr 2013 14:07:48 -0700
    
    When switching the hrtimer cpu_base, we briefly allow for
    preemption to become enabled by unlocking the cpu_base lock.
    During this time, the CPU corresponding to the new cpu_base
    that was selected may in fact go offline. In this scenario, the
    hrtimer is enqueued to a CPU that's not online, and therefore
    it never fires.
    
    As an example, consider this example:
    
    CPU #0                          CPU #1
    ----                            ----
    ...                             hrtimer_start()
                                     lock_hrtimer_base()
                                     switch_hrtimer_base()
                                      cpu = hrtimer_get_target() -> 1
                                      spin_unlock(&cpu_base->lock)
                                    <migrate thread to CPU #0>
                                    <offline>
    spin_lock(&new_base->lock)
    this_cpu = 0
    cpu != this_cpu
    enqueue_hrtimer(cpu_base #1)
    To prevent this scenario, verify that the CPU corresponding to
    the new cpu_base is indeed online before selecting it in
    hrtimer_switch_base(). If it's not online, fallback to using the
    base of the current CPU.
    
    Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
    Signed-off-by: Seongmin Park <r_data@naver.com>
  6. hrtimer: Consider preemption when migrating hrtimer cpu_bases

    Michael Bohan authored and edoko committed Apr 12, 2013
    Date	Wed, 10 Apr 2013 14:07:47 -0700
    
    When switching to a new cpu_base in switch_hrtimer_base(), we
    briefly enable preemption by unlocking the cpu_base lock in two
    places. During this interval it's possible for the running thread
    to be swapped to a different CPU.
    
    Consider the following example:
    
    CPU #0                                 CPU #1
    ----                                   ----
    hrtimer_start()                        ...
     lock_hrtimer_base()
     switch_hrtimer_base()
      this_cpu = 0;
      target_cpu_base = 0;
      raw_spin_unlock(&cpu_base->lock)
    <migrate to CPU 1>
    ...                                    this_cpu == 0
                                           cpu == this_cpu
                                           timer->base = CPU #0
                                           timer->base != LOCAL_CPU
    Since the cached this_cpu is no longer accurate, we'll skip the
    hrtimer_check_target() check. Once we eventually go to program
    the hardware, we'll decide not to do so since it knows the real
    CPU that we're running on is not the same as the chosen base. As
    a consequence, we may end up missing the hrtimer's deadline.
    
    Fix this by updating the local CPU number each time we retake a
    cpu_base lock in switch_hrtimer_base().
    
    Another possibility is to disable preemption across the whole of
    switch_hrtimer_base. This looks suboptimal since preemption
    would be disabled while waiting for lock(s).
    
    Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
    Signed-off-by: Seongmin Park <r_data@naver.com>
  7. Revert "Revert "scheduler: compute time-average nr_running per run-qu…

    edoko committed Apr 16, 2013
    …eue""
    
    This reverts commit e3ac517.
  8. Revert "hrtimer: Prevent enqueue of hrtimer on dead CPU"

    edoko committed Apr 16, 2013
    This reverts commit 4152126.
  9. Enable CONFIG_MODULES

    edoko committed Apr 16, 2013
    Signed-off-by: Seongmin Park <r_data@naver.com>
  10. block: row: Update sysfs functions

    Tatyana Brokhman authored and edoko committed Mar 21, 2013
    All ROW (time related) configurable parameters are stored in ms so there
    is no need to convert from/to ms when reading/updating them via sysfs.
    
    Change-Id: Ib6a1de54140b5d25696743da944c076dd6fc02ae
    Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
    Signed-off-by: Seongmin Park <r_data@naver.com>
  11. block: row: Prevent starvation of regular priority by high priority

    Tatyana Brokhman authored and edoko committed Mar 21, 2013
    At the moment all REGULAR and LOW priority requests are starved as long as
    there are HIGH priority requests to dispatch.
    This patch prevents the above starvation by setting a starvation limit the
    REGULAR\LOW priority requests can tolerate.
    
    Change-Id: Ibe24207982c2c55d75c0b0230f67e013d1106017
    Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
    Signed-off-by: Seongmin Park <r_data@naver.com>
  12. timer: hrtimer: Don't check idle_cpu() before calling get_nohz_timer_…

    vireshk authored and edoko committed Sep 27, 2012
    …target()
    
    Check for current cpu's idleness is already done in implementation of
    sched_select_non_idle_cpu() which is called by get_nohz_timer_target(). So, no
    need to call idle_cpu() twice, once from sched_select_non_idle_cpu() and once
    from timer and hrtimer before calling get_nohz_timer_target().
    
    This patch removes calls to idle_cpu() from timer and hrtimer.
    
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Seongmin Park <r_data@naver.com>
  13. sched: Create sched_select_non_idle_cpu() to give preferred CPU for p…

    vireshk authored and edoko committed Sep 14, 2012
    …ower saving
    
    In order to save power, it would be useful to schedule light weight work on cpus
    that aren't IDLE instead of waking up an IDLE one.
    
    By idle cpu (from scheduler's perspective) we mean:
    - Current task is idle task
    - nr_running == 0
    - wake_list is empty
    
    This is already implemented for timers as get_nohz_timer_target(). We can figure
    out few more users of this feature, like workqueues.
    
    This patch converts get_nohz_timer_target() into a generic API
    sched_select_non_idle_cpu() so that other frameworks (like workqueue) can also
    use it.
    
    This routine returns the cpu which is non-idle. If the local CPU isn't idle OR
    all cpus are idle, local cpu is returned back. If local cpu is idle, then we
    must look for another CPU which isn't idle.
    
    This patch reuses the code from get_nohz_timer_target() routine, which had
    similar implementation.
    
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Seongmin Park <r_data@naver.com>
  14. Revert "Makefile: Change toolchain binary"

    edoko committed Apr 16, 2013
    This reverts commit 8ea6dfe.
  15. Revert "board: mako: reduce reserver RAM for logs."

    edoko committed Apr 16, 2013
    This reverts commit 8fe7c22.
  16. hrtimer: Prevent enqueue of hrtimer on dead CPU

    Michael Bohan authored and edoko committed Apr 12, 2013
    Date	Wed, 10 Apr 2013 14:07:48 -0700
    
    When switching the hrtimer cpu_base, we briefly allow for
    preemption to become enabled by unlocking the cpu_base lock.
    During this time, the CPU corresponding to the new cpu_base
    that was selected may in fact go offline. In this scenario, the
    hrtimer is enqueued to a CPU that's not online, and therefore
    it never fires.
    
    As an example, consider this example:
    
    CPU #0                          CPU #1
    ----                            ----
    ...                             hrtimer_start()
                                     lock_hrtimer_base()
                                     switch_hrtimer_base()
                                      cpu = hrtimer_get_target() -> 1
                                      spin_unlock(&cpu_base->lock)
                                    <migrate thread to CPU #0>
                                    <offline>
    spin_lock(&new_base->lock)
    this_cpu = 0
    cpu != this_cpu
    enqueue_hrtimer(cpu_base #1)
    To prevent this scenario, verify that the CPU corresponding to
    the new cpu_base is indeed online before selecting it in
    hrtimer_switch_base(). If it's not online, fallback to using the
    base of the current CPU.
    
    Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
    Signed-off-by: Seongmin Park <r_data@naver.com>
  17. hrtimer: Consider preemption when migrating hrtimer cpu_bases

    Michael Bohan authored and edoko committed Apr 12, 2013
    Date	Wed, 10 Apr 2013 14:07:47 -0700
    
    When switching to a new cpu_base in switch_hrtimer_base(), we
    briefly enable preemption by unlocking the cpu_base lock in two
    places. During this interval it's possible for the running thread
    to be swapped to a different CPU.
    
    Consider the following example:
    
    CPU #0                                 CPU #1
    ----                                   ----
    hrtimer_start()                        ...
     lock_hrtimer_base()
     switch_hrtimer_base()
      this_cpu = 0;
      target_cpu_base = 0;
      raw_spin_unlock(&cpu_base->lock)
    <migrate to CPU 1>
    ...                                    this_cpu == 0
                                           cpu == this_cpu
                                           timer->base = CPU #0
                                           timer->base != LOCAL_CPU
    Since the cached this_cpu is no longer accurate, we'll skip the
    hrtimer_check_target() check. Once we eventually go to program
    the hardware, we'll decide not to do so since it knows the real
    CPU that we're running on is not the same as the chosen base. As
    a consequence, we may end up missing the hrtimer's deadline.
    
    Fix this by updating the local CPU number each time we retake a
    cpu_base lock in switch_hrtimer_base().
    
    Another possibility is to disable preemption across the whole of
    switch_hrtimer_base. This looks suboptimal since preemption
    would be disabled while waiting for lock(s).
    
    Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
    Signed-off-by: Seongmin Park <r_data@naver.com>
  18. ARM: add cpufreq transiton notifier to adjust loops_per_jiffy for smp

    Richard Zhao authored and edoko committed Sep 4, 2012
    If CONFIG_SMP, cpufreq skips loops_per_jiffy update, because different
    arch has different per-cpu loops_per_jiffy definition.
    
    Signed-off-by: Richard Zhao <richard.zhao@linaro.org>
    Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
    Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
    Signed-off-by: Seongmin Park <r_data@naver.com>
  19. Revert "scheduler: Re-compute time-average nr_running on read"

    edoko committed Apr 16, 2013
    This reverts commit d732a3d.
Commits on Apr 14, 2013
  1. Merge branch 'test' into weekly

    edoko committed Apr 14, 2013
  2. acpuclock-8064.c: derp...

    edoko committed Apr 14, 2013
    Signed-off-by: Seongmin Park <r_data@naver.com>
  3. Merge branch 'test' into weekly

    edoko committed Apr 14, 2013
  4. msm: Add UC+OC option

    edoko committed Apr 14, 2013
    Signed-off-by: Seongmin Park <r_data@naver.com>
  5. Revert "Update defconfig"

    edoko committed Apr 14, 2013
    This reverts commit e5c861a.
  6. Update defconfig

    edoko committed Apr 14, 2013
    Signed-off-by: Seongmin Park <r_data@naver.com>
  7. Merge branch 'test' into weekly

    edoko committed Apr 14, 2013
  8. Revert "sched: Create sched_select_non_idle_cpu() to give preferred C…

    edoko committed Apr 14, 2013
    …PU for power saving"
    
    This reverts commit d0760f0.
  9. Revert "timer: hrtimer: Don't check idle_cpu() before calling get_noh…

    edoko committed Apr 14, 2013
    …z_timer_target()"
    
    This reverts commit 37e46db.
  10. Revert "ARM: add cpufreq transiton notifier to adjust loops_per_jiffy…

    edoko committed Apr 14, 2013
    … for smp"
    
    This reverts commit 99ff8a2.
  11. Merge branch 'test' into weekly

    edoko committed Apr 14, 2013
  12. cpufreq: Tune the FREQUENCY_DOWN_THRESHOLD

    edoko committed Apr 14, 2013
    Signed-off-by: Seongmin Park <r_data@naver.com>
  13. auto_hotplug.c: some tweaks

    edoko committed Apr 14, 2013
    Signed-off-by: Seongmin Park <r_data@naver.com>