]> git.baikalelectronics.ru Git - kernel.git/commit
i40e: clean zero-copy XDP Rx ring on shutdown/reset
authorBjörn Töpel <bjorn.topel@intel.com>
Fri, 7 Sep 2018 08:18:47 +0000 (10:18 +0200)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 25 Sep 2018 20:15:16 +0000 (13:15 -0700)
commit8632b5a032cc020d1dce7b8930aab7cc542c0014
tree73b00ba78878f326e111c092c94f0d3200a4957c
parent601e7f9e36739578538f250c5f4e7d188728ce08
i40e: clean zero-copy XDP Rx ring on shutdown/reset

Outstanding Rx descriptors are temporarily stored on a stash/reuse
queue. When/if the HW rings comes up again, entries from the stash are
used to re-populate the ring.

The latter required some restructuring of the allocation scheme for
the AF_XDP zero-copy implementation. There is now a fast, and a slow
allocation. The "fast allocation" is used from the fast-path and
obtains free buffers from the fill ring and the internal recycle
mechanism. The "slow allocation" is only used in ring setup, and
obtains buffers from the fill ring and the stash (if any).

Signed-off-by: Björn Töpel <bjorn.topel@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_txrx.c
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
drivers/net/ethernet/intel/i40e/i40e_xsk.c