From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 ; 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 ; 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 Date: Thu, 19 Sep 2024 16:14:28 +0200 Message-ID: Subject: Re: [PATCH v3 00/26] add meson config options for queues per port To: Bruce Richardson 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Wed, Aug 14, 2024 at 12:50=E2=80=AFPM Bruce Richardson 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