netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 net-next 0/5] dpaa2-eth: add support for xdp bulk enqueue
@ 2020-04-22 12:05 Ioana Ciornei
  2020-04-22 12:05 ` [PATCH v2 net-next 1/5] xdp: export the DEV_MAP_BULK_SIZE macro Ioana Ciornei
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Ioana Ciornei @ 2020-04-22 12:05 UTC (permalink / raw)
  To: davem, netdev; +Cc: brouer, Ioana Ciornei

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()

Ioana Ciornei (5):
  xdp: export the DEV_MAP_BULK_SIZE macro
  dpaa2-eth: return num_enqueued frames from enqueue callback
  dpaa2-eth: use the bulk ring mode enqueue interface
  dpaa2-eth: split the .ndo_xdp_xmit callback into two stages
  dpaa2-eth: use bulk enqueue in .ndo_xdp_xmit

 .../net/ethernet/freescale/dpaa2/dpaa2-eth.c  | 136 ++++++++++--------
 .../net/ethernet/freescale/dpaa2/dpaa2-eth.h  |   8 +-
 include/net/xdp.h                             |   2 +
 kernel/bpf/devmap.c                           |   1 -
 4 files changed, 87 insertions(+), 60 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-04-23  3:11 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-22 12:05 [PATCH v2 net-next 0/5] dpaa2-eth: add support for xdp bulk enqueue Ioana Ciornei
2020-04-22 12:05 ` [PATCH v2 net-next 1/5] xdp: export the DEV_MAP_BULK_SIZE macro Ioana Ciornei
2020-04-22 13:03   ` Jesper Dangaard Brouer
2020-04-22 12:05 ` [PATCH v2 net-next 2/5] dpaa2-eth: return num_enqueued frames from enqueue callback Ioana Ciornei
2020-04-22 12:05 ` [PATCH v2 net-next 3/5] dpaa2-eth: use the bulk ring mode enqueue interface Ioana Ciornei
2020-04-22 12:05 ` [PATCH v2 net-next 4/5] dpaa2-eth: split the .ndo_xdp_xmit callback into two stages Ioana Ciornei
2020-04-22 13:54   ` Jesper Dangaard Brouer
2020-04-22 12:05 ` [PATCH v2 net-next 5/5] dpaa2-eth: use bulk enqueue in .ndo_xdp_xmit Ioana Ciornei
2020-04-22 13:51   ` Jesper Dangaard Brouer
2020-04-23  3:11 ` [PATCH v2 net-next 0/5] dpaa2-eth: add support for xdp bulk enqueue David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).