Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Aug 19, 2012
  1. @faux123

    Proportional Rate Reduction for TCP.

    faux123 authored committed
    This patch implements Proportional Rate Reduction (PRR) for TCP.
    PRR is an algorithm that determines TCP's sending rate in fast
    recovery. PRR avoids excessive window reductions and aims for
    the actual congestion window size at the end of recovery to be as
    close as possible to the window determined by the congestion control
    algorithm. PRR also improves accuracy of the amount of data sent
    during loss recovery.
    The patch implements the recommended flavor of PRR called PRR-SSRB
    (Proportional rate reduction with slow start reduction bound) and
    replaces the existing rate halving algorithm. PRR improves upon the
    existing Linux fast recovery under a number of conditions including:
      1) burst losses where the losses implicitly reduce the amount of
    outstanding data (pipe) below the ssthresh value selected by the
    congestion control algorithm and,
      2) losses near the end of short flows where application runs out of
    data to send.
    As an example, with the existing rate halving implementation a single
    loss event can cause a connection carrying short Web transactions to
    go into the slow start mode after the recovery. This is because during
    recovery Linux pulls the congestion window down to packets_in_flight+1
    on every ACK. A short Web response often runs out of new data to send
    and its pipe reduces to zero by the end of recovery when all its packets
    are drained from the network. Subsequent HTTP responses using the same
    connection will have to slow start to raise cwnd to ssthresh. PRR on
    the other hand aims for the cwnd to be as close as possible to ssthresh
    by the end of recovery.
    A description of PRR and a discussion of its performance can be found at
    the following links:
    - IETF Draft:
    - IETF Slides:
    - Paper to appear in Internet Measurements Conference (IMC) 2011:
        Improving TCP Loss Recovery
        Nandita Dukkipati, Matt Mathis, Yuchung Cheng
    Signed-off-by: Nandita Dukkipati <>
    Signed-off-by: David S. Miller <>
    backported from Linux 3.x.+ to Linux 2.6.32 by faux123
    (cherry picked from commit e55cfb53fb4c616158962a476fb324fe71215727)
  2. @davem330

    tcp: Make undo_ssthresh arg to tcp_undo_cwr() a bool.

    davem330 authored committed
    Signed-off-by: David S. Miller <>
    (cherry picked from commit 299f8ead7829885de173e158195debadc5365b41)
  3. tcp: avoid cwnd moderation in undo

    Yuchung Cheng authored committed
    In the current undo logic, cwnd is moderated after it was restored
    to the value prior entering fast-recovery. It was moderated first
    in tcp_try_undo_recovery then again in tcp_complete_cwr.
    Since the undo indicates recovery was false, these moderations
    are not necessary. If the undo is triggered when most of the
    outstanding data have been acknowledged, the (restored) cwnd is
    falsely pulled down to a small value.
    This patch removes these cwnd moderations if cwnd is undone
      a) during fast-recovery
    	b) by receiving DSACKs past fast-recovery
    Signed-off-by: Yuchung Cheng <>
    Signed-off-by: David S. Miller <>
    (cherry picked from commit 6bdfa7ed9a3114cdd06d7e69869131e5aae021fd)
  4. tcp: fix RTT for quick packets in congestion control

    stephen hemminger authored committed
    In the congestion control interface, the callback for each ACK
    includes an estimated round trip time in microseconds.
    Some algorithms need high resolution (Vegas style) but most only
    need jiffie resolution.  If RTT is not accurate (like a retransmission)
    -1 is used as a flag value.
    When doing coarse resolution if RTT is less than a a jiffie
    then 0 should be returned rather than no estimate. Otherwise algorithms
    that expect good ack's to trigger slow start (like CUBIC Hystart)
    will be confused.
    Signed-off-by: Stephen Hemminger <>
    Signed-off-by: David S. Miller <>
    (cherry picked from commit 7a6696457e3d4dd2c567e3071dfda13485939fff)
  5. tcp: undo_retrans counter fixes

    Yuchung Cheng authored committed
    Fix a bug that undo_retrans is incorrectly decremented when undo_marker is
    not set or undo_retrans is already 0. This happens when sender receives
    more DSACK ACKs than packets retransmitted during the current
    undo phase. This may also happen when sender receives DSACK after
    the undo operation is completed or cancelled.
    Fix another bug that undo_retrans is incorrectly incremented when
    sender retransmits an skb and tcp_skb_pcount(skb) > 1 (TSO). This case
    is rare but not impossible.
    Signed-off-by: Yuchung Cheng <>
    Acked-by: Ilpo Järvinen <>
    Signed-off-by: David S. Miller <>
    (cherry picked from commit 270c85995e7e4e3b4b4e07756f5ef977eb024d83)
  6. TCP: fix a bug that triggers large number of TCP RST by mistake

    Jerry Chu authored committed
    This patch fixes a bug that causes TCP RST packets to be generated
    on otherwise correctly behaved applications, e.g., no unread data
    on close,..., etc. To trigger the bug, at least two conditions must
    be met:
    1. The FIN flag is set on the last data packet, i.e., it's not on a
    separate, FIN only packet.
    2. The size of the last data chunk on the receive side matches
    exactly with the size of buffer posted by the receiver, and the
    receiver closes the socket without any further read attempt.
    This bug was first noticed on our netperf based testbed for our IW10
    proposal to IETF where a large number of RST packets were observed.
    netperf's read side code meets the condition 2 above 100%.
    Before the fix, tcp_data_queue() will queue the last skb that meets
    condition 1 to sk_receive_queue even though it has fully copied out
    (skb_copy_datagram_iovec()) the data. Then if condition 2 is also met,
    tcp_recvmsg() often returns all the copied out data successfully
    without actually consuming the skb, due to a check
    "if ((chunk = len - tp->ucopy.len) != 0) {"
    "len -= chunk;"
    after tcp_prequeue_process() that causes "len" to become 0 and an
    early exit from the big while loop.
    I don't see any reason not to free the skb whose data have been fully
    consumed in tcp_data_queue(), regardless of the FIN flag.  We won't
    get there if MSG_PEEK is on. Am I missing some arcane cases related
    to urgent data?
    Signed-off-by: H.K. Jerry Chu <>
    Signed-off-by: David S. Miller <>
    (cherry picked from commit 724ff00296c2e27b7a9d2cc9cd2a9233726c840e)
  7. @johnwheffner

    TCP: Fix setting of snd_ssthresh in tcp_mtu_probe_success

    johnwheffner authored committed
    This looks like a simple typo that has gone unnoticed for some time.  The
    impact is relatively low but it's clearly wrong.
    Signed-off-by: John Heffner <>
    Signed-off-by: David S. Miller <>
    (cherry picked from commit 5a99c1904e8b8d269c359c74f1d9bd573d5d15b6)
  8. tcp: fix TSO FACK loss marking in tcp_mark_head_lost

    Yuchung Cheng authored committed
    When TCP uses FACK algorithm to mark lost packets in
    tcp_mark_head_lost(), if the number of packets in the (TSO) skb is
    greater than the number of packets that should be marked lost, TCP
    incorrectly exits the loop and marks no packets lost in the skb. This
    underestimates tp->lost_out and affects the recovery/retransmission.
    This patch fargments the skb and marks the correct amount of packets
    Signed-off-by: Yuchung Cheng <>
    Acked-by: Ilpo Järvinen <>
    Signed-off-by: David S. Miller <>
    (cherry picked from commit b9cac5f30c45293d5173440369c12763eea33596)
  9. @markus-oberhumer

    lib/lzo: Update LZO compression to current upstream version

    markus-oberhumer authored committed
    This commit updates the kernel LZO code to the current upsteam version
    which features a significant speed improvement - benchmarking the Calgary
    and Silesia test corpora typically shows a doubled performance in
    both compression and decompression on modern i386/x86_64/powerpc machines.
    Signed-off-by: Markus F.X.J. Oberhumer <>
    (cherry picked from commit 46e88da6bd59f7fb0cc2b346cf024e330f1e5ac5)
  10. @markus-oberhumer

    lib/lzo: Rename lzo1x_decompress.c to lzo1x_decompress_safe.c

    markus-oberhumer authored committed
    Rename the source file to match the function name and thereby
    also make room for a possible future even slightly faster
    "non-safe" decompressor version.
    Signed-off-by: Markus F.X.J. Oberhumer <>
    (cherry picked from commit 768fa6ae2df933685316149ad7507982dffc31e0)
  11. @ucdevel

    arm/crypto: Add optimized AES and SHA1 routines

    ucdevel authored committed
    Add assembler versions of AES and SHA1 for ARM platforms.  This has provided
    up to a 50% improvement in IPsec/TCP throughout for tunnels using AES128/SHA1.
    Platform   CPU SPeed    Endian   Before (bps)   After (bps)   Improvement
    IXP425      533 MHz      big     11217042        15566294        ~38%
    KS8695      166 MHz     little    3828549         5795373        ~51%
    Signed-off-by: David McCullough <>
    (cherry picked from commit c3111f3d57a21cb0c48dc55c06b0e7f6264208c4)
  12. @faux123

    block/deadline: tweaked for better performance on android

    faux123 authored committed
    (cherry picked from commit f5910d6f7844f661d9189f9558efa316c9d24f32)
  13. Change compiler

  14. Update defconfig

  15. Update build flags

  16. Update LGE drivers

Commits on Aug 17, 2012
  1. @vork

    Add Vibrator Control

    vork authored committed
    (cherry picked from commit 1fef2d0ed14b5f89a3f8e371f7bd49d0a415f965)
    (cherry picked from commit 9b417d8a0a5a3877ae0f509cb4b2c542b4b9046d)
    (cherry picked from commit f001aebb4dc58896e684a838fffd8c832a014efa)
    (cherry picked from commit e4187b6659832d4da87dfb0f2450366c6f5b9faa)
    (cherry picked from commit 9d9cc5fbf43d27b1a39e1eddd5139be654e334bb)
  2. Revert: JRCU

  3. Update scripts

  4. @vork

    Optimize cpu1 handling

    vork authored committed
  5. Update star battery driver

  6. Update defconfig

  7. Fajarep backlight values

  8. Cleanup

Commits on Jul 18, 2012
  1. Update defconfig

  2. Fix compilation error

  3. Add predefined OC levels

  4. Add OTF code

  5. Update defconfig

Something went wrong with that request. Please try again.