mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-16 12:56:43 +07:00
net/mlx5: E-Switch, Use vport metadata matching only when mandatory
Multi-port RoCE mode requires tagging traffic that passes through the
vport.
This matching can cause performance degradation, therefore disable it
and use the legacy matching on vhca_id and source_port when possible.
Fixes: 92ab1eb392
("net/mlx5: E-Switch, Enable vport metadata matching if firmware supports it")
Signed-off-by: Majd Dibbiny <majd@mellanox.com>
Reviewed-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:
parent
2f5438ca0e
commit
1e62e222db
@ -2021,6 +2021,18 @@ esw_check_vport_match_metadata_supported(const struct mlx5_eswitch *esw)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
esw_check_vport_match_metadata_mandatory(const struct mlx5_eswitch *esw)
|
||||
{
|
||||
return mlx5_core_mp_enabled(esw->dev);
|
||||
}
|
||||
|
||||
static bool esw_use_vport_metadata(const struct mlx5_eswitch *esw)
|
||||
{
|
||||
return esw_check_vport_match_metadata_mandatory(esw) &&
|
||||
esw_check_vport_match_metadata_supported(esw);
|
||||
}
|
||||
|
||||
int
|
||||
esw_vport_create_offloads_acl_tables(struct mlx5_eswitch *esw,
|
||||
struct mlx5_vport *vport)
|
||||
@ -2059,7 +2071,7 @@ static int esw_create_uplink_offloads_acl_tables(struct mlx5_eswitch *esw)
|
||||
struct mlx5_vport *vport;
|
||||
int err;
|
||||
|
||||
if (esw_check_vport_match_metadata_supported(esw))
|
||||
if (esw_use_vport_metadata(esw))
|
||||
esw->flags |= MLX5_ESWITCH_VPORT_MATCH_METADATA;
|
||||
|
||||
vport = mlx5_eswitch_get_vport(esw, MLX5_VPORT_UPLINK);
|
||||
|
Loading…
Reference in New Issue
Block a user