From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Remy Horton <remy.horton@intel.com>, dev@dpdk.org
Cc: Wenzhuo Lu <wenzhuo.lu@intel.com>,
Jingjing Wu <jingjing.wu@intel.com>,
Qi Zhang <qi.z.zhang@intel.com>,
Beilei Xing <beilei.xing@intel.com>,
Shreyansh Jain <shreyansh.jain@nxp.com>,
Thomas Monjalon <thomas@monjalon.net>
Subject: Re: [dpdk-dev] [RFC PATCH v1 1/4] ethdev: add support for PMD-tuned Tx/Rx parameters
Date: Wed, 14 Mar 2018 14:43:33 +0000 [thread overview]
Message-ID: <023fbd6c-7cac-6c8b-9a40-7a62e5d47bb7@intel.com> (raw)
In-Reply-To: <20180307120851.5822-2-remy.horton@intel.com>
On 3/7/2018 12:08 PM, Remy Horton wrote:
> The optimal values of several transmission & reception related
> parameters, such as burst sizes, descriptor ring sizes, and number
> of queues, varies between different network interface devices. This
> patch allows individual PMDs to specify preferred parameter values.
>
> Signed-off-by: Remy Horton <remy.horton@intel.com>
> ---
> lib/librte_ether/rte_ethdev.c | 18 ++++++++++++++++++
> lib/librte_ether/rte_ethdev.h | 15 +++++++++++++++
Can you please remove deprecation notice in this patch.
> 2 files changed, 33 insertions(+)
>
> diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
> index 0590f0c..1630407 100644
> --- a/lib/librte_ether/rte_ethdev.c
> +++ b/lib/librte_ether/rte_ethdev.c
> @@ -1461,6 +1461,10 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,
> return -EINVAL;
> }
>
> + /* Use default specified by driver, if nb_rc_desc is zero */
> + if (nb_rx_desc == 0)
> + nb_rx_desc = dev_info.preferred_queue_values.rx_ring_size;
> +
> if (nb_rx_desc > dev_info.rx_desc_lim.nb_max ||
> nb_rx_desc < dev_info.rx_desc_lim.nb_min ||
> nb_rx_desc % dev_info.rx_desc_lim.nb_align != 0) {
> @@ -1584,6 +1588,10 @@ rte_eth_tx_queue_setup(uint16_t port_id, uint16_t tx_queue_id,
>
> rte_eth_dev_info_get(port_id, &dev_info);
>
> + /* Use default specified by driver, if nb_tx_desc is zero */
> + if (nb_tx_desc == 0)
> + nb_tx_desc = dev_info.preferred_queue_values.tx_ring_size;
> +
> if (nb_tx_desc > dev_info.tx_desc_lim.nb_max ||
> nb_tx_desc < dev_info.tx_desc_lim.nb_min ||
> nb_tx_desc % dev_info.tx_desc_lim.nb_align != 0) {
> @@ -2394,6 +2402,16 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
> dev_info->rx_desc_lim = lim;
> dev_info->tx_desc_lim = lim;
>
> + /* Defaults for drivers that don't implement preferred
> + * queue parameters.
> + */
> + dev_info->preferred_queue_values.rx_burst_size = 0;
> + dev_info->preferred_queue_values.tx_burst_size = 0;
> + dev_info->preferred_queue_values.nb_rx_queues = 1;
> + dev_info->preferred_queue_values.nb_tx_queues = 1;
> + dev_info->preferred_queue_values.rx_ring_size = 1024;
> + dev_info->preferred_queue_values.tx_ring_size = 1024;
Not sure about having these defaults here. It is OK to have defaults in driver,
in application or in config file, but I am not sure if putting them into device
abstraction layer hides them.
What about not providing any default in ethdev layer, and get zero as invalid
when using them?
> +
> RTE_FUNC_PTR_OR_RET(*dev->dev_ops->dev_infos_get);
> (*dev->dev_ops->dev_infos_get)(dev, dev_info);
> dev_info->driver_name = dev->device->driver->name;
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index 0361533..67ce82d 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -988,6 +988,18 @@ struct rte_eth_conf {
>
> struct rte_pci_device;
>
> +/*
> + * Preferred queue parameters.
> + */
> +struct rte_eth_dev_pref_queue_info {
> + uint16_t rx_burst_size;
> + uint16_t tx_burst_size;
> + uint16_t rx_ring_size;
> + uint16_t tx_ring_size;
> + uint16_t nb_rx_queues;
> + uint16_t nb_tx_queues;
> +};
> +
> /**
> * Ethernet device information
> */
> @@ -1029,6 +1041,9 @@ struct rte_eth_dev_info {
> /** Configured number of rx/tx queues */
> uint16_t nb_rx_queues; /**< Number of RX queues. */
> uint16_t nb_tx_queues; /**< Number of TX queues. */
> +
> + /** Queue size recommendations */
Not only queue size.
> + struct rte_eth_dev_pref_queue_info preferred_queue_values;
Although these are queue related values, not per-queue but per-port, the
variable name "preferred_queue_values" gives the impression that these are per
queue. And "rx_burst_size" is not related to queue at all I think.
What do you think renaming structure and variable name, "preferred_dev_config"
perhaps?
> };
>
> /**
>
next prev parent reply other threads:[~2018-03-14 14:43 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-07 12:08 [dpdk-dev] [RFC PATCH v1 0/4] ethdev: add per-PMD tuning of RxTx parmeters Remy Horton
2018-03-07 12:08 ` [dpdk-dev] [RFC PATCH v1 1/4] ethdev: add support for PMD-tuned Tx/Rx parameters Remy Horton
2018-03-14 12:28 ` Shreyansh Jain
2018-03-14 14:09 ` Remy Horton
2018-03-14 14:43 ` Ferruh Yigit [this message]
2018-03-14 15:10 ` Shreyansh Jain
2018-03-15 9:02 ` Remy Horton
2018-03-14 15:48 ` Remy Horton
2018-03-14 16:42 ` Ferruh Yigit
2018-03-14 17:23 ` Shreyansh Jain
2018-03-14 17:52 ` Ferruh Yigit
2018-03-14 18:53 ` Ananyev, Konstantin
2018-03-14 21:02 ` Ferruh Yigit
2018-03-14 21:36 ` Bruce Richardson
2018-03-15 13:57 ` Ferruh Yigit
2018-03-15 14:39 ` Bruce Richardson
2018-03-15 14:57 ` Ferruh Yigit
2018-03-16 13:54 ` Shreyansh Jain
2018-03-16 14:18 ` Bruce Richardson
2018-03-16 15:36 ` Remy Horton
2018-03-20 15:03 ` Ferruh Yigit
2018-03-21 10:14 ` Remy Horton
2018-03-21 13:56 ` Ferruh Yigit
2018-03-20 14:54 ` Ferruh Yigit
2018-03-21 6:51 ` Shreyansh Jain
2018-03-21 10:02 ` Ferruh Yigit
2018-03-21 10:45 ` Shreyansh Jain
2018-03-15 12:51 ` Ananyev, Konstantin
2018-03-15 13:57 ` Ferruh Yigit
2018-03-15 14:42 ` Bruce Richardson
2018-03-07 12:08 ` [dpdk-dev] [RFC PATCH v1 2/4] net/e1000: add TxRx tuning parameters Remy Horton
2018-03-07 12:08 ` [dpdk-dev] [RFC PATCH v1 3/4] net/i40e: " Remy Horton
2018-03-07 12:08 ` [dpdk-dev] [RFC PATCH v1 4/4] testpmd: make use of per-PMD TxRx parameters Remy Horton
2018-03-21 14:27 ` [dpdk-dev] [PATCH v2 0/4] ethdev: add per-PMD tuning of RxTx parmeters Remy Horton
2018-03-21 14:27 ` [dpdk-dev] [PATCH v2 1/4] ethdev: add support for PMD-tuned Tx/Rx parameters Remy Horton
2018-03-28 7:11 ` Shreyansh Jain
2018-03-30 15:40 ` Thomas Monjalon
2018-03-30 15:57 ` Thomas Monjalon
2018-03-31 0:46 ` Thomas Monjalon
2018-03-21 14:27 ` [dpdk-dev] [PATCH v2 2/4] net/e1000: add TxRx tuning parameters Remy Horton
2018-03-21 14:27 ` [dpdk-dev] [PATCH v2 3/4] net/i40e: " Remy Horton
2018-03-21 14:27 ` [dpdk-dev] [PATCH v2 4/4] testpmd: make use of per-PMD TxRx parameters Remy Horton
2018-03-28 7:18 ` Shreyansh Jain
2018-04-03 11:00 ` Remy Horton
2018-03-31 0:01 ` Thomas Monjalon
2018-04-03 8:49 ` Remy Horton
2018-03-27 18:43 ` [dpdk-dev] [PATCH v2 0/4] ethdev: add per-PMD tuning of RxTx parmeters Ferruh Yigit
2018-03-30 10:34 ` Ferruh Yigit
2018-03-31 0:05 ` Thomas Monjalon
2018-04-04 17:17 ` [dpdk-dev] [PATCH v3 " Remy Horton
2018-04-04 17:17 ` [dpdk-dev] [PATCH v3 1/4] ethdev: add support for PMD-tuned Tx/Rx parameters Remy Horton
2018-04-04 18:56 ` De Lara Guarch, Pablo
2018-04-05 10:16 ` Thomas Monjalon
2018-04-04 17:17 ` [dpdk-dev] [PATCH v3 2/4] net/e1000: add TxRx tuning parameters Remy Horton
2018-04-04 17:17 ` [dpdk-dev] [PATCH v3 3/4] net/i40e: " Remy Horton
2018-04-04 17:17 ` [dpdk-dev] [PATCH v3 4/4] testpmd: make use of per-PMD TxRx parameters Remy Horton
2018-04-06 14:49 ` [dpdk-dev] [PATCH v5 0/4] ethdev: add per-PMD tuning of RxTx parmeters Remy Horton
2018-04-06 14:49 ` [dpdk-dev] [PATCH v5 1/4] ethdev: add support for PMD-tuned Tx/Rx parameters Remy Horton
2018-04-06 14:50 ` [dpdk-dev] [PATCH v5 2/4] net/e1000: add TxRx tuning parameters Remy Horton
2018-04-06 14:50 ` [dpdk-dev] [PATCH v5 3/4] net/i40e: " Remy Horton
2018-04-06 14:50 ` [dpdk-dev] [PATCH v5 4/4] testpmd: make use of per-PMD TxRx parameters Remy Horton
2018-04-09 12:55 ` Shreyansh Jain
2018-04-09 14:38 ` Remy Horton
2018-04-10 4:18 ` Shreyansh Jain
2018-04-10 6:09 ` Remy Horton
2018-04-10 6:39 ` Shreyansh Jain
2018-04-06 17:01 ` [dpdk-dev] [PATCH v5 0/4] ethdev: add per-PMD tuning of RxTx parmeters Ferruh Yigit
2018-04-10 9:43 ` [dpdk-dev] [PATCH v6 " Remy Horton
2018-04-10 9:43 ` [dpdk-dev] [PATCH v6 1/4] ethdev: add support for PMD-tuned Tx/Rx parameters Remy Horton
2018-04-10 9:43 ` [dpdk-dev] [PATCH v6 2/4] net/e1000: add TxRx tuning parameters Remy Horton
2018-04-10 9:43 ` [dpdk-dev] [PATCH v6 3/4] net/i40e: " Remy Horton
2018-04-10 9:43 ` [dpdk-dev] [PATCH v6 4/4] testpmd: make use of per-PMD TxRx parameters Remy Horton
2018-04-10 12:57 ` [dpdk-dev] [PATCH v6 0/4] ethdev: add per-PMD tuning of RxTx parmeters Thomas Monjalon
2018-04-10 18:56 ` Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=023fbd6c-7cac-6c8b-9a40-7a62e5d47bb7@intel.com \
--to=ferruh.yigit@intel.com \
--cc=beilei.xing@intel.com \
--cc=dev@dpdk.org \
--cc=jingjing.wu@intel.com \
--cc=qi.z.zhang@intel.com \
--cc=remy.horton@intel.com \
--cc=shreyansh.jain@nxp.com \
--cc=thomas@monjalon.net \
--cc=wenzhuo.lu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).