1. 16 Jan, 2017 7 commits
  2. 14 Jan, 2017 25 commits
  3. 13 Jan, 2017 5 commits
  4. 12 Jan, 2017 3 commits
    • Eric Dumazet's avatar
      ipv6: sr: static percpu allocation for hmac_ring · 717ac5ce
      Eric Dumazet authored
      Current allocations are not NUMA aware, and lack proper
      cleanup in case of error.
      
      It is perfectly fine to use static per cpu allocations for 256 bytes
      per cpu.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: David Lebrun <david.lebrun@uclouvain.be>
      Acked-by: default avatarDavid Lebrun <david.lebrun@uclouvain.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      717ac5ce
    • Nikolay Aleksandrov's avatar
      ipmr: improve hash scalability · 8fb472c0
      Nikolay Aleksandrov authored
      Recently we started using ipmr with thousands of entries and easily hit
      soft lockups on smaller devices. The reason is that the hash function
      uses the high order bits from the src and dst, but those don't change in
      many common cases, also the hash table  is only 64 elements so with
      thousands it doesn't scale at all.
      This patch migrates the hash table to rhashtable, and in particular the
      rhl interface which allows for duplicate elements to be chained because
      of the MFC_PROXY support (*,G; *,*,oif cases) which allows for multiple
      duplicate entries to be added with different interfaces (IMO wrong, but
      it's been in for a long time).
      
      And here are some results from tests I've run in a VM:
       mr_table size (default, allocated for all namespaces):
        Before                    After
         49304 bytes               2400 bytes
      
       Add 65000 routes (the diff is much larger on smaller devices):
        Before                    After
         1m42s                     58s
      
       Forwarding 256 byte packets with 65000 routes (test done in a VM):
        Before                    After
         3 Mbps / ~1465 pps        122 Mbps / ~59000 pps
      
      As a bonus we no longer see the soft lockups on smaller devices which
      showed up even with 2000 entries before.
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8fb472c0
    • Eric Dumazet's avatar
      secure_seq: fix sparse errors · c1ce1560
      Eric Dumazet authored
      Fixes following warnings :
      
      net/core/secure_seq.c:125:28: warning: incorrect type in argument 1
      (different base types)
      net/core/secure_seq.c:125:28:    expected unsigned int const [unsigned]
      [usertype] a
      net/core/secure_seq.c:125:28:    got restricted __be32 [usertype] saddr
      net/core/secure_seq.c:125:35: warning: incorrect type in argument 2
      (different base types)
      net/core/secure_seq.c:125:35:    expected unsigned int const [unsigned]
      [usertype] b
      net/core/secure_seq.c:125:35:    got restricted __be32 [usertype] daddr
      net/core/secure_seq.c:125:43: warning: cast from restricted __be16
      net/core/secure_seq.c:125:61: warning: restricted __be16 degrades to
      integer
      
      Fixes: 7cd23e53 ("secure_seq: use SipHash in place of MD5")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reviewed-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c1ce1560