[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