Re: [PATCH ] mlx4_core: Enhance device capabilities flags debug printouts

Matan Barak
2014-12-10T10:10:07Z

On 12/8/2014 1:48 AM, Yuval Shaia wrote:
> 1. Add indication whether feature is supported or not.
> 2. Add descriptions of all features.
> Without this fix there is no way to tell if feature is not supported or that description is not exist.
>
> Signed-off-by: Yuval Shaia <yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
> ---
> drivers/net/ethernet/mellanox/mlx4/fw.c | 37 +++++++++++++++++++++++++++---
> 1 files changed, 33 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
> index 2e88a23..79ab326 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/fw.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
> @@ -91,7 +91,10 @@ static void dump_dev_cap_flags(struct mlx4_dev *dev, u64 flags)
> [ 8] =P_Key violation counter",
> [ 9] =Q_Key violation counter",
> [10] =VMM",
> + [11] =Fibre Channel Protocol On Ethernet Ports support",
> [12] =Dual Port Different Protocol (DPDP) support",
> + [13] =Raw Ethertype support",
> + [14] =Raw IPv6 support",
> [15] =Big LSO headers",
> [16] =MW support",
> [17] =APM support",
> @@ -99,16 +102,40 @@ static void dump_dev_cap_flags(struct mlx4_dev *dev, u64 flags)
> [19] =Raw multicast support",
> [20] =Address vector port checking support",
> [21] =UD multicast support",
> + [22] =UD IPv4 Multicast support",
> [24] =Demand paging support",
> [25] =Router support",
> + [26] =L2 Ethernet Multicast support",
> + [28] =Software parsing support for UD transport",
> + [29] =TCP checksum off-load support",
> [30] =IBoE support",
> + [31] =FCoE T11 frame format support",
> [32] =Unicast loopback support",
> + [33] =Multicast loopback support",
> [34] =FCS header control",
> + [35] =Address Path ud_force_mgid support",
> + [36] =Header-Data Split support",
> + [37] =Wake On LAN support on port 1",
> + [38] =Wake On LAN support on port 2",
> + [39] =Fatal Warning Event upon a thermal warning condition",
> [38] =Wake On LAN support",
> [40] =UDP RSS support",
> [41] =Unicast VEP steering support",
> [42] =Multicast VEP steering support",
> + [43] =VLAN Steering mechanism support",
> + [44] =Steering according to EtherType support",
> + [45] =WQE format version 1 support",
> + [46] =Keep Alive Validiation support",
> + [47] =PTP1588 support",
> [48] =Counters support",
> + [49] =Advanced Counters support",
> + [50] =Force Ethernet user priority from QPC support",
> + [51] =RX Port Num check disabled",
> + [52] =RSS on fragmented IP datagram support",

Hi,

Except for Or's comments, [55] exists twice. Furthermore, please move
[56]-[57] to be after [55] =Port link type sensing support".

> + [55] =Link Sensing support",
> + [56] =Reliable Multicast support",
> + [57] =Fast Drop support",
> + [58] =Protected FMR support",
> [53] =Port ETS Scheduler support",
> [55] =Port link type sensing support",
> [59] =Port management change event support",
> @@ -119,8 +146,9 @@ static void dump_dev_cap_flags(struct mlx4_dev *dev, u64 flags)
>
> mlx4_dbg(dev, "DEV_CAP flags:\n");
> for (i =; i < ARRAY_SIZE(fname); ++i)
> - if (fname[i] && (flags & (1LL << i)))
> - mlx4_dbg(dev, " %s\n", fname[i]);
> + if (fname[i])
> + mlx4_dbg(dev, " (%c) %s\n", (flags & (1LL << i)) ?
> + '*' : ' ', fname[i]);
> }

I think that the strings should be displayed only if both driver and FW
supports them. You could add a QUERY_DEV_CAP_SUPPORTED_FLAGS which ors
all the supported flags in device.h and check if (flags &
QUERY_DEV_CAP_SUPPORTED_FLAGS) & (1LL << i)).

>
> static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
> @@ -144,8 +172,9 @@ static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
> int i;
>
> for (i =; i < ARRAY_SIZE(fname); ++i)
> - if (fname[i] && (flags & (1LL << i)))
> - mlx4_dbg(dev, " %s\n", fname[i]);
> + if (fname[i])
> + mlx4_dbg(dev, " (%c) %s\n", (flags & (1LL << i)) ?
> + '*' : ' ', fname[i]);
> }
>
> int mlx4_MOD_STAT_CFG(struct mlx4_dev *dev, struct mlx4_mod_stat_cfg *cfg)
> --
> 1.7.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

Regards,
Matan