1. 05 May, 2014 30 commits
  2. 04 May, 2014 5 commits
  3. 03 May, 2014 1 commit
  4. 02 May, 2014 4 commits
    • Eric Dumazet's avatar
      tcp: fix cwnd limited checking to improve congestion control · e114a710
      Eric Dumazet authored
      Yuchung discovered tcp_is_cwnd_limited() was returning false in
      slow start phase even if the application filled the socket write queue.
      
      All congestion modules take into account tcp_is_cwnd_limited()
      before increasing cwnd, so this behavior limits slow start from
      probing the bandwidth at full speed.
      
      The problem is that even if write queue is full (aka we are _not_
      application limited), cwnd can be under utilized if TSO should auto
      defer or TCP Small queues decided to hold packets.
      
      So the in_flight can be kept to smaller value, and we can get to the
      point tcp_is_cwnd_limited() returns false.
      
      With TCP Small Queues and FQ/pacing, this issue is more visible.
      
      We fix this by having tcp_cwnd_validate(), which is supposed to track
      such things, take into account unsent_segs, the number of segs that we
      are not sending at the moment due to TSO or TSQ, but intend to send
      real soon. Then when we are cwnd-limited, remember this fact while we
      are processing the window of ACKs that comes back.
      
      For example, suppose we have a brand new connection with cwnd=10; we
      are in slow start, and we send a flight of 9 packets. By the time we
      have received ACKs for all 9 packets we want our cwnd to be 18.
      We implement this by setting tp->lsnd_pending to 9, and
      considering ourselves to be cwnd-limited while cwnd is less than
      twice tp->lsnd_pending (2*9 -> 18).
      
      This makes tcp_is_cwnd_limited() more understandable, by removing
      the GSO/TSO kludge, that tried to work around the issue.
      
      Note the in_flight parameter can be removed in a followup cleanup
      patch.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e114a710
    • Stéphane Graber's avatar
      net: Allow tc changes in user namespaces · 4e8bbb81
      Stéphane Graber authored
      This switches a few remaining capable(CAP_NET_ADMIN) to ns_capable so
      that root in a user namespace may set tc rules inside that namespace.
      Signed-off-by: default avatarStéphane Graber <stgraber@ubuntu.com>
      Acked-by: default avatarSerge E. Hallyn <serge.hallyn@ubuntu.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Jamal Hadi Salim <jhs@mojatatu.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4e8bbb81
    • David S. Miller's avatar
      Merge branch 'davinci_mdio' · 3c4de5a0
      David S. Miller authored
      Grygorii Strashko says:
      
      ====================
      introduce devm_mdiobus_alloc/free and clean up davinci mdio
      
      Introduce a resource managed devm_mdiobus_alloc[_size]()/devm_mdiobus_free()
      to automatically clean up MDIO bus alocations made by MDIO drivers,
      thus leading to simplified MDIO drivers code.
      
      Clean up Davinci MDIO driver and use new devm API.
      
      Changes in v3:
      - added devm_mdiobus_alloc_size() and
        devm_mdiobus_alloc() converted to be just a simple wrapper now.
      
      Changes in v2:
      - minor comments taken into account
      - additional patches added for cleaning up Davinci MDIO driver
      ====================
      
      Acked-by: Santosh Shilimkar<santosh.shilimkar@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3c4de5a0
    • Grygorii Strashko's avatar
      net: davinci_mdio: simplify IO memory mapping · 9728e1a7
      Grygorii Strashko authored
      Simplify IO memory mapping by using devm_ioremap_resource()
      which will do all errors handling and reporting for us.
      Acked-and-tested-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9728e1a7