Message ID | 20230215124305.76075-1-tirthendu.sarkar@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | i40e: support XDP multi-buffer | expand |
On 2/15/2023 4:42 AM, Tirthendu Sarkar wrote: > This patchset adds multi-buffer support for XDP. Tx side already has > support for multi-buffer. This patchset focuses on Rx side. The last > patch contains actual multi-buffer changes while the previous ones are > preparatory patches. > > On receiving the first buffer of a packet, xdp_buff is built and its > subsequent buffers are added to it as frags. While 'next_to_clean' keeps > pointing to the first descriptor, the newly introduced 'next_to_process' > keeps track of every descriptor for the packet. > > On receiving EOP buffer the XDP program is called and appropriate action > is taken (building skb for XDP_PASS, reusing page for XDP_DROP, adjusting > page offsets for XDP_{REDIRECT,TX}). > > The patchset also streamlines page offset adjustments for buffer reuse > to make it easier to post process the rx_buffers after running XDP prog. > > With this patchset there does not seem to be any performance degradation > for XDP_PASS and some improvement (~1% for XDP_TX, ~5% for XDP_DROP) when > measured using xdp_rxq_info program from samples/bpf/ for 64B packets. If you want this to go through Intel Wired LAN, can you base it off that tree [1]. This doesn't apply to next-queue/dev-queue. Thanks, Tony [1] https://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git/