mbox series

[net-next,0/9,pull,request] idpf: XDP chapter II: convert Tx completion to libeth

Message ID 20240814173309.4166149-1-anthony.l.nguyen@intel.com (mailing list archive)
Headers show
Series idpf: XDP chapter II: convert Tx completion to libeth | expand

Message

Tony Nguyen Aug. 14, 2024, 5:32 p.m. UTC
Alexander Lobakin says:

XDP for idpf is currently 5 chapters:
* convert Rx to libeth;
* convert Tx completion and stats to libeth (this);
* generic XDP and XSk code changes;
* actual XDP for idpf via libeth_xdp;
* XSk for idpf (^).

Part II does the following:
* introduces generic libeth per-queue stats infra;
* adds generic libeth Tx completion routines;
* converts idpf to use generic libeth Tx comp routines;
* fixes Tx queue timeouts and robustifies Tx completion in general;
* fixes Tx event/descriptor flushes (writebacks);
* fully switches idpf per-queue stats to libeth.

Most idpf patches again remove more lines than adds.
The perf difference is not visible by eye in common scenarios, but
the stats are now more complete and reliable, and also survive
ifups-ifdowns.
---
iwl: https://lore.kernel.org/intel-wired-lan/20240806131240.800259-1-aleksander.lobakin@intel.com/

The following are changes since commit 2984e69a24affc8e5624069b7bb44593e09037e8:
  net: ethernet: dlink: replace deprecated macro
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 200GbE

Alexander Lobakin (6):
  unroll: add generic loop unroll helpers
  libeth: add common queue stats
  libie: add Tx buffer completion helpers
  idpf: convert to libie Tx buffer completion
  netdevice: add netdev_tx_reset_subqueue() shorthand
  idpf: switch to libeth generic statistics

Joshua Hay (2):
  idpf: refactor Tx completion routines
  idpf: enable WB_ON_ITR

Michal Kubiak (1):
  idpf: fix netdev Tx queue stop/wake

 drivers/net/ethernet/intel/idpf/idpf.h        |  21 +-
 drivers/net/ethernet/intel/idpf/idpf_dev.c    |   2 +
 .../net/ethernet/intel/idpf/idpf_ethtool.c    | 498 ++--------------
 drivers/net/ethernet/intel/idpf/idpf_lib.c    |  32 +-
 .../ethernet/intel/idpf/idpf_singleq_txrx.c   | 172 +++---
 drivers/net/ethernet/intel/idpf/idpf_txrx.c   | 539 +++++++++---------
 drivers/net/ethernet/intel/idpf/idpf_txrx.h   | 144 ++---
 drivers/net/ethernet/intel/idpf/idpf_vf_dev.c |   2 +
 .../net/ethernet/intel/idpf/idpf_virtchnl.c   |  37 +-
 drivers/net/ethernet/intel/idpf/virtchnl2.h   |  33 +-
 drivers/net/ethernet/intel/libeth/Makefile    |   4 +-
 drivers/net/ethernet/intel/libeth/netdev.c    | 157 +++++
 drivers/net/ethernet/intel/libeth/priv.h      |  21 +
 drivers/net/ethernet/intel/libeth/rx.c        |   5 -
 drivers/net/ethernet/intel/libeth/stats.c     | 360 ++++++++++++
 include/linux/netdevice.h                     |  13 +-
 include/linux/unroll.h                        |  50 ++
 include/net/libeth/netdev.h                   |  31 +
 include/net/libeth/stats.h                    | 141 +++++
 include/net/libeth/tx.h                       | 127 +++++
 include/net/libeth/types.h                    | 247 ++++++++
 21 files changed, 1634 insertions(+), 1002 deletions(-)
 create mode 100644 drivers/net/ethernet/intel/libeth/netdev.c
 create mode 100644 drivers/net/ethernet/intel/libeth/priv.h
 create mode 100644 drivers/net/ethernet/intel/libeth/stats.c
 create mode 100644 include/linux/unroll.h
 create mode 100644 include/net/libeth/netdev.h
 create mode 100644 include/net/libeth/stats.h
 create mode 100644 include/net/libeth/tx.h
 create mode 100644 include/net/libeth/types.h

Comments

Jakub Kicinski Aug. 16, 2024, 2:18 a.m. UTC | #1
On Wed, 14 Aug 2024 10:32:57 -0700 Tony Nguyen wrote:
> Alexander Lobakin says:
> 
> XDP for idpf is currently 5 chapters:
> * convert Rx to libeth;
> * convert Tx completion and stats to libeth (this);
> * generic XDP and XSk code changes;
> * actual XDP for idpf via libeth_xdp;
> * XSk for idpf (^).
> 
> Part II does the following:
> * introduces generic libeth per-queue stats infra;
> * adds generic libeth Tx completion routines;
> * converts idpf to use generic libeth Tx comp routines;
> * fixes Tx queue timeouts and robustifies Tx completion in general;
> * fixes Tx event/descriptor flushes (writebacks);
> * fully switches idpf per-queue stats to libeth.
> 
> Most idpf patches again remove more lines than adds.
> The perf difference is not visible by eye in common scenarios, but
> the stats are now more complete and reliable, and also survive
> ifups-ifdowns.

I'm tossing this.

Eric and Paolo are mostly AFK this month, I'm struggling to keep up
and instead of helping review stuff you pile patches. That's not right.
Tony Nguyen Aug. 16, 2024, 8:31 p.m. UTC | #2
On 8/15/2024 7:18 PM, Jakub Kicinski wrote:

> Eric and Paolo are mostly AFK this month, I'm struggling to keep up
> and instead of helping review stuff you pile patches. That's not right.

Sorry, I wasn't aware. I'll throttle the patches I send for the rest of 
the month.

Thanks,
Tony
Jakub Kicinski Aug. 16, 2024, 8:40 p.m. UTC | #3
On Fri, 16 Aug 2024 13:31:52 -0700 Tony Nguyen wrote:
> > Eric and Paolo are mostly AFK this month, I'm struggling to keep up
> > and instead of helping review stuff you pile patches. That's not right.  
> 
> Sorry, I wasn't aware. I'll throttle the patches I send for the rest of 
> the month.

I was hoping you'd take the opposite approach and push some folks 
to review :) But either way helps, thanks for the understanding.
Tony Nguyen Aug. 16, 2024, 8:45 p.m. UTC | #4
On 8/16/2024 1:40 PM, Jakub Kicinski wrote:
> On Fri, 16 Aug 2024 13:31:52 -0700 Tony Nguyen wrote:
>>> Eric and Paolo are mostly AFK this month, I'm struggling to keep up
>>> and instead of helping review stuff you pile patches. That's not right.
>>
>> Sorry, I wasn't aware. I'll throttle the patches I send for the rest of
>> the month.
> 
> I was hoping you'd take the opposite approach and push some folks
> to review :) But either way helps, thanks for the understanding.

I'll do that as well :)

Thanks,
Tony
Alexander Lobakin Aug. 19, 2024, 11:58 a.m. UTC | #5
From: Jakub Kicinski <kuba@kernel.org>
Date: Thu, 15 Aug 2024 19:18:59 -0700

> On Wed, 14 Aug 2024 10:32:57 -0700 Tony Nguyen wrote:
>> Alexander Lobakin says:
>>
>> XDP for idpf is currently 5 chapters:
>> * convert Rx to libeth;
>> * convert Tx completion and stats to libeth (this);
>> * generic XDP and XSk code changes;
>> * actual XDP for idpf via libeth_xdp;
>> * XSk for idpf (^).
>>
>> Part II does the following:
>> * introduces generic libeth per-queue stats infra;
>> * adds generic libeth Tx completion routines;
>> * converts idpf to use generic libeth Tx comp routines;
>> * fixes Tx queue timeouts and robustifies Tx completion in general;
>> * fixes Tx event/descriptor flushes (writebacks);
>> * fully switches idpf per-queue stats to libeth.
>>
>> Most idpf patches again remove more lines than adds.
>> The perf difference is not visible by eye in common scenarios, but
>> the stats are now more complete and reliable, and also survive
>> ifups-ifdowns.
> 
> I'm tossing this.
> 
> Eric and Paolo are mostly AFK this month, I'm struggling to keep up
> and instead of helping review stuff you pile patches. That's not right.

I'll help with the reviews as well.

BTW can I send the netdev_feature_t to priv_flags conversion since
there's only one kdoc to fix and the rest was reviewed or should I wait
as well?

Thanks,
Olek
Jakub Kicinski Aug. 19, 2024, 3:22 p.m. UTC | #6
On Mon, 19 Aug 2024 13:58:40 +0200 Alexander Lobakin wrote:
> BTW can I send the netdev_feature_t to priv_flags conversion since
> there's only one kdoc to fix and the rest was reviewed or should I wait
> as well?

You can post, the rate limits apply to vendor drivers only.