lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230210170618.1973430-1-alexandr.lobakin@intel.com>
Date:   Fri, 10 Feb 2023 18:06:12 +0100
From:   Alexander Lobakin <alexandr.lobakin@...el.com>
To:     Alexei Starovoitov <ast@...nel.org>,
        Daniel Borkmann <daniel@...earbox.net>,
        Andrii Nakryiko <andrii@...nel.org>
Cc:     Alexander Lobakin <alexandr.lobakin@...el.com>,
        Maciej Fijalkowski <maciej.fijalkowski@...el.com>,
        Magnus Karlsson <magnus.karlsson@...el.com>,
        Toke Høiland-Jørgensen <toke@...hat.com>,
        Martin KaFai Lau <martin.lau@...ux.dev>,
        Song Liu <song@...nel.org>,
        Jesper Dangaard Brouer <hawk@...nel.org>,
        Jakub Kicinski <kuba@...nel.org>, bpf@...r.kernel.org,
        netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH bpf-next 0/6] ice: post-mbuf fixes

The set grew from the poor performance of %BPF_F_TEST_XDP_LIVE_FRAMES
when the ice-backed device is a sender. Initially there were around
3.3 Mpps / thread, while I have 5.5 on skb-based pktgen...

After fixing 0005 (0004 is a prereq for it) first (strange thing nobody
noticed that earlier), I started catching random OOMs. This is how 0002
(and partially 0001) appeared.
0003 is a suggestion from Maciej to not waste time on refactoring dead
lines. 0006 is a "cherry on top" to get away with the final 6.7 Mpps.
4.5 of 6 are fixes, but only the first three are tagged, since it then
starts being tricky. I may backport them manually later on.

TL;DR for the series is that shortcuts are good, but only as long as
they don't make the driver miss important things. %XDP_TX is purely
driver-local, however .ndo_xdp_xmit() is not, and sometimes assumptions
can be unsafe there.

With that series and also one core code patch[0], "live frames" and
xdp-trafficgen are now safe'n'fast on ice (probably more to come).

[0] https://lore.kernel.org/all/20230209172827.874728-1-alexandr.lobakin@intel.com
---
Goes to directly to bpf-next as touches the recently added/changed code.

Alexander Lobakin (6):
  ice: fix ice_tx_ring::xdp_tx_active underflow
  ice: fix XDP Tx ring overrun
  ice: remove two impossible branches on XDP Tx cleaning
  ice: robustify cleaning/completing XDP Tx buffers
  ice: fix freeing XDP frames backed by Page Pool
  ice: micro-optimize .ndo_xdp_xmit() path

 drivers/net/ethernet/intel/ice/ice_txrx.c     | 67 +++++++++-----
 drivers/net/ethernet/intel/ice/ice_txrx.h     | 37 ++++++--
 drivers/net/ethernet/intel/ice/ice_txrx_lib.c | 88 ++++++++++++-------
 drivers/net/ethernet/intel/ice/ice_txrx_lib.h |  4 +-
 drivers/net/ethernet/intel/ice/ice_xsk.c      | 12 +--
 5 files changed, 136 insertions(+), 72 deletions(-)

-- 
2.39.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ