From: Raslan Darawsheh <rasland@mellanox.com>
To: Dekel Peled <dekelp@mellanox.com>,
Matan Azrad <matan@mellanox.com>,
Slava Ovsiienko <viacheslavo@mellanox.com>,
Shahaf Shuler <shahafs@mellanox.com>
Cc: Ori Kam <orika@mellanox.com>, "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH] net/mlx5: add define of LRO segment chunk size
Date: Thu, 19 Dec 2019 11:26:31 +0000 [thread overview]
Message-ID: <DB3PR0502MB39645779359A6EBCC6BFCCB0C2520@DB3PR0502MB3964.eurprd05.prod.outlook.com> (raw)
In-Reply-To: <9e1ca71b1fd1da5830f44e74f8b12ba7a088a357.1576654991.git.dekelp@mellanox.com>
Hi,
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Dekel Peled
> Sent: Wednesday, December 18, 2019 9:52 AM
> To: Matan Azrad <matan@mellanox.com>; Slava Ovsiienko
> <viacheslavo@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
> Cc: Ori Kam <orika@mellanox.com>; dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/mlx5: add define of LRO segment chunk
> size
>
> Maximal size of coalesced LRO segment is set in TIR attributes as
> number of chunks of size 256 bytes each.
> Current implementation uses the hardcoded value 256 in several places.
>
> This patch adds a definition for this value, and uses this definition
> in all relevant places.
> A debug message is added to clearly notify the actual configured size.
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> Acked-by: Matan Azrad <matan@mellanox.com>
>
> ---
> drivers/net/mlx5/mlx5.h | 5 ++++-
> drivers/net/mlx5/mlx5_rxq.c | 15 +++++++++++----
> 2 files changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
> index 0c3a90e..c3df825 100644
> --- a/drivers/net/mlx5/mlx5.h
> +++ b/drivers/net/mlx5/mlx5.h
> @@ -218,8 +218,11 @@ struct mlx5_hca_attr {
> #define MLX5_LRO_SUPPORTED(dev) \
> (((struct mlx5_priv *)((dev)->data->dev_private))-
> >config.lro.supported)
>
> +/* Maximal size of coalesced segment for LRO is set in chunks of 256 Bytes.
> */
> +#define MLX5_LRO_SEG_CHUNK_SIZE 256u
> +
> /* Maximal size of aggregated LRO packet. */
> -#define MLX5_MAX_LRO_SIZE (UINT8_MAX * 256u)
> +#define MLX5_MAX_LRO_SIZE (UINT8_MAX *
> MLX5_LRO_SEG_CHUNK_SIZE)
>
> /* LRO configurations structure. */
> struct mlx5_lro_config {
> diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
> index 986ec01..bbc07db 100644
> --- a/drivers/net/mlx5/mlx5_rxq.c
> +++ b/drivers/net/mlx5/mlx5_rxq.c
> @@ -1717,11 +1717,14 @@ struct mlx5_rxq_obj *
> *
> * @param dev
> * Pointer to Ethernet device.
> + * @param idx
> + * RX queue index.
> * @param max_lro_size
> * The maximum size for LRO packet.
> */
> static void
> -mlx5_max_lro_msg_size_adjust(struct rte_eth_dev *dev, uint32_t
> max_lro_size)
> +mlx5_max_lro_msg_size_adjust(struct rte_eth_dev *dev, uint16_t idx,
> + uint32_t max_lro_size)
> {
> struct mlx5_priv *priv = dev->data->dev_private;
>
> @@ -1730,13 +1733,17 @@ struct mlx5_rxq_obj *
> MLX5_MAX_TCP_HDR_OFFSET)
> max_lro_size -= MLX5_MAX_TCP_HDR_OFFSET;
> max_lro_size = RTE_MIN(max_lro_size, MLX5_MAX_LRO_SIZE);
> - assert(max_lro_size >= 256u);
> - max_lro_size /= 256u;
> + assert(max_lro_size >= MLX5_LRO_SEG_CHUNK_SIZE);
> + max_lro_size /= MLX5_LRO_SEG_CHUNK_SIZE;
> if (priv->max_lro_msg_size)
> priv->max_lro_msg_size =
> RTE_MIN((uint32_t)priv->max_lro_msg_size,
> max_lro_size);
> else
> priv->max_lro_msg_size = max_lro_size;
> + DRV_LOG(DEBUG,
> + "port %u Rx Queue %u max LRO message size adjusted to %u
> bytes",
> + dev->data->port_id, idx,
> + priv->max_lro_msg_size * MLX5_LRO_SEG_CHUNK_SIZE);
> }
>
> /**
> @@ -1909,7 +1916,7 @@ struct mlx5_rxq_ctrl *
> rte_errno = EINVAL;
> goto error;
> }
> - mlx5_max_lro_msg_size_adjust(dev, max_lro_size);
> + mlx5_max_lro_msg_size_adjust(dev, idx, max_lro_size);
> /* Toggle RX checksum offload if hardware supports it. */
> tmpl->rxq.csum = !!(offloads & DEV_RX_OFFLOAD_CHECKSUM);
> tmpl->rxq.hw_timestamp = !!(offloads &
> DEV_RX_OFFLOAD_TIMESTAMP);
> --
> 1.8.3.1
Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
prev parent reply other threads:[~2019-12-19 11:26 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-18 7:51 Dekel Peled
2019-12-19 11:26 ` Raslan Darawsheh [this message]
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=DB3PR0502MB39645779359A6EBCC6BFCCB0C2520@DB3PR0502MB3964.eurprd05.prod.outlook.com \
--to=rasland@mellanox.com \
--cc=dekelp@mellanox.com \
--cc=dev@dpdk.org \
--cc=matan@mellanox.com \
--cc=orika@mellanox.com \
--cc=shahafs@mellanox.com \
--cc=viacheslavo@mellanox.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).