All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] [PATCH v6 0/9] igc: Add support for AF_XDP zero-copy
@ 2021-04-23  6:25 Jithu Joseph
  2021-04-23  6:25 ` [Intel-wired-lan] [PATCH v6 1/9] igc: Move igc_xdp_is_enabled() Jithu Joseph
                   ` (8 more replies)
  0 siblings, 9 replies; 19+ messages in thread
From: Jithu Joseph @ 2021-04-23  6:25 UTC (permalink / raw)
  To: intel-wired-lan

Hi all,

This is the sixth version of this series which adds AF_XDP zero-copy support
to igc driver.

This revision addresses review comments from Jakub Kicinski.

changes in v6:
    Patch 8/9 - "igc: Enable RX via AF_XDP zero-copy"
      * In XDP_PASS flow, copy metadata too into the skb.
      * When h/w timestamp is added by the NIC, after copying it into
        a local variable, update xdp_buff->data_meta so that
        metadata length when XDP program is called 0.
      * In igc_xdp_enable_pool(), call xsk_pool_dma_unmap() on
        failure.


Known issues (carried from v3):
    When an XDP application is running in Tx-Only mode with Zero-Copy
    enabled, it is not expected to add the frames to the fill-queue. I have
    noticed the following two issues in this scenario:
    - If XDP_USE_NEED_WAKEUP flag is not set by application, igc_poll()
      will go into infinite loop because the buffer allocation resulting
      in igc_clean_rx_irq_zc() indicating that all work is not done and NAPI
      should keep polling. This does not occur if XDP_USE_NEED_WAKEUP
      flag is set.
    - Since there are no buffers allocated by userspace for the fill
      queue, there is no memory allocated for the NIC to copy the data
      to. If the packet received is destined to the hardware queue where
      XDP application is running, no packets are received even on other
      queues.
    Both these issues can be mitigated by adding a few frames to the
    fill queue. The second issue can also be mitigated by making sure no
    packets are being received on the hardware queue where Rx is running.

v5 is here:

    https://patchwork.ozlabs.org/project/intel-wired-lan/cover/20210226002308.2348-1-jithu.joseph at intel.com/

v4 is here:

    https://patchwork.ozlabs.org/project/intel-wired-lan/cover/20210222090936.6768-1-jithu.joseph at intel.com/

v3 is here:

    https://patchwork.ozlabs.org/project/intel-wired-lan/cover/20210209024243.23406-1-vedang.patel at intel.com/

v2 is here:

    https://patchwork.ozlabs.org/project/intel-wired-lan/cover/20201223203705.78705-1-andre.guedes at intel.com/

v1 is here:

    https://patchwork.ozlabs.org/project/intel-wired-lan/cover/20201217202415.77891-1-andre.guedes at intel.com/

Andre Guedes (9):
  igc: Move igc_xdp_is_enabled()
  igc: Refactor __igc_xdp_run_prog()
  igc: Refactor igc_clean_rx_ring()
  igc: Refactor XDP rxq info registration
  igc: Introduce TX/RX stats helpers
  igc: Introduce igc_unmap_tx_buffer() helper
  igc: Replace IGC_TX_FLAGS_XDP flag by an enum
  igc: Enable RX via AF_XDP zero-copy
  igc: Enable TX via AF_XDP zero-copy

 drivers/net/ethernet/intel/igc/igc.h      |  33 +-
 drivers/net/ethernet/intel/igc/igc_base.h |   2 +
 drivers/net/ethernet/intel/igc/igc_main.c | 658 ++++++++++++++++++----
 drivers/net/ethernet/intel/igc/igc_xdp.c  | 109 +++-
 drivers/net/ethernet/intel/igc/igc_xdp.h  |   8 +-
 5 files changed, 683 insertions(+), 127 deletions(-)

-- 
2.17.1


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

end of thread, other threads:[~2021-05-20  7:00 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-23  6:25 [Intel-wired-lan] [PATCH v6 0/9] igc: Add support for AF_XDP zero-copy Jithu Joseph
2021-04-23  6:25 ` [Intel-wired-lan] [PATCH v6 1/9] igc: Move igc_xdp_is_enabled() Jithu Joseph
2021-05-20  6:55   ` Dvora Fuxbrumer
2021-04-23  6:25 ` [Intel-wired-lan] [PATCH v6 2/9] igc: Refactor __igc_xdp_run_prog() Jithu Joseph
2021-05-20  6:56   ` Dvora Fuxbrumer
2021-04-23  6:25 ` [Intel-wired-lan] [PATCH v6 3/9] igc: Refactor igc_clean_rx_ring() Jithu Joseph
2021-05-20  6:57   ` Dvora Fuxbrumer
2021-04-23  6:25 ` [Intel-wired-lan] [PATCH v6 4/9] igc: Refactor XDP rxq info registration Jithu Joseph
2021-05-20  6:57   ` Dvora Fuxbrumer
2021-04-23  6:25 ` [Intel-wired-lan] [PATCH v6 5/9] igc: Introduce TX/RX stats helpers Jithu Joseph
2021-05-20  6:58   ` Dvora Fuxbrumer
2021-04-23  6:25 ` [Intel-wired-lan] [PATCH v6 6/9] igc: Introduce igc_unmap_tx_buffer() helper Jithu Joseph
2021-05-20  6:58   ` Dvora Fuxbrumer
2021-04-23  6:25 ` [Intel-wired-lan] [PATCH v6 7/9] igc: Replace IGC_TX_FLAGS_XDP flag by an enum Jithu Joseph
2021-05-20  6:59   ` Dvora Fuxbrumer
2021-04-23  6:25 ` [Intel-wired-lan] [PATCH v6 8/9] igc: Enable RX via AF_XDP zero-copy Jithu Joseph
2021-05-20  7:00   ` Dvora Fuxbrumer
2021-04-23  6:25 ` [Intel-wired-lan] [PATCH v6 9/9] igc: Enable TX " Jithu Joseph
2021-05-20  7:00   ` Dvora Fuxbrumer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.