Permalink
Commits on Mar 6, 2012
  1. pm-hotplug: Add enhanced hotplugging tunables

    This allows the on/off thresholds to be tuned dependent on screen state
    along with the hotplugging poll rate.
    
    It also lets hotplugging get locked out at lower frequencies (default
    800 MHz)
    
    Credit for this goes to gokhanmoral of SiyahKernel - this is a rebase
    of all of his pm-hotplug commits minus the Tegrak stuff which is
    unnecessary with this code.  (The only thing Tegrak Second Core can
    achieve which this code can't is forcing CPU1 on - we never want
    to do that since that inhibits all deeper idle states.)
    
    Slightly different logic is used for the CPU1 turnon frequency -
    allow it to turn on when it equals the limit.
    
    Signed-off-by: Andrew Dodd <atd7@cornell.edu>
    committed Mar 6, 2012
  2. Revert "pm-hotplug: disable secondary cpu auto-hotplug when screen is…

    … off"
    
    This reverts commit 0746aeb.
    
    Prepare for tunable hotplugging logic from SiyahKernel
    
    Signed-off-by: Andrew Dodd <atd7@cornell.edu>
    committed Mar 6, 2012
Commits on Mar 4, 2012
  1. cpufreq: conservative: Reduce LATENCY_MULTIPLIER to 500

    This changes the default sampling_rate from 100 msec to 50 msec on Exynos
    
    DO NOT use this patch directly without testing and understanding the code
    on any arch that has a default sampling_rate other than 100000 (100 msec)
    
    Signed-off-by: Andrew Dodd <atd7@cornell.edu>
    committed Mar 4, 2012
  2. pm-hotplug: disable secondary cpu auto-hotplug when screen is off

    Based on Andrea Righi's patch at:
    arighi/linux-gt-i9100@49a54ec
    
    His patch depended on some unreverted cruft left over from previous patches, so it needed
    to be ported to work standalone.
    
    Signed-off-by: Andrew Dodd <atd7@cornell.edu>
    committed Feb 5, 2012
Commits on Mar 3, 2012
  1. s5pv310: cpuidle: Bring back some small things from the old code

    The old code has a few more items in its save/restore list
    
    These might be why some people have reported SoDs with rare circumstances
    over the past month.
    
    Signed-off-by: Andrew Dodd <atd7@cornell.edu>
    committed Mar 3, 2012
  2. config: Disable "powersave" cpufreq governor

    This governor is a guaranteed SoD on Samsungs if applied as a screen-off
    profile setting.
    
    Same results can be achieved by setting conservative to min=max=200 MHz
    committed Mar 3, 2012
  3. ARM: improve compiler's ability to optimize page tables

    Allow the compiler to better optimize the page table walking code
    by avoiding over-complex pmd_addr_end() calculations.  These
    calculations prevent the compiler spotting that we'll never iterate
    over the PMD table, causing it to create double nested loops where
    a single loop will do.
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Russell King committed with Nov 21, 2010
Commits on Mar 2, 2012
  1. slub: set slub_max_order to 0

    To avoid locking and per-cpu overhead, SLUB optimisically uses
    high-order allocations up to order-3 by default and falls back to lower
    allocations if they fail.
    
    So, with the default value (slub_max_order = 3), the kernel may ask up
    to 3 contigous pages for each slab. However, with a reduced amount of
    memory it is not worth to try to do order-3 allocations, it adds more
    overhead (shrinkers have to free more objects to release any memory) and
    probably it can easily fail to success with order-3 allocations.
    
    For this reason it is better to immediately fallback to oder-0
    allocations to reduce unnecessary overhead.
    
    Signed-off-by: Andrea Righi <andrea@betterlinux.com>
    arighi committed with Sep 19, 2011
  2. Revert "cpuidle: governor: menu: don't use loadavg"

    This reverts commit 3954900.
    
    Some indications are that this does not help, and in fact
    may make things worse on I9100/I777.  Right now put this in the
    "revisit later" bin.
    committed Mar 2, 2012
Commits on Feb 29, 2012
  1. cpufreq_conservative: Make default tuning parameters consistent.

    The original netarchy patch ( 3b92eb7 ) changed the default
    up/down threshold to be performance-oriented, and allowed
    the sample_rate to be performance-oriented, but defaulted it
    to a non-performance value.  This resulted in inconsistent defaults.
    
    Now default ALL values to be battery-optimized.
    
    Signed-off-by:  Andrew Dodd <atd7@cornell.edu>
    committed Feb 29, 2012
Commits on Feb 28, 2012
  1. Revert "ashmem: fix deadlock when system is low on memory"

    This reverts commit 634b73c.
    
    This caused severe performance regressions for at least one person during Patch-A-Day
    
    See http://forum.xda-developers.com/showpost.php?p=23044361&postcount=1972
    
    Hoping that the one person whom this patch seemed to help is running stable
    due to other work
    committed Feb 28, 2012
  2. PM: Fix printing IRQ names for pending wakeup IRQs

    The IRQ name has moved to the struct irqaction list (so print
    first action's name).
    
    Change-Id: I65a627457f9abaf7c1dcc32d8814243ba2ff4717
    Signed-off-by: Todd Poynor <toddpoynor@google.com>
    
    Conflicts:
    
    	kernel/irq/pm.c
    toddpoynor committed with Jul 25, 2011
Commits on Feb 17, 2012
  1. ashmem: fix deadlock when system is low on memory

    When system is low on memory, allocating memory while holding the
    ashmem_mutex may try to directly reclaim memory. Then ashmem_shrink()
    is called in same thread. It will deadlock at acquiring ashmem_mutex.
    This change lets ashmem_shrink() return failure if ashmem_mutex is not
    available. Memory will be reclaimed from others.
    Yuanyuan Zhong committed with Jun 16, 2011
  2. cpuidle: governor: menu: don't use loadavg

    get_loadavg doesn't work as intended.  According to the comments, it
    should be returning an average over a few seconds, but it is actually
    reading the instantaneous load.  It is almost always returning 0, but
    can sometimes, depending on workload, spike very high into the hundreds
    even when the average cpu load is under 10%.  Disable it for now.
    
    Change-Id: I63ed100af1cf9463549939b8113ed83676db5f86
    Signed-off-by: Colin Cross <ccross@android.com>
    colincross committed with Sep 19, 2011
Commits on Feb 16, 2012
  1. Epic 4G Touch EL29 sources: mshci: add MSHCI power control

    This actually appears to be a revert of something that was removed when
    going from the I777 source code drop to I9100 update3 sources.
    
    Hopefully will save battery
    
    Signed-off-by: Andrew Dodd <atd7@cornell.edu>
    committed Jan 30, 2012
  2. bcm4330: Print an error that early_suspend was blocked

    Some firmware bases, such as XXKI3, appear to have a broken DHCP setup
    which permanently blocks early_suspend handling - allow this blocking
    to show up in the dmesg, so people can figure out why the allow_pm_max
    patch is doing nothing
    
    Signed-off-by: Andrew Dodd <atd7@cornell.edu>
    committed Feb 5, 2012
  3. tcp: Increase the initial congestion window to 10.

    Signed-off-by: David S. Miller <davem@davemloft.net>
    Acked-by: Nandita Dukkipati <nanditad@google.com>
    davem330 committed with Sep 3, 2011
  4. TCP: increase default initial receive window.

    This patch changes the default initial receive window to 10 mss
    (defined constant). The default window is limited to the maximum
    of 10*1460 and 2*mss (when mss > 1460).
    
    draft-ietf-tcpm-initcwnd-00 is a proposal to the IETF that recommends
    increasing TCP's initial congestion window to 10 mss or about 15KB.
    Leading up to this proposal were several large-scale live Internet
    experiments with an initial congestion window of 10 mss (IW10), where
    we showed that the average latency of HTTP responses improved by
    approximately 10%. This was accompanied by a slight increase in
    retransmission rate (0.5%), most of which is coming from applications
    opening multiple simultaneous connections. To understand the extreme
    worst case scenarios, and fairness issues (IW10 versus IW3), we further
    conducted controlled testbed experiments. We came away finding minimal
    negative impact even under low link bandwidths (dial-ups) and small
    buffers.  These results are extremely encouraging to adopting IW10.
    
    However, an initial congestion window of 10 mss is useless unless a TCP
    receiver advertises an initial receive window of at least 10 mss.
    Fortunately, in the large-scale Internet experiments we found that most
    widely used operating systems advertised large initial receive windows
    of 64KB, allowing us to experiment with a wide range of initial
    congestion windows. Linux systems were among the few exceptions that
    advertised a small receive window of 6KB. The purpose of this patch is
    to fix this shortcoming.
    
    References:
    1. A comprehensive list of all IW10 references to date.
    http://code.google.com/speed/protocols/tcpm-IW10.html
    
    2. Paper describing results from large-scale Internet experiments with IW10.
    http://ccr.sigcomm.org/drupal/?q=node/621
    
    3. Controlled testbed experiments under worst case scenarios and a
    fairness study.
    http://www.ietf.org/proceedings/79/slides/tcpm-0.pdf
    
    4. Raw test data from testbed experiments (Linux senders/receivers)
    with initial congestion and receive windows of both 10 mss.
    http://research.csc.ncsu.edu/netsrv/?q=content/iw10
    
    5. Internet-Draft. Increasing TCP's Initial Window.
    https://datatracker.ietf.org/doc/draft-ietf-tcpm-initcwnd/
    
    Signed-off-by: Nandita Dukkipati <nanditad@google.com>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Nandita Dukkipati committed with Sep 3, 2011
Commits on Feb 15, 2012
  1. Revert "Epic 4G Touch EL29 sources: mshci: add MSHCI power control"

    This reverts commit 42e5d21.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  2. Revert "ARM: 6741/1: errata: pl310 cache sync operation may be faulty"

    This reverts commit 07917f0.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  3. Revert "TCP: increase default initial receive window."

    This reverts commit 20d26f5.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  4. Revert "slub: set slub_max_order to 0"

    This reverts commit e9500d9.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  5. Revert "ashmem: fix deadlock when system is low on memory"

    This reverts commit bd954de.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  6. Revert "tcp: Increase the initial congestion window to 10."

    This reverts commit bf30d84.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  7. Revert "config: Enable CONFIG_ARM_ERRATA_753970"

    This reverts commit 4311a7c.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  8. Revert "PM: Fix printing IRQ names for pending wakeup IRQs"

    This reverts commit 1757b9f.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  9. Revert "ARM: improve compiler's ability to optimize page tables"

    This reverts commit 3a0d020.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  10. Revert "bcm4330: Print an error that early_suspend was blocked"

    This reverts commit 86b36aa.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  11. Revert "cpuidle: governor: menu: don't use loadavg"

    This reverts commit cb170bc.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  12. Revert "pm-hotplug: disable secondary cpu auto-hotplug when screen is…

    … off"
    
    This reverts commit 9d9903d.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
  13. Revert "mach-s5pv310: cpufreq smooth scaling"

    This reverts commit 888555f.
    
    Prep for Patch-a-Day debugging due to stability issues reported for
    1/30 and 2/7 releases.
    committed Feb 15, 2012
Commits on Feb 7, 2012
  1. mach-s5pv310: cpufreq smooth scaling

    When a cpufreq governor policy requires to switch from a very low
    frequency to a very high frequency, the low lever driver may jump to a
    frequency lower than the target value requested by the higher layers,
    according to the configuration of the cpufreq step up sequence.
    
    For example, with the 2-step selection (CONFIG_FREQ_STEP_UP_L2_L0=y) a
    change from L3 to L0 (500MHz to 1200MHz) would jump to 800MHz, instead
    of the requested 1200MHz.
    
    To satisfy the requirements of the higher cpufreq layers introduce a
    smooth scaling mechanism that allows to switch to the target frequency
    incrementally in multiple steps.
    
    So, if it's not possible to switch to the target frequency in a single
    step, schedule an additional frequency step later in the future (after
    0.5sec by default) using a delayed workqueue.
    
    The additional step is performed by the low-level driver and it's
    totally transparent for the higher layers.
    
    Signed-off-by: Andrea Righi <andrea@betterlinux.com>
    arighi committed with Oct 1, 2011
  2. pm-hotplug: disable secondary cpu auto-hotplug when screen is off

    Based on Andrea Righi's patch at:
    arighi/linux-gt-i9100@49a54ec
    
    His patch depended on some unreverted cruft left over from previous patches, so it needed
    to be ported to work standalone.
    
    Signed-off-by: Andrew Dodd <atd7@cornell.edu>
    committed Feb 5, 2012
  3. cpuidle: governor: menu: don't use loadavg

    get_loadavg doesn't work as intended.  According to the comments, it
    should be returning an average over a few seconds, but it is actually
    reading the instantaneous load.  It is almost always returning 0, but
    can sometimes, depending on workload, spike very high into the hundreds
    even when the average cpu load is under 10%.  Disable it for now.
    
    Change-Id: I63ed100af1cf9463549939b8113ed83676db5f86
    Signed-off-by: Colin Cross <ccross@android.com>
    colincross committed with Sep 19, 2011
  4. mach-s5pv310: cpuidle: Lock out AFTR when MFC is active

    A small number of users have issues with video decoding failing
    when AFTR is enabled in the new cpuidle code, since AFTR can now
    be hit when residency is only 10 ms
    
    This locks out AFTR when the MFC hardware is active, which should
    prevent such issues.
    
    Signed-off-by: Andrew Dodd <atd7@cornell.edu>
    committed Feb 5, 2012