1. 06 Dec, 2018 35 commits
  2. 05 Dec, 2018 5 commits
    • Jakub Kicinski's avatar
      net: documentation: build a directory structure for drivers · b255e500
      Jakub Kicinski authored
      Documentation/networking/ is full of cryptically named files with
      driver documentation.  This makes finding interesting information
      at a glance really hard.  Move all those files into a directory
      called device_drivers (since not all drivers are for device) and
      fix up references.
      
      RFC v0.1 -> RFC v1:
       - also add .txt suffix to the files which are missing it (Quentin)
      Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
      Reviewed-by: default avatarQuentin Monnet <quentin.monnet@netronome.com>
      Acked-by: default avatarDavid Ahern <dsahern@gmail.com>
      Acked-by: default avatarHenrik Austad <henrik@austad.us>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b255e500
    • Eric Dumazet's avatar
      tcp: reduce POLLOUT events caused by TCP_NOTSENT_LOWAT · a74f0fa0
      Eric Dumazet authored
      TCP_NOTSENT_LOWAT socket option or sysctl was added in linux-3.12
      as a step to enable bigger tcp sndbuf limits.
      
      It works reasonably well, but the following happens :
      
      Once the limit is reached, TCP stack generates
      an [E]POLLOUT event for every incoming ACK packet.
      
      This causes a high number of context switches.
      
      This patch implements the strategy David Miller added
      in sock_def_write_space() :
      
       - If TCP socket has a notsent_lowat constraint of X bytes,
         allow sendmsg() to fill up to X bytes, but send [E]POLLOUT
         only if number of notsent bytes is below X/2
      
      This considerably reduces TCP_NOTSENT_LOWAT overhead,
      while allowing to keep the pipe full.
      
      Tested:
       100 ms RTT netem testbed between A and B, 100 concurrent TCP_STREAM
      
      A:/# cat /proc/sys/net/ipv4/tcp_wmem
      4096	262144	64000000
      A:/# super_netperf 100 -H B -l 1000 -- -K bbr &
      
      A:/# grep TCP /proc/net/sockstat
      TCP: inuse 203 orphan 0 tw 19 alloc 414 mem 1364904 # This is about 54 MB of memory per flow :/
      
      A:/# vmstat 5 5
      procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
       r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
       0  0      0 256220672  13532 694976    0    0    10     0   28   14  0  1 99  0  0
       2  0      0 256320016  13532 698480    0    0   512     0 715901 5927  0 10 90  0  0
       0  0      0 256197232  13532 700992    0    0   735    13 771161 5849  0 11 89  0  0
       1  0      0 256233824  13532 703320    0    0   512    23 719650 6635  0 11 89  0  0
       2  0      0 256226880  13532 705780    0    0   642     4 775650 6009  0 12 88  0  0
      
      A:/# echo 2097152 >/proc/sys/net/ipv4/tcp_notsent_lowat
      
      A:/# grep TCP /proc/net/sockstat
      TCP: inuse 203 orphan 0 tw 19 alloc 414 mem 86411 # 3.5 MB per flow
      
      A:/# vmstat 5 5  # check that context switches have not inflated too much.
      procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
       r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
       2  0      0 260386512  13592 662148    0    0    10     0   17   14  0  1 99  0  0
       0  0      0 260519680  13592 604184    0    0   512    13 726843 12424  0 10 90  0  0
       1  1      0 260435424  13592 598360    0    0   512    25 764645 12925  0 10 90  0  0
       1  0      0 260855392  13592 578380    0    0   512     7 722943 13624  0 11 88  0  0
       1  0      0 260445008  13592 601176    0    0   614    34 772288 14317  0 10 90  0  0
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a74f0fa0
    • David S. Miller's avatar
      Merge branch 'act_tunnel_key-support-key-less-tunnels' · 4dc88ce6
      David S. Miller authored
      Or Gerlitz says:
      
      ====================
      net/sched: act_tunnel_key: support key-less tunnels
      
      This short series from Adi Nissim allows to support key-less tunnels
      by the tc tunnel key actions, which is needed for some GRE use-cases.
      
      changes from V0:
       - addresses build warning spotted by kbuild, make sure to always init
         to zero the tunnel key
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4dc88ce6
    • Adi Nissim's avatar
      net/sched: act_tunnel_key: Don't dump dst port if it wasn't set · 1c25324c
      Adi Nissim authored
      It's possible to set a tunnel without a destination port. However,
      on dump(), a zero dst port is returned to user space even if it was not
      set, fix that.
      
      Note that so far it wasn't required, b/c key less tunnels were not
      supported and the UDP tunnels do require destination port.
      Signed-off-by: default avatarAdi Nissim <adin@mellanox.com>
      Reviewed-by: default avatarOz Shlomo <ozsh@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1c25324c
    • Adi Nissim's avatar
      net/sched: act_tunnel_key: Allow key-less tunnels · 80ef0f22
      Adi Nissim authored
      Allow setting a tunnel without a tunnel key. This is required for
      tunneling protocols, such as GRE, that define the key as an optional
      field.
      Signed-off-by: default avatarAdi Nissim <adin@mellanox.com>
      Acked-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Reviewed-by: default avatarOz Shlomo <ozsh@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      80ef0f22