1. 15 Jun, 2019 38 commits
  2. 14 Jun, 2019 2 commits
    • David S. Miller's avatar
      Merge branch 'net-mlx5-use-indirect-call-wrappers' · eea9e3a4
      David S. Miller authored
      Paolo Abeni says:
      
      ====================
      net/mlx5: use indirect call wrappers
      
      The mlx5_core driver uses several indirect calls in fast-path, some of them
      are invoked on each ingress packet, even for the XDP-only traffic.
      
      This series leverage the indirect call wrappers infrastructure the avoid
      the expansive RETPOLINE overhead for 2 indirect calls in fast-path.
      
      Each call is addressed on a different patch, plus we need to introduce a couple
      of additional helpers to cope with the higher number of possible direct-call
      alternatives.
      
      v2 -> v3:
       - do not add more INDIRECT_CALL_* macros
       - use only the direct calls always available regardless of
         the mlx5 build options in the last patch
      
      v1 -> v2:
       - update the direct call list and use a macro to define it,
         as per Saeed suggestion. An intermediated additional
         macro is needed to allow arg list expansion
       - patch 2/3 is unchanged, as the generated code looks better this way than
         with possible alternative (dropping BP hits)
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eea9e3a4
    • Paolo Abeni's avatar
      net/mlx5e: use indirect calls wrapper for the rx packet handler · 55f96872
      Paolo Abeni authored
      We can avoid another indirect call per packet wrapping the rx
      handler call with the proper helper.
      
      To ensure that even the last listed direct call experience
      measurable gain, despite the additional conditionals we must
      traverse before reaching it, I tested reversing the order of the
      listed options, with performance differences below noise level.
      
      Together with the previous indirect call patch, this gives
      ~6% performance improvement in raw UDP tput.
      
      v2 -> v3:
       - use only the direct calls always available regardless of
         the mlx5 build options
       - drop the direct call list macro, to keep the code as simple
         as possible for future rework
      
      v1 -> v2:
       - update the direct call list and use a macro to define it,
         as per Saeed suggestion. An intermediated additional
         macro is needed to allow arg list expansion
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Acked-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      55f96872