1. 05 Aug, 2024 22 commits
  2. 04 Aug, 2024 3 commits
  3. 03 Aug, 2024 12 commits
  4. 02 Aug, 2024 3 commits
    • Jakub Kicinski's avatar
      Merge branch 'ibmveth-rr-performance' · b71441b7
      Jakub Kicinski authored
      Nick Child says:
      
      ====================
      ibmveth RR performance
      
      This patchset aims to increase the ibmveth drivers small packet
      request response rate.
      
      These 2 patches address:
      1. NAPI rescheduling technique
      2. Driver-side processing of small packets
      
      Testing over several netperf tcp_rr connections, we saw a
      30% increase in transactions per second. No regressions
      were observed in other workloads.
      ====================
      
      Link: https://patch.msgid.link/20240801211215.128101-1-nnac123@linux.ibm.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b71441b7
    • Nick Child's avatar
      ibmveth: Recycle buffers during replenish phase · b5381a55
      Nick Child authored
      When the length of a packet is under the rx_copybreak threshold, the
      buffer is copied into a new skb and sent up the stack. This allows the
      dma mapped memory to be recycled back to FW.
      
      Previously, the reuse of the DMA space was handled immediately.
      This means that further packet processing has to wait until
      h_add_logical_lan finishes for this packet.
      
      Therefore, when reusing a packet, offload the hcall to the replenish
      function. As a result, much of the shared logic between the recycle and
      replenish functions can be removed.
      
      This change increases TCP_RR packet rate by another 15% (370k to 430k
      txns). We can see the ftrace data supports this:
      PREV: ibmveth_poll = 8078553.0 us / 190999.0 hits = AVG 42.3 us
      NEW:  ibmveth_poll = 7632787.0 us / 224060.0 hits = AVG 34.07 us
      Signed-off-by: default avatarNick Child <nnac123@linux.ibm.com>
      Reviewed-by: default avatarShannon Nelson <shannon.nelson@amd.com>
      Link: https://patch.msgid.link/20240801211215.128101-3-nnac123@linux.ibm.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b5381a55
    • Nick Child's avatar
      ibmveth: Optimize poll rescheduling process · f128c7cf
      Nick Child authored
      When the ibmveth driver processes less than the budget, it must call
      napi_complete_done() to release the instance. This function will
      return false if the driver should avoid rearming interrupts.
      Previously, the driver was ignoring the return code of
      napi_complete_done(). As a result, there were unnecessary calls to
      enable the veth irq.
      Therefore, use the return code napi_complete_done() to determine if
      irq rearm is necessary.
      
      Additionally, in the event that new data is received immediately after
      rearming interrupts, rather than just rescheduling napi, also jump
      back to the poll processing loop since we are already in the poll
      function (and know that we did not expense all of budget).
      
      This slight tweak results in a 15% increase in TCP_RR transaction rate
      (320k to 370k txns). We can see the ftrace data supports this:
      PREV: ibmveth_poll = 8818014.0 us / 182802.0 hits = AVG 48.24
      NEW:  ibmveth_poll = 8082398.0 us / 191413.0 hits = AVG 42.22
      Signed-off-by: default avatarNick Child <nnac123@linux.ibm.com>
      Reviewed-by: default avatarShannon Nelson <shannon.nelson@amd.com>
      Link: https://patch.msgid.link/20240801211215.128101-2-nnac123@linux.ibm.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f128c7cf