On Tue, 2019-07-23 at 10:22 +0300, Leon Romanovsky wrote: > From: Leon Romanovsky <leonro@xxxxxxxxxxxx> > > DIM causes to the following warnings during kernel compilation > which indicates that tx_profile and rx_profile are supposed to > be declared in *.c and not in *.h files. > > In file included from ./include/rdma/ib_verbs.h:64, > from ./include/linux/mlx5/device.h:37, > from ./include/linux/mlx5/driver.h:51, > from ./include/linux/mlx5/vport.h:36, > from drivers/infiniband/hw/mlx5/ib_virt.c:34: > ./include/linux/dim.h:326:1: warning: _tx_profile_ defined but not > used [-Wunused-const-variable=] > 326 | > tx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = { > | ^~~~~~~~~~ > ./include/linux/dim.h:320:1: warning: _rx_profile_ defined but not > used [-Wunused-const-variable=] > 320 | > rx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = { > | ^~~~~~~~~~ > > Fixes: 4f75da3666c0 ("linux/dim: Move implementation to .c files") > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> A similar patch was already submitted to linux-kernel ML, "[PATCH] linux/dim: fix -Wunused-const-variable warnings" I basically asked Qian to do the same as you did in this patch. Anyway i guess it is ok to drop that patch and keep this one. Acked-by: Saeed Mahameed <saeedm@xxxxxxxxxxxx> > --- > include/linux/dim.h | 56 ----------------------------------------- > ---- > lib/dim/net_dim.c | 56 > +++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 56 insertions(+), 56 deletions(-) > > diff --git a/include/linux/dim.h b/include/linux/dim.h > index d3a0fbfff2bb..9fa4b3f88c39 100644 > --- a/include/linux/dim.h > +++ b/include/linux/dim.h > @@ -272,62 +272,6 @@ dim_update_sample_with_comps(u16 event_ctr, u64 > packets, u64 bytes, u64 comps, > > /* Net DIM */ > > -/* > - * Net DIM profiles: > - * There are different set of profiles for each CQ period > mode. > - * There are different set of profiles for RX/TX CQs. > - * Each profile size must be of NET_DIM_PARAMS_NUM_PROFILES > - */ > -#define NET_DIM_PARAMS_NUM_PROFILES 5 > -#define NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE 256 > -#define NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE 128 > -#define NET_DIM_DEF_PROFILE_CQE 1 > -#define NET_DIM_DEF_PROFILE_EQE 1 > - > -#define NET_DIM_RX_EQE_PROFILES { \ > - {1, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ > - {8, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ > - {64, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ > - {128, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ > - {256, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ > -} > - > -#define NET_DIM_RX_CQE_PROFILES { \ > - {2, 256}, \ > - {8, 128}, \ > - {16, 64}, \ > - {32, 64}, \ > - {64, 64} \ > -} > - > -#define NET_DIM_TX_EQE_PROFILES { \ > - {1, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ > - {8, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ > - {32, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ > - {64, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ > - {128, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE} \ > -} > - > -#define NET_DIM_TX_CQE_PROFILES { \ > - {5, 128}, \ > - {8, 64}, \ > - {16, 32}, \ > - {32, 32}, \ > - {64, 32} \ > -} > - > -static const struct dim_cq_moder > -rx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = { > - NET_DIM_RX_EQE_PROFILES, > - NET_DIM_RX_CQE_PROFILES, > -}; > - > -static const struct dim_cq_moder > -tx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = { > - NET_DIM_TX_EQE_PROFILES, > - NET_DIM_TX_CQE_PROFILES, > -}; > - > /** > * net_dim_get_rx_moderation - provide a CQ moderation object for > the given RX profile > * @cq_period_mode: CQ period mode > diff --git a/lib/dim/net_dim.c b/lib/dim/net_dim.c > index 5bcc902c5388..a4db51c21266 100644 > --- a/lib/dim/net_dim.c > +++ b/lib/dim/net_dim.c > @@ -5,6 +5,62 @@ > > #include <linux/dim.h> > > +/* > + * Net DIM profiles: > + * There are different set of profiles for each CQ period > mode. > + * There are different set of profiles for RX/TX CQs. > + * Each profile size must be of NET_DIM_PARAMS_NUM_PROFILES > + */ > +#define NET_DIM_PARAMS_NUM_PROFILES 5 > +#define NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE 256 > +#define NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE 128 > +#define NET_DIM_DEF_PROFILE_CQE 1 > +#define NET_DIM_DEF_PROFILE_EQE 1 > + > +#define NET_DIM_RX_EQE_PROFILES { \ > + {1, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ > + {8, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ > + {64, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ > + {128, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ > + {256, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ > +} > + > +#define NET_DIM_RX_CQE_PROFILES { \ > + {2, 256}, \ > + {8, 128}, \ > + {16, 64}, \ > + {32, 64}, \ > + {64, 64} \ > +} > + > +#define NET_DIM_TX_EQE_PROFILES { \ > + {1, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ > + {8, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ > + {32, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ > + {64, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ > + {128, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE} \ > +} > + > +#define NET_DIM_TX_CQE_PROFILES { \ > + {5, 128}, \ > + {8, 64}, \ > + {16, 32}, \ > + {32, 32}, \ > + {64, 32} \ > +} > + > +static const struct dim_cq_moder > +rx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = { > + NET_DIM_RX_EQE_PROFILES, > + NET_DIM_RX_CQE_PROFILES, > +}; > + > +static const struct dim_cq_moder > +tx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = { > + NET_DIM_TX_EQE_PROFILES, > + NET_DIM_TX_CQE_PROFILES, > +}; > + > struct dim_cq_moder > net_dim_get_rx_moderation(u8 cq_period_mode, int ix) > { > -- > 2.20.1 >