1. 18 Dec, 2018 2 commits
    • Michael Chan's avatar
      bnxt_en: Store the maximum NQs available on the PF. · f7588cd8
      Michael Chan authored
      The PF has a pool of NQs and MSIX vectors assigned to it based on
      NVRAM configurations.  The number of usable MSIX vectors on the PF
      is the minimum of the NQs and MSIX vectors.  Any excess NQs without
      associated MSIX may be used for the VFs, so we need to store this
      max_nqs value.  max_nqs minus the NQs used by the PF will be the
      available NQs for the VFs.
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f7588cd8
    • Stefano Brivio's avatar
      fou: Prevent unbounded recursion in GUE error handler · 11789039
      Stefano Brivio authored
      Handling exceptions for direct UDP encapsulation in GUE (that is,
      UDP-in-UDP) leads to unbounded recursion in the GUE exception handler,
      syzbot reported.
      
      While draft-ietf-intarea-gue-06 doesn't explicitly forbid direct
      encapsulation of UDP in GUE, it probably doesn't make sense to set up GUE
      this way, and it's currently not even possible to configure this.
      
      Skip exception handling if the GUE proto/ctype field is set to the UDP
      protocol number. Should we need to handle exceptions for UDP-in-GUE one
      day, we might need to either explicitly set a bound for recursion, or
      implement a special iterative handling for these cases.
      
      Reported-and-tested-by: syzbot+43f6755d1c2e62743468@syzkaller.appspotmail.com
      Fixes: b8a51b38 ("fou, fou6: ICMP error handlers for FoU and GUE")
      Signed-off-by: default avatarStefano Brivio <sbrivio@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      11789039
  2. 17 Dec, 2018 6 commits
  3. 16 Dec, 2018 28 commits
  4. 15 Dec, 2018 4 commits
    • David S. Miller's avatar
      Merge tag 'mlx5e-updates-2018-12-14' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · 63de273f
      David S. Miller authored
      Saeed Mahameed says:
      
      ====================
      mlx5e-updates-2018-12-14 (VF Lag)
      
      From Aviv Heller,
      
      Subsequent patches introduce VF LAG, which provdies load-balancing and
      high-availability capabilities for VFs associated with different
      physical ports of the same Connect-X card.
      
      This series consists of the following:
       - mlx5 devcom, driver infrastructure that facilitates operations that involve
         both core devices (physical functions) of the same card, to synchronize and
         communicate between two driver instances of the same card.
       - Infrastructure for TC rule duplication.
       - Changes to LAG logic to enable its use when SR-IOV is enabled
       - PFs in switchdev mode is the only mode currently supported.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      63de273f
    • David S. Miller's avatar
      Merge branch 'net-mitigate-retpoline-overhead' · bedf3b33
      David S. Miller authored
      Paolo Abeni says:
      
      ====================
      net: mitigate retpoline overhead
      
      The spectre v2 counter-measures, aka retpolines, are a source of measurable
      overhead[1]. We can partially address that when the function pointer refers to
      a builtin symbol resorting to a list of tests vs well-known builtin function and
      direct calls.
      
      Experimental results show that replacing a single indirect call via
      retpoline with several branches and a direct call gives performance gains
      even when multiple branches are added - 5 or more, as reported in [2].
      
      This may lead to some uglification around the indirect calls. In netconf 2018
      Eric Dumazet described a technique to hide the most relevant part of the needed
      boilerplate with some macro help.
      
      This series is a [re-]implementation of such idea, exposing the introduced
      helpers in a new header file. They are later leveraged to avoid the indirect
      call overhead in the GRO path, when possible.
      
      Overall this gives > 10% performance improvement for UDP GRO benchmark and
      smaller but measurable for TCP syn flood.
      
      The added infra can be used in follow-up patches to cope with retpoline overhead
      in other points of the networking stack (e.g. at the qdisc layer) and possibly
      even in other subsystems.
      
      v2  -> v3:
       - fix build error with CONFIG_IPV6=m
      
      v1  -> v2:
       - list explicitly the builtin function names in INDIRECT_CALL_*(),
         as suggested by Ed Cree
       - expand the recipients list
      
      rfc -> v1:
       - use branch prediction hints, as suggested by Eric
      
      [1] http://vger.kernel.org/netconf2018_files/PaoloAbeni_netconf2018.pdf
      [2] https://linuxplumbersconf.org/event/2/contributions/99/attachments/98/117/lpc18_paper_af_xdp_perf-v2.pdf
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bedf3b33
    • Paolo Abeni's avatar
      udp: use indirect call wrappers for GRO socket lookup · 4f24ed77
      Paolo Abeni authored
      This avoids another indirect call for UDP GRO. Again, the test
      for the IPv6 variant is performed first.
      
      v1 -> v2:
       - adapted to INDIRECT_CALL_ changes
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4f24ed77
    • Paolo Abeni's avatar
      net: use indirect call wrappers at GRO transport layer · 028e0a47
      Paolo Abeni authored
      This avoids an indirect call in the receive path for TCP and UDP
      packets. TCP takes precedence on UDP, so that we have a single
      additional conditional in the common case.
      
      When IPV6 is build as module, all gro symbols except UDPv6 are
      builtin, while the latter belong to the ipv6 module, so we
      need some special care.
      
      v1 -> v2:
       - adapted to INDIRECT_CALL_ changes
      v2 -> v3:
       - fix build issue with CONFIG_IPV6=m
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      028e0a47