From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4252834AB06 for ; Wed, 8 Apr 2026 18:49:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775674159; cv=none; b=J9T5XwBrTnx/dJUxGCRXx/sW17+483bVehECP3xatBhJhyR8EOcBGMkZ4TjGyDGtuwEVU25bKLfi+URdwdcTtZw46/uU5ra5YLuOWqSnqkGqW1YbyhMUs7o/jzuW77WLG83Wu7oGtrlXAMkvwncXQFCXSQLO6S3hryoHnmeb3Wc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775674159; c=relaxed/simple; bh=9nwjvMTURmEimYoM34lgEzzFizceHlzxg1S5VFy4ta8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=V4PVTy13bYiPUaHPrECoM+RybCwy1PvrypFLLc9yFKZV4AkQ56fcZN4MXHJ38zFdVrh3/JW1Hw/NNKU9o8LC/MLsNm8+Uh/iG9eNSNHlGxGuATHkI/HhUedEJ8WehW4EF2FhKxp4+ydM8TfvkrZH9j3j73Q0AQQWq/3kEME/x4M= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=dama.to; spf=none smtp.mailfrom=dama.to; dkim=pass (2048-bit key) header.d=dama-to.20251104.gappssmtp.com header.i=@dama-to.20251104.gappssmtp.com header.b=Gy/QgCHD; arc=none smtp.client-ip=209.85.216.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=dama.to Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=dama.to Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=dama-to.20251104.gappssmtp.com header.i=@dama-to.20251104.gappssmtp.com header.b="Gy/QgCHD" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-35d90833cacso111267a91.2 for ; Wed, 08 Apr 2026 11:49:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dama-to.20251104.gappssmtp.com; s=20251104; t=1775674157; x=1776278957; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:from:to:cc :subject:date:message-id:reply-to; bh=QgfDguXq0Z2TYsaZoeNncQSV60WxEaZyK7h7hjWHVek=; b=Gy/QgCHDqT6IpztP8PICkXJJMX8G29tToLzW1lzueFRKiC0YKkG4usTXlOVV3LSyAB vtltG8SaVE6t7ooJL2noHZNnjpKYYveumFcbdnV280g+tfa8SqAwH1q/jIxiu8V7nigE IJ3VtDGwBsf4BjNQOGKI0gw5bhptxpJz0s4gTbJWVS9JrklOnb2aBm3wv99jXb9rizjh p1A+Qbbu+HUvPMZNExoDRYdAQSvSMusYGRf3FiEFsaeNWKIv2vu5iqpRUn9nbM0LpzDu XKi/JRAborsTs2ZYYFLO9BPM1s30b3zl/qEgvl+BPM5I+FJOtUEdGp+M9rViM2t23XqI 5wPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775674157; x=1776278957; h=in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=QgfDguXq0Z2TYsaZoeNncQSV60WxEaZyK7h7hjWHVek=; b=kPv9hy3Fjo66LucFeRx5zwdR/3uaUlBJsx1gth1uwJScuN26VYVDpQyRWCciIswDht GtpKjKRGHEf+QAzwgMOff5aiuC9YMzhm2pTghfO28E3Ta9q97n+UIqqoy9qVBDGhcthR 7+d/hTpz3Rn7WwfZ+K7tPG08rI67Ysrof8Xu9EPRmyUaK1Douf5Z6hyKWEyCJxD7dwas +25RT/rZdWax/KQ18Jz/XUg4kCO+Q31i/E5S/2gWBSgM5SkLoRpiMzgLnLZy/GmvQp+U Ba+bbd73UDGvevUJKjLW5U8B+4Urwucva/WdCCxW+E09DaLDB5PX3wpdmmfd//KpnhS5 MY2Q== X-Forwarded-Encrypted: i=1; AJvYcCW7T+Qs0jw8nqCY5tau20qIiDO32K6yVJCFSA7g8p1h57nu3zAmFuCkv2j54jbgoybrxzkl9HNSX55Q+S0=@vger.kernel.org X-Gm-Message-State: AOJu0YyAWEAh1pkzPLbbA8sfBAyvefLWU+LxxEavz+MUMhTFwnBNi2kH N75OP35q5koVeyEfV32beVYj4mx+7MFSUK5rCMqAEMutM19k0A9uHl2wh58MYyVax3I= X-Gm-Gg: AeBDieue2y9kLUFjcyVcf1DILKDFkvS323YWkHQOESLGpFOGA0ak0THvAkPvyeWexiT TdnJ6WaKf5XiZSZI7+22QVG96ARuTxmEXAfhaEyStEM25QrYYj40Vs2n9gms6r8OM4J6WKL/PiN NV1EUcBPZMT1ktgsFLZiA6B5KidJLJpHXH0IbbvbG/JvJ0ovwh1BCOxL6kq2EW2St8sFEPx+zF9 fNNCzjAmMh1XyNjCtoOvQholR/nf1gwA7qeVBcwb6iDC0b3Sh3CM2GuFdy/nKhGQKfBQ9CVz6kR tit7RS0zeNLgVrj8YXYjRaC3LehawEo2Lh37GdoXh1g8CVqX1dPTpADaOB5rQWT8cL6iB0N1b6O GjBNFYsabkllSy6nvsjHC+jIM2qUnKiIcOYNtRSej6ueWGtvXUd1+xmRjZAWb9+1gl+ujHQdKep A6bW4= X-Received: by 2002:a17:90b:37d0:b0:35b:e51a:ec77 with SMTP id 98e67ed59e1d1-35e35969b39mr332551a91.16.1775674157566; Wed, 08 Apr 2026 11:49:17 -0700 (PDT) Received: from localhost ([2a03:2880:2ff:3::]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c76c6491fe0sm17475484a12.11.2026.04.08.11.49.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Apr 2026 11:49:17 -0700 (PDT) Date: Wed, 8 Apr 2026 11:49:16 -0700 From: Joe Damato To: Jakub Kicinski Cc: netdev@vger.kernel.org, Michael Chan , Pavan Chebbi , Andrew Lunn , "David S. Miller" , Eric Dumazet , Paolo Abeni , horms@kernel.org, linux-kernel@vger.kernel.org, leon@kernel.org Subject: Re: [net-next v9 07/10] net: bnxt: Implement software USO Message-ID: Mail-Followup-To: Joe Damato , Jakub Kicinski , netdev@vger.kernel.org, Michael Chan , Pavan Chebbi , Andrew Lunn , "David S. Miller" , Eric Dumazet , Paolo Abeni , horms@kernel.org, linux-kernel@vger.kernel.org, leon@kernel.org References: <20260407220313.3990909-1-joe@dama.to> <20260407220313.3990909-8-joe@dama.to> <20260408110652.652e4732@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260408110652.652e4732@kernel.org> On Wed, Apr 08, 2026 at 11:06:52AM -0700, Jakub Kicinski wrote: > On Wed, 8 Apr 2026 10:04:55 -0700 Joe Damato wrote: [...] > > 2. Or, keep the smaller buffer that we have now (BNXT_SW_USO_MAX_SEGS (64) > > * 256b = 16kb per ring) and fix the try_stop like this: > > > > +static inline u16 bnxt_inline_avail(struct bnxt_tx_ring_info *txr) > > +{ > > + return BNXT_SW_USO_MAX_SEGS - > > + (u16)(txr->tx_inline_prod - READ_ONCE(txr->tx_inline_cons)); > > +} > > + > > > > - slots = txr->tx_inline_prod - txr->tx_inline_cons; > > - slots = BNXT_SW_USO_MAX_SEGS - slots; > > - > > - if (unlikely(slots < num_segs)) { > > - netif_txq_try_stop(txq, slots, num_segs); > > + if (unlikely(bnxt_inline_avail(txr) < num_segs)) { > > + netif_txq_try_stop(txq, bnxt_inline_avail(txr), num_segs); > > I think option 2 makes sense. The point (which I think you got) is that > the condition must be evaluated after the memory barrier. > > Since the condition is repeated in your latest snippet - you can > probably use netif_txq_maybe_stop() ? Yea, that's better, thanks. I'll go with the inline wrapper above and: - slots = txr->tx_inline_prod - txr->tx_inline_cons; - slots = BNXT_SW_USO_MAX_SEGS - slots; - - if (unlikely(slots < num_segs)) { - netif_txq_try_stop(txq, slots, num_segs); + if (!netif_txq_maybe_stop(txq, bnxt_inline_avail(txr), + num_segs, num_segs)) return NETDEV_TX_BUSY;