1. 24 4月, 2020 37 次提交
  2. 23 4月, 2020 3 次提交
    • D
      Merge branch 'dpaa2-eth-add-support-for-xdp-bulk-enqueue' · 30685b2a
      David S. Miller 提交于
      Ioana Ciornei says:
      
      ====================
      dpaa2-eth: add support for xdp bulk enqueue
      
      The first patch moves the DEV_MAP_BULK_SIZE macro into the xdp.h header
      file so that drivers can take advantage of it and use it.
      
      The following 3 patches are there to setup the scene for using the bulk
      enqueue feature.  First of all, the prototype of the enqueue function is
      changed so that it returns the number of enqueued frames. Second, the
      bulk enqueue interface is used but without any functional changes, still
      one frame at a time is enqueued.  Third, the .ndo_xdp_xmit callback is
      split into two stages, create all FDs for the xdp_frames received and
      then enqueue them.
      
      The last patch of the series builds on top of the others and instead of
      issuing an enqueue operation for each FD it issues a bulk enqueue call
      for as many frames as possible. This is repeated until all frames are
      enqueued or the maximum number of retries is hit. We do not use the
      XDP_XMIT_FLUSH flag since the architecture is not capable to store all
      frames dequeued in a NAPI cycle, instead we send out right away all
      frames received in a .ndo_xdp_xmit call.
      
      Changes in v2:
       - statically allocate an array of dpaa2_fd by frame queue
       - use the DEV_MAP_BULK_SIZE as the maximum number of xdp_frames
         received in .ndo_xdp_xmit()
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      30685b2a
    • I
      dpaa2-eth: use bulk enqueue in .ndo_xdp_xmit · 8665d978
      Ioana Ciornei 提交于
      Take advantage of the bulk enqueue feature in .ndo_xdp_xmit.
      We cannot use the XDP_XMIT_FLUSH since the architecture is not capable
      to store all the frames dequeued in a NAPI cycle so we instead are
      enqueueing all the frames received in a ndo_xdp_xmit call right away.
      
      After setting up all FDs for the xdp_frames received, enqueue multiple
      frames at a time until all are sent or the maximum number of retries is
      hit.
      Signed-off-by: NIoana Ciornei <ioana.ciornei@nxp.com>
      Acked-by: NJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8665d978
    • I
      dpaa2-eth: split the .ndo_xdp_xmit callback into two stages · 6aa40b9e
      Ioana Ciornei 提交于
      Instead of having a function that both creates a frame descriptor from
      an xdp_frame and enqueues it, split this into two stages.
      Add the dpaa2_eth_xdp_create_fd that just transforms an xdp_frame into a
      FD while the actual enqueue callback is called directly from the ndo for
      each frame.
      This is particulary useful in conjunction with bulk enqueue.
      Signed-off-by: NIoana Ciornei <ioana.ciornei@nxp.com>
      Acked-by: NJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6aa40b9e