[Intel-wired-lan] [PATCH v6 8/9] igc: Enable RX via AF_XDP zero-copy
Dvora Fuxbrumer
dvorax.fuxbrumer at linux.intel.com
Thu May 20 07:00:12 UTC 2021
On 23/04/2021 09:25, Jithu Joseph wrote:
> From: Andre Guedes <andre.guedes at intel.com>
>
> Add support for receiving packets via AF_XDP zero-copy mechanism.
>
> Add a new flag to 'enum igc_ring_flags_t' to indicate the ring has
> AF_XDP zero-copy enabled so proper ring setup is carried out during ring
> configuration in igc_configure_rx_ring().
>
> RX buffers can now be allocated via the shared pages mechanism (default
> behavior of the driver) or via xsk pool (when AF_XDP zero-copy is
> enabled) so a union is added to the 'struct igc_rx_buffer' to cover both
> cases.
>
> When AF_XDP zero-copy is enabled, rx buffers are allocated from the xsk
> pool using the new helper igc_alloc_rx_buffers_zc() which is the
> counterpart of igc_alloc_rx_buffers().
>
> Likewise other Intel drivers that support AF_XDP zero-copy, in igc we
> have a dedicated path for cleaning up rx irqs when zero-copy is enabled.
> This avoids adding too many checks within igc_clean_rx_irq(), resulting
> in a more readable and efficient code since this function is called from
> the hot-path of the driver.
>
> Signed-off-by: Andre Guedes <andre.guedes at intel.com>
> Signed-off-by: Vedang Patel <vedang.patel at intel.com>
> Signed-off-by: Jithu Joseph <jithu.joseph at intel.com>
> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski at intel.com>
> ---
> drivers/net/ethernet/intel/igc/igc.h | 22 +-
> drivers/net/ethernet/intel/igc/igc_base.h | 1 +
> drivers/net/ethernet/intel/igc/igc_main.c | 344 +++++++++++++++++++++-
> drivers/net/ethernet/intel/igc/igc_xdp.c | 100 +++++++
> drivers/net/ethernet/intel/igc/igc_xdp.h | 2 +
> 5 files changed, 450 insertions(+), 19 deletions(-)
>
Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer at linux.intel.com>
More information about the Intel-wired-lan
mailing list