[dpdk-dev] [PATCH 04/12] net/mlx5: add VF LAG mode bonding device recognition

Slava Ovsiienko viacheslavo at mellanox.com
Tue Oct 1 11:02:30 CEST 2019


Hi, Ferruh

> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit at intel.com>
> Sent: Monday, September 30, 2019 13:35
> To: Slava Ovsiienko <viacheslavo at mellanox.com>; dev at dpdk.org
> Cc: Matan Azrad <matan at mellanox.com>; Raslan Darawsheh
> <rasland at mellanox.com>
> Subject: Re: [dpdk-dev] [PATCH 04/12] net/mlx5: add VF LAG mode bonding
> device recognition
> 
> On 9/25/2019 8:53 AM, Viacheslav Ovsiienko wrote:
> > The Mellanox NICs starting from ConnectX-5 support LAG over NIC ports
> > internally, implemented by the NIC firmware and hardware.
> > The multiport NIC presents multiple physical PCI functions (PF), with
> > SR-IOV multiple virtual PCI functions (VFs) might be presented.
> > With switchdev mode the VF representors are engaged and PFs and their
> > VFs are connected by internal E-Switch feature. Each PF and related
> > VFs have dedicated E-Switch and belong to dedicated switch domain.
> >
> > If NIC ports are combined to support NIC the kernel drivers introduce
> > the single unified Infiniband multiport devices, and all only one
> > unified E-Switch with single switch domain combines master PF all all
> > VFs. No extra DPDK bonding device is needed.
> >
> > Signed-off-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>
> 
> <...>
> 
> > +
> > +	/* Use safe format to check maximal buffer length. */ #pragma GCC
> > +diagnostic ignored "-Wformat-nonliteral"
> > +	while (fscanf(file, format, ifname) == 1) { #pragma GCC diagnostic
> > +error "-Wformat-nonliteral"
> > +		char tmp_str[IF_NAMESIZE + 32];
> > +		struct rte_pci_addr pci_addr;
> > +		struct mlx5_switch_info	info;
> 
> 
> Hi Slava,
> 
> The ICC is failing because of the pragma [1],
> - Can you please explain why it is needed, can we escape from it?

GCC generates error/warning, depending on the settings "-Werror=format-nonliteral",
for the fscanf(file, format, ...) call,  if the "format" parameter is not literal.

> - If we can't escape can you please add compiler checks around it? [2]


Sure, I will. And I'm sorry for missing this in the patch.
BTW , there are multiple usages of "#ifdef __INTEL_COMPILER"
around the GCC pragmas. I think RTE_TOOLCHAIN_GCC is more relevant for the
in case being discussed.

> - And should we enable it as 'error' by default, what about following [3]?
Yes, it would be better, thanks for the nice clue.

WBR, Slava
> 
> [1]
> .../drivers/net/mlx5/mlx5.c(2301): error #2282: unrecognized GCC pragma
>   #pragma GCC diagnostic ignored "-Wformat-nonliteral"
>                          ^
> 
> [2]
> #ifdef __GNUC__
> #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 1) #pragma
> GCC diagnostic ignored "-Wformat-nonliteral"
> #endif
> #endif
> 
> 
> [3]
>  #pragma GCC diagnostic push
>  #pragma GCC diagnostic ignored "-Wformat-nonliteral"
> <...>
>  #pragma GCC diagnostic pop


More information about the dev mailing list