Linux RDMA and InfiniBand development
 help / color / mirror / Atom feed
From: Mark Bloch <mbloch@nvidia.com>
To: Alexander Lobakin <aleksander.lobakin@intel.com>,
	rongwei liu <rongweil@nvidia.com>
Cc: Tariq Toukan <tariqt@nvidia.com>,
	"David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Eric Dumazet <edumazet@google.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	Leon Romanovsky <leonro@nvidia.com>,
	netdev@vger.kernel.org, Saeed Mahameed <saeedm@nvidia.com>,
	Gal Pressman <gal@nvidia.com>,
	linux-rdma@vger.kernel.org
Subject: Re: [PATCH net-next 02/12] net/mlx5: LAG, Refactor lag logic
Date: Tue, 17 Dec 2024 14:52:55 +0200	[thread overview]
Message-ID: <624f1c54-8bfe-4031-9614-79c4998a8d78@nvidia.com> (raw)
In-Reply-To: <abfe7b20-61d7-4b5f-908c-170697429900@intel.com>



On 17/12/2024 13:32, Alexander Lobakin wrote:
> From: Rongwei Liu <rongweil@nvidia.com>
> Date: Tue, 17 Dec 2024 13:44:07 +0800
> 
>>
>>
>> On 2024/12/17 01:55, Alexander Lobakin wrote:
>>> From: Tariq Toukan <tariqt@nvidia.com>
>>> Date: Wed, 11 Dec 2024 15:42:13 +0200
>>>
>>>> From: Rongwei Liu <rongweil@nvidia.com>
>>>>
>>>> Wrap the lag pf access into two new macros:
>>>> 1. ldev_for_each()
>>>> 2. ldev_for_each_reverse()
>>>> The maximum number of lag ports and the index to `natvie_port_num`
>>>> mapping will be handled by the two new macros.
>>>> Users shouldn't use the for loop anymore.
>>>
>>> [...]
>>>
>>>> @@ -1417,6 +1398,26 @@ void mlx5_lag_add_netdev(struct mlx5_core_dev *dev,
>>>>  	mlx5_queue_bond_work(ldev, 0);
>>>>  }
>>>>  
>>>> +int get_pre_ldev_func(struct mlx5_lag *ldev, int start_idx, int end_idx)
>>>> +{
>>>> +	int i;
>>>> +
>>>> +	for (i = start_idx; i >= end_idx; i--)
>>>> +		if (ldev->pf[i].dev)
>>>> +			return i;
>>>> +	return -1;
>>>> +}
>>>> +
>>>> +int get_next_ldev_func(struct mlx5_lag *ldev, int start_idx)
>>>> +{
>>>> +	int i;
>>>> +
>>>> +	for (i = start_idx; i < MLX5_MAX_PORTS; i++)
>>>> +		if (ldev->pf[i].dev)
>>>> +			return i;
>>>> +	return MLX5_MAX_PORTS;
>>>> +}
>>>
>>> Why aren't these two prefixed with mlx5?
>>> We can have. No mlx5 prefix aligns with "ldev_for_each/ldev_for_each_reverse()", simple, short and meaningful.
> 
> All drivers must have its symbols prefixed, otherwise there might be
> name conflicts at anytime and also it's not clear where a definition
> comes from if it's not prefixed.
> 

However, those aren't exported symbols, they are used exclusively by the mlx5 lag code.
I don't see any added value in prefixing internal functions with mlx5 unless it adds
context to the logic.
Here it's very clear we are going over the members that are stored inside the ldev struct.

Mark

>>>> +
>>>>  bool mlx5_lag_is_roce(struct mlx5_core_dev *dev)
>>>>  {
>>>>  	struct mlx5_lag *ldev;
>>>
>>> [...]
>>>
>>>>  
>>>> +#define ldev_for_each(i, start_index, ldev) \
>>>> +	for (int tmp = start_index; tmp = get_next_ldev_func(ldev, tmp), \
>>>> +	     i = tmp, tmp < MLX5_MAX_PORTS; tmp++)
>>>> +
>>>> +#define ldev_for_each_reverse(i, start_index, end_index, ldev)      \
>>>> +	for (int tmp = start_index, tmp1 = end_index; \
>>>> +	     tmp = get_pre_ldev_func(ldev, tmp, tmp1), \
>>>> +	     i = tmp, tmp >= tmp1; tmp--)
>>>
>>> Same?
>> Reverse is used to the error handling. Add end index is more convenient.
>> Of course, we can remove the end_index. 
>> But all the logic need to add:
>> 	if (i < end_index)
>> 		break;
>> If no strong comments, I would like to keep as now.
> 
> By "same?" I meant that there two are also not prefixed with mlx5_, the
> same as the two above.
> 
> Thanks,
> Olek


  parent reply	other threads:[~2024-12-17 12:53 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-11 13:42 [PATCH net-next 00/12] mlx5 misc changes 2024-12-11 Tariq Toukan
2024-12-11 13:42 ` [PATCH mlx5-next 01/12] net/mlx5: Add device cap abs_native_port_num Tariq Toukan
2024-12-11 13:42 ` [PATCH net-next 02/12] net/mlx5: LAG, Refactor lag logic Tariq Toukan
2024-12-16 17:55   ` Alexander Lobakin
2024-12-17  5:44     ` rongwei liu
2024-12-17 11:32       ` Alexander Lobakin
2024-12-17 11:42         ` rongwei liu
2024-12-17 12:52         ` Mark Bloch [this message]
2024-12-17 15:03           ` Alexander Lobakin
2024-12-11 13:42 ` [PATCH net-next 03/12] net/mlx5: LAG, Support LAG over Multi-Host NICs Tariq Toukan
2024-12-11 13:42 ` [PATCH net-next 04/12] net/mlx5: fs, add counter object to flow destination Tariq Toukan
2024-12-12 17:20   ` Simon Horman
2024-12-12 18:32     ` Tariq Toukan
2024-12-11 13:42 ` [PATCH net-next 05/12] net/mlx5: fs, add mlx5_fs_pool API Tariq Toukan
2024-12-12 17:23   ` Simon Horman
2024-12-15 13:39     ` Moshe Shemesh
2024-12-18  5:22       ` Kees Cook
2024-12-18  8:21         ` Moshe Shemesh
2024-12-11 13:42 ` [PATCH net-next 06/12] net/mlx5: fs, retry insertion to hash table on EBUSY Tariq Toukan
2024-12-11 13:42 ` [PATCH net-next 07/12] net/mlx5: HWS, no need to expose mlx5hws_send_queues_open/close Tariq Toukan
2024-12-11 13:42 ` [PATCH net-next 08/12] net/mlx5: HWS, do not initialize native API queues Tariq Toukan
2024-12-11 13:42 ` [PATCH net-next 09/12] net/mlx5: DR, expand SWS STE callbacks and consolidate common structs Tariq Toukan
2024-12-11 13:42 ` [PATCH net-next 10/12] net/mlx5: DR, add support for ConnectX-8 steering Tariq Toukan
2024-12-12 17:31   ` Simon Horman
2024-12-12 18:31     ` Tariq Toukan
2024-12-13  1:11       ` Jakub Kicinski
2024-12-15  6:25         ` Tariq Toukan
2024-12-15 21:12           ` Jakub Kicinski
2024-12-16 12:50             ` Tariq Toukan
2024-12-13 10:31       ` Simon Horman
2024-12-11 13:42 ` [PATCH net-next 11/12] net/mlx5: Remove PTM support log message Tariq Toukan
2024-12-11 13:42 ` [PATCH net-next 12/12] net/mlx5: fs, Add support for RDMA RX steering over IB link layer Tariq Toukan

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=624f1c54-8bfe-4031-9614-79c4998a8d78@nvidia.com \
    --to=mbloch@nvidia.com \
    --cc=aleksander.lobakin@intel.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gal@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=leonro@nvidia.com \
    --cc=linux-rdma@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rongweil@nvidia.com \
    --cc=saeedm@nvidia.com \
    --cc=tariqt@nvidia.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