Subject: Re: [PATCH net-next v4] net: psample: Introduce stubs to remove NIC driver dependency

From: Leon Romanovsky <[email-masked]>
Date: Tue, 9 Feb 2021 12:01:19 +0200

On Tue, Feb 09, 2021 at 11:25:33AM +0200, Or Gerlitz wrote:
> On Tue, Feb 9, 2021 at 8:49 AM Leon Romanovsky <[email-masked]> wrote:
>
> [..]
>
> > This is another problem with mlx5 - complete madness with config options
> > that are not possible to test.
> > ➜  kernel git:(rdma-next) grep -h "config MLX" drivers/net/ethernet/mellanox/mlx5/core/Kconfig | awk '{ print $2}' | sort |uniq |wc -l
> > 19
>
> wait, why do you call it madness? we were suggested by some users (do
> git blame for the patches) to refine things with multiple configs and it seem
> to work quite well  -- what you don't like? and what's wrong with simple grep..

Yes, I aware of these users and what and why they asked it.

They didn't ask us to have new config for every feature/file, but to have
light ethernet device.

Other users are distributions and they enable all options that supported in
the specific kernel they picked, because they don't know in advance where their
distro will be used.

You also don't have capacity to test various combinations, so you
test only small subset of common ones that are pretty standard. This is why
you have this feeling of "work quite well".

And I'm not talking about compilations but actual regression runs.

I suggest to reduce number of configs to small amount, something like 3-5 options:
 * Basic ethernet driver
 * + ETH
 * + RDMA
 * + VDPA
 * ....
 * Full mlx5 driver

And there is nothing wrong with simple grep, it was my copy/paste from
another internal thread where this config bloat caused us to some griefs
in regression.

Thanks

>
> $ grep "config MLX5_" drivers/net/ethernet/mellanox/mlx5/core/Kconfig
> config MLX5_CORE
> config MLX5_ACCEL
> config MLX5_FPGA
> config MLX5_CORE_EN
> config MLX5_EN_ARFS
> config MLX5_EN_RXNFC
> config MLX5_MPFS
> config MLX5_ESWITCH
> config MLX5_CLS_ACT
> config MLX5_TC_CT
> config MLX5_CORE_EN_DCB
> config MLX5_CORE_IPOIB
> config MLX5_FPGA_IPSEC
> config MLX5_IPSEC
> config MLX5_EN_IPSEC
> config MLX5_FPGA_TLS
> config MLX5_TLS
> config MLX5_EN_TLS
> config MLX5_SW_STEERING
> config MLX5_SF
> config MLX5_SF_MANAGER
> config MLX5_EN_NVMEOTCP