Skip to content
  • Tariq Toukan's avatar
    net/mlx5e: Introduce RX Page-Reuse · accd5883
    Tariq Toukan authored
    
    
    Introduce a Page-Reuse mechanism in non-Striding RQ RX datapath.
    
    A WQE (RX descriptor) buffer is a page, that in most cases was fully
    wasted on a packet that is much smaller, requiring a new page for
    the next round.
    
    In this patch, we implement a page-reuse mechanism, that resembles a
    `SW Striding RQ`.
    We allow the WQE to reuse its allocated page as much as it could,
    until the page is fully consumed.  In each round, the WQE is capable
    of receiving packet of maximal size (MTU). Yet, upon the reception of
    a packet, the WQE knows the actual packet size, and consumes the exact
    amount of memory needed to build a linear SKB. Then, it updates the
    buffer pointer within the page accordingly, for the next round.
    
    Feature is mutually exclusive with XDP (packet-per-page)
    and LRO (session size is a power of two, needs unused page).
    
    Performance tests:
    iperf tcp tests show huge gain:
    
    --------------------------------------------
    num streams | BW before | BW after | ratio |
              1 |      22.2 |     30.9 | 1.39x |
              8 |      64.2 |     93.6 | 1.46x |
             64 |      56.7 |     91.4 | 1.61x |
    --------------------------------------------
    
    Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    accd5883