From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id A9FE0459D7;
	Thu, 19 Sep 2024 16:14:47 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 971E340A7D;
	Thu, 19 Sep 2024 16:14:47 +0200 (CEST)
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by mails.dpdk.org (Postfix) with ESMTP id D338A406FF
 for <dev@dpdk.org>; Thu, 19 Sep 2024 16:14:45 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
 s=mimecast20190719; t=1726755285;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding:
 in-reply-to:in-reply-to:references:references;
 bh=ivItr2tWoPTeRQi6gWGXUK2fHCKE5nUOtYlYWWEWPLk=;
 b=K58YyKXdZEdZbC3IBEd3+sfgATUUKMKmyXHy+4GaxsQPJ1vpr0krQ9F/pDi65vUHNuYW1D
 IIMn3V3nOq3hl9GQZtCHIO+Jmnt9PXqVfmhXlUsXYJkV/j/qJ5lWYhLIXsIeEtIzcgWzLw
 beX8VD5N0fldXC8FJdpCx2urSOQrB3Q=
Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com
 [209.85.216.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-517-pCYCBP-1PzuTxmpymLwegQ-1; Thu, 19 Sep 2024 10:14:44 -0400
X-MC-Unique: pCYCBP-1PzuTxmpymLwegQ-1
Received: by mail-pj1-f72.google.com with SMTP id
 98e67ed59e1d1-2d889fde2aaso1423899a91.0
 for <dev@dpdk.org>; Thu, 19 Sep 2024 07:14:44 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1726755283; x=1727360083;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=ivItr2tWoPTeRQi6gWGXUK2fHCKE5nUOtYlYWWEWPLk=;
 b=j+ic5/nVEUUuVaqyhy7YI3zecLWnqP96zLdk35XTXxXijKYeyQbr7cmzWuUsgCjJuA
 Vx2/Uh895Za18/p4lE06bj8M3tByYN2V2roOhIbT2uayfsXvA2mWhcaMIdXU5qmwbFs6
 qKofG0kM/WF0HAYPUDEjZ2r5LyRBlZOYMdufZ2SjwRyWCnULyN6mksexE402Ws6TM/dI
 HB1xzoh+23AKPWf754jGYfpjeEmyClPZbR1ynvxxiTjT6QP/gEEm7SACYQJZxhcsFBnr
 WVCNbaZO9/0B0mRtX7yOPNHpE1eTl0qGTJmXDOpBdKGXyl1Gs38D+8q+kJnQHENN8ymh
 apPQ==
X-Gm-Message-State: AOJu0Yx4Sg6XOE0DCSGHuQn+C35J4xXELrlWqFLILkBCo0el1uD/o7n5
 AJO+CBocOFr4CZu9RlcX8q7i+zUBN4fsL169VYRWBD6jOQsBYm1DJDvuqbxwYneVxT5El+ci3RI
 XW1HYzJFSSNQAJs/xevRhtyyEM5pXQT6s+ag+ilV4VRANFjdnAA9nfFcXFMgOFQ+ZBb53fyQszs
 ACk5hETjUbHKEsBWM=
X-Received: by 2002:a17:90a:f2cd:b0:2d8:8cef:3d64 with SMTP id
 98e67ed59e1d1-2db9ff74025mr30029518a91.6.1726755283174; 
 Thu, 19 Sep 2024 07:14:43 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IFV9203bTcOT/XFQxzMZv38w+e76d3df8uUq+kKJPeXoZJnSMYZk5SHdbuJJzidebriK6jrCBnHbAemd58qedU=
X-Received: by 2002:a17:90a:f2cd:b0:2d8:8cef:3d64 with SMTP id
 98e67ed59e1d1-2db9ff74025mr30029493a91.6.1726755282810; Thu, 19 Sep 2024
 07:14:42 -0700 (PDT)
MIME-Version: 1.0
References: <20240812132910.162252-1-bruce.richardson@intel.com>
 <20240814104933.14062-1-bruce.richardson@intel.com>
In-Reply-To: <20240814104933.14062-1-bruce.richardson@intel.com>
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 19 Sep 2024 16:14:28 +0200
Message-ID: <CAJFAV8zPjjQqjgvfgvkmH_q7=Wv3Ko+Yqd2jGUpv9mKnnBNj4g@mail.gmail.com>
Subject: Re: [PATCH v3 00/26] add meson config options for queues per port
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org, ferruh.yigit@amd.com, thomas@monjalon.net, 
 mb@smartsharesystems.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

On Wed, Aug 14, 2024 at 12:50=E2=80=AFPM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> There are a number of issues with the current RTE_MAX_QUEUES_PER_PORT
> setting in DPDK that are addressed by this patchset:
>
> * The name does not make it clear that this is intended as an
>   ethdev-only setting
> * A number of other libraries are using this define rather than having
>   more relevant defines for the particular usecase.
> * The define is hard-coded in DPDK source code and is not adjustable via
>   a build-time/meson option
> * Because of the lack of configurability, the max is therefore set to a
>   conservatively-high value, wasting memory.
> * There is an assumption that the number of Rx queues and Tx queues
>   should have the same maximum value. Depending on application, it may
>   be desirable to have fan-in with multiple Rx queues e.g. for
>   classification/filtering, feed a single Tx queue, or the opposite
>   where, e.g. for QoS Tx scheduling, a few Rx queues feeds a very large
>   number of Tx queues.
>
> This patchset therefore addresses these by:
>
> * replacing the single define for max queues with independent defines
>   for Rx and Tx queues.
> * adjusts the name to ensure that it is clear the defines are for
>   ethports only. [ethports being used in the RTE_MAX_ETHPORTS setting].
> * replaces occurances of RTE_MAX_QUEUES_PER_PORT with appropriate
>   defines for non-ethdev use cases
> * replaces all other internal occurances of the define with the new
>   per-Rx and per-Tx definitions.
> * adds meson config options to allow build-time configuration of the max
>   Rx and Tx queue values.
>
> Naming Note:
> * The new meson config options are called "max_ethport_rx_queues" and
>   "max_ethport_tx_queues" so that in the meson options list they appear
>   alphabetically beside the existing "max_ethports" option.
> * For naming consistency, the new C defines are therefore
>   RTE_MAX_ETHPORT_RX_QUEUES and RTE_MAX_ETHPORT_TX_QUEUES.
>
> V3:
> * Resend of v2 with correct author email, to avoid reply bounces
> * drop "rfc" prefix from patches
>
> V2:
> * What was a single patch with "3 insertions(+), 1 deletion(-)" has now
>   become a 26-patch set! :-)
> * Created separate Rx and Tx defines
> * Ensured that the name makes it clear that the define is for ethdev
> * When updating internal use, created one patch per component for easier
>   maintainer review. In most cases it was obvious whether Rx or Tx
>   define should be used, but a few cases were less clear.
> * Added documentation updates for the changes (release notes and
>   deprecation notice), spread across 3 of the patches.
>
> Bruce Richardson (26):
>   cryptodev: remove use of ethdev max queues definition
>   eventdev: remove use of ethev queues define
>   app/test-bbdev: remove use of ethdev queue count value
>   config: add separate defines for max Rx and Tx queues
>   ethdev: use separate Rx and Tx queue limits
>   bpf: use separate Rx and Tx queue limits
>   latencystats: use separate Rx and Tx queue limits
>   pdump: use separate Rx and Tx queue limits
>   power: use separate Rx and Tx queue limits
>   net/af_xdp: use separate Rx and Tx queue limits
>   net/cnxk: use separate Rx and Tx queue limits
>   net/failsafe: use separate Rx and Tx queue limits
>   net/hns3: use separate Rx and Tx queue limits
>   net/mlx5: use separate Rx and Tx queue limits
>   net/null: use separate Rx and Tx queue limits
>   net/sfc: use separate Rx and Tx queue limits
>   net/thunderx: use separate Rx and Tx queue limits
>   net/vhost: use separate Rx and Tx queue limits
>   app/dumpcap: use separate Rx and Tx queue limits
>   app/test-pmd: use separate Rx and Tx queue limits
>   examples/ipsec-secgw: use separate Rx and Tx queue limits
>   examples/l3fwd-power: use separate Rx and Tx queue limits
>   examples/l3fwd: use separate Rx and Tx queue limits
>   examples/vhost: use separate Rx and Tx queue limits
>   config: make queues per port a meson config option
>   config: add computed max queues define for compatibility
>
>  app/dumpcap/main.c                     |  2 +-
>  app/test-bbdev/test_bbdev.c            |  4 ++--
>  app/test-pmd/testpmd.c                 |  7 ++++---
>  app/test-pmd/testpmd.h                 | 16 ++++++++--------
>  config/meson.build                     | 10 ++++++++++
>  config/rte_config.h                    |  2 +-
>  doc/guides/rel_notes/deprecation.rst   | 11 +++++++++++
>  doc/guides/rel_notes/release_24_11.rst | 21 +++++++++++++++++++++
>  drivers/net/af_xdp/rte_eth_af_xdp.c    |  2 +-
>  drivers/net/cnxk/cnxk_ethdev_ops.c     |  4 ++--
>  drivers/net/failsafe/failsafe_ops.c    |  4 ++--
>  drivers/net/hns3/hns3_tm.c             |  2 +-
>  drivers/net/mlx5/mlx5_flow.c           |  2 +-
>  drivers/net/mlx5/mlx5_flow_hw.c        |  2 +-
>  drivers/net/null/rte_eth_null.c        |  4 ++--
>  drivers/net/sfc/sfc_sw_stats.c         |  6 ++++--
>  drivers/net/thunderx/nicvf_ethdev.c    |  2 +-
>  drivers/net/vhost/rte_eth_vhost.c      |  7 ++++---
>  examples/ipsec-secgw/ipsec-secgw.c     |  2 +-
>  examples/ipsec-secgw/ipsec.c           |  2 +-
>  examples/l3fwd-power/main.c            |  2 +-
>  examples/l3fwd-power/perf_core.c       |  2 +-
>  examples/l3fwd/main.c                  |  2 +-
>  examples/vhost/main.c                  |  2 +-
>  examples/vhost/main.h                  |  2 +-
>  lib/bpf/bpf_pkt.c                      |  3 ++-
>  lib/cryptodev/cryptodev_pmd.c          |  4 ++--
>  lib/ethdev/ethdev_driver.h             |  8 ++++----
>  lib/ethdev/ethdev_private.c            | 24 ++++++++++++++----------
>  lib/ethdev/rte_ethdev.c                | 16 +++++++---------
>  lib/ethdev/rte_ethdev.h                | 18 +++++++++---------
>  lib/eventdev/eventdev_private.c        |  2 +-
>  lib/latencystats/rte_latencystats.c    |  4 ++--
>  lib/pdump/rte_pdump.c                  | 18 +++++++++---------
>  lib/power/rte_power_pmd_mgmt.c         |  4 ++--
>  meson_options.txt                      |  4 ++++
>  36 files changed, 140 insertions(+), 87 deletions(-)
>

I sent some comments.

Patch 2 has a typo "ethev" in its title.

I would squash the drivers changes into a single patch, as those are mechan=
ical.

The last two patches may have to be squashed as I suspect compilation
is broken for applications relying on RTE_MAX_QUEUES_PER_PORT if we
stop between the two changes.

Otherwise, lgtm.


--=20
David Marchand