1. 25 7月, 2013 23 次提交
  2. 24 7月, 2013 9 次提交
  3. 23 7月, 2013 8 次提交
    • D
      Merge branch 'tcp' · 20ff44aa
      David S. Miller 提交于
      Yuchung Cheng says:
      
      ====================
      This patch series improve RTT sampling in three ways:
      1. Sample RTT during fast recovery and reordering events.
      2. Favor ack-based RTT to timestamps because of broken TS ECR fields
      3. Consolidate the RTT measurement logic.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      20ff44aa
    • Y
      tcp: use RTT from SACK for RTO · ed08495c
      Yuchung Cheng 提交于
      If RTT is not available because Karn's check has failed or no
      new packet is acked, use the RTT measured from SACK to estimate
      the RTO. The sender can continue to estimate the RTO during loss
      recovery or reordering event upon receiving non-partial ACKs.
      
      This also changes when the RTO is re-armed. Previously it is
      only re-armed when some data is cummulatively acknowledged (i.e.,
      SND.UNA advances), but now it is re-armed whenever RTT estimator
      is updated. This feature is particularly useful to reduce spurious
      timeout for buffer bloat including cellular carriers [1], and
      RTT estimation on reordering events.
      
      [1] "An In-depth Study of LTE: Effect of Network Protocol and
       Application Behavior on Performance", In Proc. of SIGCOMM 2013
      Signed-off-by: NYuchung Cheng <ycheng@google.com>
      Acked-by: NNeal Cardwell <ncardwell@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ed08495c
    • Y
      tcp: measure RTT from new SACK · 59c9af42
      Yuchung Cheng 提交于
      Take RTT sample if an ACK selectively acks some sequences that
      have never been retransmitted. The Karn's algorithm does not apply
      even if that ACK (s)acks other retransmitted sequences, because it
      must been generated by an original but perhaps out-of-order packet.
      There is no ambiguity. In case when multiple blocks are newly
      sacked because of ACK losses the earliest block is used to
      measure RTT, similar to cummulative ACKs.
      
      Such RTT samples allow the sender to estimate the RTO during loss
      recovery and packet reordering events. It is still useful even with
      TCP timestamps. That's because during these events the SND.UNA may
      not advance preventing RTT samples from TS ECR (thus the FLAG_ACKED
      check before calling tcp_ack_update_rtt()).  Therefore this new
      RTT source is complementary to existing ACK and TS RTT mechanisms.
      
      This patch does not update the RTO. It is done in the next patch.
      Signed-off-by: NYuchung Cheng <ycheng@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      59c9af42
    • Y
      tcp: prefer packet timing to TS-ECR for RTT · 5b08e47c
      Yuchung Cheng 提交于
      Prefer packet timings to TS-ecr for RTT measurements when both
      sources are available. That's because broken middle-boxes and remote
      peer can return packets with corrupted TS ECR fields. Similarly most
      congestion controls that require RTT signals favor timing-based
      sources as well. Also check for bad TS ECR values to avoid RTT
      blow-ups. It has happened on production Web servers.
      Signed-off-by: NYuchung Cheng <ycheng@google.com>
      Acked-by: NNeal Cardwell <ncardwell@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5b08e47c
    • Y
      tcp: consolidate SYNACK RTT sampling · 375fe02c
      Yuchung Cheng 提交于
      The first patch consolidates SYNACK and other RTT measurement to use a
      central function tcp_ack_update_rtt(). A (small) bonus is now SYNACK
      RTT measurement happens after PAWS check, potentially reducing the
      impact of RTO seeding on bad TCP timestamps values.
      Signed-off-by: NYuchung Cheng <ycheng@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      375fe02c
    • D
      Merge branch 'fec' · c3f51d5f
      David S. Miller 提交于
      Fabio Estevam says:
      
      ====================
      This series improves clock handling in the driver by not enabling/disabling
      the optional ptp and enet_out clocks unconditionally, check for the return value
      of clk_prepare_enable and also handle clk_ptp in suspend/resume.
      
      Remove an unneeded check in platform_get_resource() and also use
      devm_request_irq() that can help to simplify the code.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NFrank Li <lznuaa@gmail.com>
      c3f51d5f
    • F
      fec: Use devm_request_irq() · 0d9b2ab1
      Fabio Estevam 提交于
      Using devm_request_irq() can make the code smaller and cleaner.
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0d9b2ab1
    • F
      fec: Remove unneeded check in platform_get_resource() · 399db75b
      Fabio Estevam 提交于
      As devm_ioremap_resource() is used, there is no need to explicitely check the
      return value from platform_get_resource(), as this is something that
      devm_ioremap_resource() takes care by itself.
      
      Also, place platform_get_resource() prior to devm_ioremap_resource() for
      better code readability.
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      399db75b