1. 01 Oct, 2018 3 commits
    • Gavi Teitz's avatar
      net/mlx5e: Enable stateless offloads for VF representor netdevs · dabeb3b0
      Gavi Teitz authored
      Enabled checksum and TSO offloads for the representors, in
      order to increase their performance, which is required to
      increase the performance of flows that cannot be offloaded.
      
      Checksum offloads contribute to a general acceleration of all
      traffic (to around 150%), whereas the TSO offload contributes
      to a prominent acceleration of the representor's TX for traffic
      flows with larger than MTU sized packets (to around 200%). This
      is the usual case for TCP streams, as the PF, which serves as
      the uplink representor, and the VF representors employ GRO before
      forwarding the packets to the representor.
      
      GRO was enabled implicitly for the representors beforehand, and
      is explicitly enabled here to ensure that the representors preserve
      the performance boost it provides (of around 200%) when working in
      tandem with the TSO offload by the forwardee, which is the standard
      case as both the PF and the VF representors employ HW TSO.
      
      The impact of these changes can be seen in the following
      measurements taken on a setup of a VM over a VF, connected
      to OVS via the VF representor, to an external host:
      
      Before current changes:
                           TCP Throughput [Gb/s]
      External host to VM         ~ 10.5
      VM to external host         ~ 23.5
      
      With just checksum offloads enabled:
                           TCP Throughput [Gb/s]
      External host to VM         ~ 14.9
      VM to external host         ~ 28.5
      
      With the TSO offload also enabled:
                           TCP Throughput [Gb/s]
      External host to VM         ~ 30.5
      Signed-off-by: default avatarGavi Teitz <gavi@mellanox.com>
      Reviewed-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      dabeb3b0
    • Gavi Teitz's avatar
      net/mlx5e: Change VF representors' RQ type · 749359f4
      Gavi Teitz authored
      The representors' RQ size was not large enough for them to achieve
      high enough performance, and therefore needed to be enlarged, while
      suffering a minimum hit to its memory usage. To achieve this the
      representors RQ size was increased, and its type was changed to be a
      striding RQ if it is supported.
      
      Towards that goal the following changes were made:
      
      * Extracted the sequence for setting the standard netdev's RQ parmas
        into a function
      
      * Replaced the sequence for setting the representor's RQ params with
        the standard sequence
      
      The impact of this change can be seen in the following measurements
      taken on a setup of a VM over a VF, connected to OVS via the VF
      representor, to an external host:
      
      Before current change:
                           TCP Throughput [Gb/s]
      VM to external host         ~  7.2
      
      With the current change (measured with a striding RQ):
                           TCP Throughput [Gb/s]
      VM to external host         ~ 23.5
      
      Each representor now consumes 2 [MB] of memory for its packet
      buffers.
      Signed-off-by: default avatarGavi Teitz <gavi@mellanox.com>
      Reviewed-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      749359f4
    • Or Gerlitz's avatar
      net/mlx5e: Ethtool steering, Support masks for l3/l4 filters · 3a95e0cc
      Or Gerlitz authored
      Allow using partial masks for L3 addresses and L4 ports across
      the place.
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      3a95e0cc
  2. 29 Sep, 2018 11 commits
  3. 28 Sep, 2018 26 commits