Skip to content

Commit c40a94c

Browse files
cjubrankuba-moo
authored andcommitted
net/mlx5e: Introduce mlx5e_rss_params for RSS configuration
Group RSS-related parameters into a dedicated mlx5e_rss_params struct. Pass this struct instead of individual arguments when initializing RSS. No functional changes. Signed-off-by: Carolina Jubran <[email protected]> Signed-off-by: Tariq Toukan <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent fc92cdd commit c40a94c

File tree

3 files changed

+40
-22
lines changed

3 files changed

+40
-22
lines changed

drivers/net/ethernet/mellanox/mlx5/core/en/rss.c

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,14 @@ struct mlx5e_rss {
7575
struct mlx5e_tir *inner_tir[MLX5E_NUM_INDIR_TIRS];
7676
struct mlx5e_rqt rqt;
7777
struct mlx5_core_dev *mdev; /* primary */
78-
u32 drop_rqn;
79-
bool inner_ft_support;
78+
struct mlx5e_rss_params params;
8079
bool enabled;
8180
refcount_t refcnt;
8281
};
8382

8483
bool mlx5e_rss_get_inner_ft_support(struct mlx5e_rss *rss)
8584
{
86-
return rss->inner_ft_support;
85+
return rss->params.inner_ft_support;
8786
}
8887

8988
void mlx5e_rss_params_indir_modify_actual_size(struct mlx5e_rss *rss, u32 num_channels)
@@ -198,14 +197,15 @@ mlx5e_rss_create_tir(struct mlx5e_rss *rss, enum mlx5_traffic_types tt,
198197
const struct mlx5e_packet_merge_param *pkt_merge_param,
199198
bool inner)
200199
{
200+
bool rss_inner = rss->params.inner_ft_support;
201201
struct mlx5e_rss_params_traffic_type rss_tt;
202202
struct mlx5e_tir_builder *builder;
203203
struct mlx5e_tir **tir_p;
204204
struct mlx5e_tir *tir;
205205
u32 rqtn;
206206
int err;
207207

208-
if (inner && !rss->inner_ft_support) {
208+
if (inner && !rss_inner) {
209209
mlx5e_rss_warn(rss->mdev,
210210
"Cannot create inner indirect TIR[%d], RSS inner FT is not supported.\n",
211211
tt);
@@ -228,7 +228,7 @@ mlx5e_rss_create_tir(struct mlx5e_rss *rss, enum mlx5_traffic_types tt,
228228

229229
rqtn = mlx5e_rqt_get_rqtn(&rss->rqt);
230230
mlx5e_tir_builder_build_rqt(builder, rss->mdev->mlx5e_res.hw_objs.td.tdn,
231-
rqtn, rss->inner_ft_support);
231+
rqtn, rss_inner);
232232
mlx5e_tir_builder_build_packet_merge(builder, pkt_merge_param);
233233
rss_tt = mlx5e_rss_get_tt_config(rss, tt);
234234
mlx5e_tir_builder_build_rss(builder, &rss->hash, &rss_tt, inner);
@@ -337,7 +337,7 @@ static int mlx5e_rss_update_tirs(struct mlx5e_rss *rss)
337337
tt, err);
338338
}
339339

340-
if (!rss->inner_ft_support)
340+
if (!rss->params.inner_ft_support)
341341
continue;
342342

343343
err = mlx5e_rss_update_tir(rss, tt, true);
@@ -357,11 +357,13 @@ static int mlx5e_rss_init_no_tirs(struct mlx5e_rss *rss)
357357
refcount_set(&rss->refcnt, 1);
358358

359359
return mlx5e_rqt_init_direct(&rss->rqt, rss->mdev, true,
360-
rss->drop_rqn, rss->indir.max_table_size);
360+
rss->params.drop_rqn,
361+
rss->indir.max_table_size);
361362
}
362363

363364
struct mlx5e_rss *
364-
mlx5e_rss_init(struct mlx5_core_dev *mdev, bool inner_ft_support, u32 drop_rqn,
365+
mlx5e_rss_init(struct mlx5_core_dev *mdev,
366+
const struct mlx5e_rss_params *params,
365367
const struct mlx5e_rss_init_params *init_params)
366368
{
367369
u32 rqt_max_size, rqt_size;
@@ -379,8 +381,7 @@ mlx5e_rss_init(struct mlx5_core_dev *mdev, bool inner_ft_support, u32 drop_rqn,
379381
goto err_free_rss;
380382

381383
rss->mdev = mdev;
382-
rss->inner_ft_support = inner_ft_support;
383-
rss->drop_rqn = drop_rqn;
384+
rss->params = *params;
384385

385386
err = mlx5e_rss_init_no_tirs(rss);
386387
if (err)
@@ -394,7 +395,7 @@ mlx5e_rss_init(struct mlx5_core_dev *mdev, bool inner_ft_support, u32 drop_rqn,
394395
if (err)
395396
goto err_destroy_rqt;
396397

397-
if (inner_ft_support) {
398+
if (params->inner_ft_support) {
398399
err = mlx5e_rss_create_tirs(rss,
399400
init_params->pkt_merge_param,
400401
true);
@@ -423,7 +424,7 @@ int mlx5e_rss_cleanup(struct mlx5e_rss *rss)
423424

424425
mlx5e_rss_destroy_tirs(rss, false);
425426

426-
if (rss->inner_ft_support)
427+
if (rss->params.inner_ft_support)
427428
mlx5e_rss_destroy_tirs(rss, true);
428429

429430
mlx5e_rqt_destroy(&rss->rqt);
@@ -453,7 +454,7 @@ u32 mlx5e_rss_get_tirn(struct mlx5e_rss *rss, enum mlx5_traffic_types tt,
453454
{
454455
struct mlx5e_tir *tir;
455456

456-
WARN_ON(inner && !rss->inner_ft_support);
457+
WARN_ON(inner && !rss->params.inner_ft_support);
457458
tir = rss_get_tir(rss, tt, inner);
458459
WARN_ON(!tir);
459460

@@ -517,10 +518,11 @@ void mlx5e_rss_disable(struct mlx5e_rss *rss)
517518
int err;
518519

519520
rss->enabled = false;
520-
err = mlx5e_rqt_redirect_direct(&rss->rqt, rss->drop_rqn, NULL);
521+
err = mlx5e_rqt_redirect_direct(&rss->rqt, rss->params.drop_rqn, NULL);
521522
if (err)
522523
mlx5e_rss_warn(rss->mdev, "Failed to redirect RQT %#x to drop RQ %#x: err = %d\n",
523-
mlx5e_rqt_get_rqtn(&rss->rqt), rss->drop_rqn, err);
524+
mlx5e_rqt_get_rqtn(&rss->rqt),
525+
rss->params.drop_rqn, err);
524526
}
525527

526528
int mlx5e_rss_packet_merge_set_param(struct mlx5e_rss *rss,
@@ -553,7 +555,7 @@ int mlx5e_rss_packet_merge_set_param(struct mlx5e_rss *rss,
553555
}
554556

555557
inner_tir:
556-
if (!rss->inner_ft_support)
558+
if (!rss->params.inner_ft_support)
557559
continue;
558560

559561
tir = rss_get_tir(rss, tt, true);
@@ -686,7 +688,7 @@ int mlx5e_rss_set_hash_fields(struct mlx5e_rss *rss, enum mlx5_traffic_types tt,
686688
return err;
687689
}
688690

689-
if (!(rss->inner_ft_support))
691+
if (!(rss->params.inner_ft_support))
690692
return 0;
691693

692694
err = mlx5e_rss_update_tir(rss, tt, true);

drivers/net/ethernet/mellanox/mlx5/core/en/rss.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ struct mlx5e_rss_init_params {
2020
unsigned int max_nch;
2121
};
2222

23+
struct mlx5e_rss_params {
24+
bool inner_ft_support;
25+
u32 drop_rqn;
26+
};
27+
2328
struct mlx5e_rss_params_traffic_type
2429
mlx5e_rss_get_default_tt_config(enum mlx5_traffic_types tt);
2530

@@ -30,7 +35,8 @@ int mlx5e_rss_params_indir_init(struct mlx5e_rss_params_indir *indir,
3035
void mlx5e_rss_params_indir_cleanup(struct mlx5e_rss_params_indir *indir);
3136
void mlx5e_rss_params_indir_modify_actual_size(struct mlx5e_rss *rss, u32 num_channels);
3237
struct mlx5e_rss *
33-
mlx5e_rss_init(struct mlx5_core_dev *mdev, bool inner_ft_support, u32 drop_rqn,
38+
mlx5e_rss_init(struct mlx5_core_dev *mdev,
39+
const struct mlx5e_rss_params *params,
3440
const struct mlx5e_rss_init_params *init_params);
3541
int mlx5e_rss_cleanup(struct mlx5e_rss *rss);
3642

drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ static int mlx5e_rx_res_rss_init_def(struct mlx5e_rx_res *res,
5555
{
5656
bool inner_ft_support = res->features & MLX5E_RX_RES_FEATURE_INNER_FT;
5757
struct mlx5e_rss_init_params init_params;
58+
struct mlx5e_rss_params rss_params;
5859
struct mlx5e_rss *rss;
5960

6061
if (WARN_ON(res->rss[0]))
@@ -67,8 +68,12 @@ static int mlx5e_rx_res_rss_init_def(struct mlx5e_rx_res *res,
6768
.max_nch = res->max_nch,
6869
};
6970

70-
rss = mlx5e_rss_init(res->mdev, inner_ft_support, res->drop_rqn,
71-
&init_params);
71+
rss_params = (struct mlx5e_rss_params) {
72+
.inner_ft_support = inner_ft_support,
73+
.drop_rqn = res->drop_rqn,
74+
};
75+
76+
rss = mlx5e_rss_init(res->mdev, &rss_params, &init_params);
7277
if (IS_ERR(rss))
7378
return PTR_ERR(rss);
7479

@@ -83,6 +88,7 @@ int mlx5e_rx_res_rss_init(struct mlx5e_rx_res *res, u32 rss_idx, unsigned int in
8388
{
8489
bool inner_ft_support = res->features & MLX5E_RX_RES_FEATURE_INNER_FT;
8590
struct mlx5e_rss_init_params init_params;
91+
struct mlx5e_rss_params rss_params;
8692
struct mlx5e_rss *rss;
8793

8894
if (WARN_ON_ONCE(res->rss[rss_idx]))
@@ -95,8 +101,12 @@ int mlx5e_rx_res_rss_init(struct mlx5e_rx_res *res, u32 rss_idx, unsigned int in
95101
.max_nch = res->max_nch,
96102
};
97103

98-
rss = mlx5e_rss_init(res->mdev, inner_ft_support, res->drop_rqn,
99-
&init_params);
104+
rss_params = (struct mlx5e_rss_params) {
105+
.inner_ft_support = inner_ft_support,
106+
.drop_rqn = res->drop_rqn,
107+
};
108+
109+
rss = mlx5e_rss_init(res->mdev, &rss_params, &init_params);
100110
if (IS_ERR(rss))
101111
return PTR_ERR(rss);
102112

0 commit comments

Comments
 (0)