Re: [PATCH v4 rdma-next 4/6] RDMA/mlx5: Introduce mlx5r_cache_rb_key

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Michael,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on rdma/for-next]
[also build test WARNING on linus/master v6.2-rc5]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Michael-Guralnik/RDMA-mlx5-Don-t-keep-umrable-page_shift-in-cache-entries/20230115-213631
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git for-next
patch link:    https://lore.kernel.org/r/20230115133454.29000-5-michaelgur%40nvidia.com
patch subject: [PATCH v4 rdma-next 4/6] RDMA/mlx5: Introduce mlx5r_cache_rb_key
config: x86_64-randconfig-r021-20230123 (https://download.01.org/0day-ci/archive/20230125/202301250543.S3rDnUPI-lkp@xxxxxxxxx/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/b248641a9895ca71c30d10b95b4be730fd65576a
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Michael-Guralnik/RDMA-mlx5-Don-t-keep-umrable-page_shift-in-cache-entries/20230115-213631
        git checkout b248641a9895ca71c30d10b95b4be730fd65576a
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/infiniband/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

   In file included from drivers/infiniband/hw/mlx5/ah.c:33:
>> drivers/infiniband/hw/mlx5/mlx5_ib.h:1378:9: warning: incompatible pointer to integer conversion returning 'void *' from a function with result type 'int' [-Wint-conversion]
           return NULL;
                  ^~~~
   include/linux/stddef.h:8:14: note: expanded from macro 'NULL'
   #define NULL ((void *)0)
                ^~~~~~~~~~~
   1 warning generated.


vim +1378 drivers/infiniband/hw/mlx5/mlx5_ib.h

  1217	
  1218	int mlx5_ib_db_map_user(struct mlx5_ib_ucontext *context, unsigned long virt,
  1219				struct mlx5_db *db);
  1220	void mlx5_ib_db_unmap_user(struct mlx5_ib_ucontext *context, struct mlx5_db *db);
  1221	void __mlx5_ib_cq_clean(struct mlx5_ib_cq *cq, u32 qpn, struct mlx5_ib_srq *srq);
  1222	void mlx5_ib_cq_clean(struct mlx5_ib_cq *cq, u32 qpn, struct mlx5_ib_srq *srq);
  1223	void mlx5_ib_free_srq_wqe(struct mlx5_ib_srq *srq, int wqe_index);
  1224	int mlx5_ib_create_ah(struct ib_ah *ah, struct rdma_ah_init_attr *init_attr,
  1225			      struct ib_udata *udata);
  1226	int mlx5_ib_query_ah(struct ib_ah *ibah, struct rdma_ah_attr *ah_attr);
  1227	static inline int mlx5_ib_destroy_ah(struct ib_ah *ah, u32 flags)
  1228	{
  1229		return 0;
  1230	}
  1231	int mlx5_ib_create_srq(struct ib_srq *srq, struct ib_srq_init_attr *init_attr,
  1232			       struct ib_udata *udata);
  1233	int mlx5_ib_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
  1234			       enum ib_srq_attr_mask attr_mask, struct ib_udata *udata);
  1235	int mlx5_ib_query_srq(struct ib_srq *ibsrq, struct ib_srq_attr *srq_attr);
  1236	int mlx5_ib_destroy_srq(struct ib_srq *srq, struct ib_udata *udata);
  1237	int mlx5_ib_post_srq_recv(struct ib_srq *ibsrq, const struct ib_recv_wr *wr,
  1238				  const struct ib_recv_wr **bad_wr);
  1239	int mlx5_ib_enable_lb(struct mlx5_ib_dev *dev, bool td, bool qp);
  1240	void mlx5_ib_disable_lb(struct mlx5_ib_dev *dev, bool td, bool qp);
  1241	int mlx5_ib_create_qp(struct ib_qp *qp, struct ib_qp_init_attr *init_attr,
  1242			      struct ib_udata *udata);
  1243	int mlx5_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
  1244			      int attr_mask, struct ib_udata *udata);
  1245	int mlx5_ib_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *qp_attr, int qp_attr_mask,
  1246			     struct ib_qp_init_attr *qp_init_attr);
  1247	int mlx5_ib_destroy_qp(struct ib_qp *qp, struct ib_udata *udata);
  1248	void mlx5_ib_drain_sq(struct ib_qp *qp);
  1249	void mlx5_ib_drain_rq(struct ib_qp *qp);
  1250	int mlx5_ib_read_wqe_sq(struct mlx5_ib_qp *qp, int wqe_index, void *buffer,
  1251				size_t buflen, size_t *bc);
  1252	int mlx5_ib_read_wqe_rq(struct mlx5_ib_qp *qp, int wqe_index, void *buffer,
  1253				size_t buflen, size_t *bc);
  1254	int mlx5_ib_read_wqe_srq(struct mlx5_ib_srq *srq, int wqe_index, void *buffer,
  1255				 size_t buflen, size_t *bc);
  1256	int mlx5_ib_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,
  1257			      struct ib_udata *udata);
  1258	int mlx5_ib_destroy_cq(struct ib_cq *cq, struct ib_udata *udata);
  1259	int mlx5_ib_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *wc);
  1260	int mlx5_ib_arm_cq(struct ib_cq *ibcq, enum ib_cq_notify_flags flags);
  1261	int mlx5_ib_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period);
  1262	int mlx5_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata);
  1263	struct ib_mr *mlx5_ib_get_dma_mr(struct ib_pd *pd, int acc);
  1264	struct ib_mr *mlx5_ib_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
  1265					  u64 virt_addr, int access_flags,
  1266					  struct ib_udata *udata);
  1267	struct ib_mr *mlx5_ib_reg_user_mr_dmabuf(struct ib_pd *pd, u64 start,
  1268						 u64 length, u64 virt_addr,
  1269						 int fd, int access_flags,
  1270						 struct ib_udata *udata);
  1271	int mlx5_ib_advise_mr(struct ib_pd *pd,
  1272			      enum ib_uverbs_advise_mr_advice advice,
  1273			      u32 flags,
  1274			      struct ib_sge *sg_list,
  1275			      u32 num_sge,
  1276			      struct uverbs_attr_bundle *attrs);
  1277	int mlx5_ib_alloc_mw(struct ib_mw *mw, struct ib_udata *udata);
  1278	int mlx5_ib_dealloc_mw(struct ib_mw *mw);
  1279	struct mlx5_ib_mr *mlx5_ib_alloc_implicit_mr(struct mlx5_ib_pd *pd,
  1280						     int access_flags);
  1281	void mlx5_ib_free_implicit_mr(struct mlx5_ib_mr *mr);
  1282	void mlx5_ib_free_odp_mr(struct mlx5_ib_mr *mr);
  1283	struct ib_mr *mlx5_ib_rereg_user_mr(struct ib_mr *ib_mr, int flags, u64 start,
  1284					    u64 length, u64 virt_addr, int access_flags,
  1285					    struct ib_pd *pd, struct ib_udata *udata);
  1286	int mlx5_ib_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata);
  1287	struct ib_mr *mlx5_ib_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
  1288				       u32 max_num_sg);
  1289	struct ib_mr *mlx5_ib_alloc_mr_integrity(struct ib_pd *pd,
  1290						 u32 max_num_sg,
  1291						 u32 max_num_meta_sg);
  1292	int mlx5_ib_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg, int sg_nents,
  1293			      unsigned int *sg_offset);
  1294	int mlx5_ib_map_mr_sg_pi(struct ib_mr *ibmr, struct scatterlist *data_sg,
  1295				 int data_sg_nents, unsigned int *data_sg_offset,
  1296				 struct scatterlist *meta_sg, int meta_sg_nents,
  1297				 unsigned int *meta_sg_offset);
  1298	int mlx5_ib_process_mad(struct ib_device *ibdev, int mad_flags, u32 port_num,
  1299				const struct ib_wc *in_wc, const struct ib_grh *in_grh,
  1300				const struct ib_mad *in, struct ib_mad *out,
  1301				size_t *out_mad_size, u16 *out_mad_pkey_index);
  1302	int mlx5_ib_alloc_xrcd(struct ib_xrcd *xrcd, struct ib_udata *udata);
  1303	int mlx5_ib_dealloc_xrcd(struct ib_xrcd *xrcd, struct ib_udata *udata);
  1304	int mlx5_query_ext_port_caps(struct mlx5_ib_dev *dev, unsigned int port);
  1305	int mlx5_query_mad_ifc_system_image_guid(struct ib_device *ibdev,
  1306						 __be64 *sys_image_guid);
  1307	int mlx5_query_mad_ifc_max_pkeys(struct ib_device *ibdev,
  1308					 u16 *max_pkeys);
  1309	int mlx5_query_mad_ifc_vendor_id(struct ib_device *ibdev,
  1310					 u32 *vendor_id);
  1311	int mlx5_query_mad_ifc_node_desc(struct mlx5_ib_dev *dev, char *node_desc);
  1312	int mlx5_query_mad_ifc_node_guid(struct mlx5_ib_dev *dev, __be64 *node_guid);
  1313	int mlx5_query_mad_ifc_pkey(struct ib_device *ibdev, u32 port, u16 index,
  1314				    u16 *pkey);
  1315	int mlx5_query_mad_ifc_gids(struct ib_device *ibdev, u32 port, int index,
  1316				    union ib_gid *gid);
  1317	int mlx5_query_mad_ifc_port(struct ib_device *ibdev, u32 port,
  1318				    struct ib_port_attr *props);
  1319	int mlx5_ib_query_port(struct ib_device *ibdev, u32 port,
  1320			       struct ib_port_attr *props);
  1321	void mlx5_ib_populate_pas(struct ib_umem *umem, size_t page_size, __be64 *pas,
  1322				  u64 access_flags);
  1323	void mlx5_ib_copy_pas(u64 *old, u64 *new, int step, int num);
  1324	int mlx5_ib_get_cqe_size(struct ib_cq *ibcq);
  1325	int mlx5_mkey_cache_init(struct mlx5_ib_dev *dev);
  1326	int mlx5_mkey_cache_cleanup(struct mlx5_ib_dev *dev);
  1327	struct mlx5_cache_ent *mlx5r_cache_create_ent(struct mlx5_ib_dev *dev,
  1328						      struct mlx5r_cache_rb_key rb_key,
  1329						      bool persistent_entry);
  1330	
  1331	struct mlx5_ib_mr *mlx5_mr_cache_alloc(struct mlx5_ib_dev *dev,
  1332					       int access_flags, int access_mode,
  1333					       int ndescs);
  1334	
  1335	int mlx5_ib_check_mr_status(struct ib_mr *ibmr, u32 check_mask,
  1336				    struct ib_mr_status *mr_status);
  1337	struct ib_wq *mlx5_ib_create_wq(struct ib_pd *pd,
  1338					struct ib_wq_init_attr *init_attr,
  1339					struct ib_udata *udata);
  1340	int mlx5_ib_destroy_wq(struct ib_wq *wq, struct ib_udata *udata);
  1341	int mlx5_ib_modify_wq(struct ib_wq *wq, struct ib_wq_attr *wq_attr,
  1342			      u32 wq_attr_mask, struct ib_udata *udata);
  1343	int mlx5_ib_create_rwq_ind_table(struct ib_rwq_ind_table *ib_rwq_ind_table,
  1344					 struct ib_rwq_ind_table_init_attr *init_attr,
  1345					 struct ib_udata *udata);
  1346	int mlx5_ib_destroy_rwq_ind_table(struct ib_rwq_ind_table *wq_ind_table);
  1347	struct ib_mr *mlx5_ib_reg_dm_mr(struct ib_pd *pd, struct ib_dm *dm,
  1348					struct ib_dm_mr_attr *attr,
  1349					struct uverbs_attr_bundle *attrs);
  1350	
  1351	#ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING
  1352	int mlx5_ib_odp_init_one(struct mlx5_ib_dev *ibdev);
  1353	int mlx5r_odp_create_eq(struct mlx5_ib_dev *dev, struct mlx5_ib_pf_eq *eq);
  1354	void mlx5_ib_odp_cleanup_one(struct mlx5_ib_dev *ibdev);
  1355	int __init mlx5_ib_odp_init(void);
  1356	void mlx5_ib_odp_cleanup(void);
  1357	int mlx5_odp_init_mkey_cache(struct mlx5_ib_dev *dev);
  1358	void mlx5_odp_populate_xlt(void *xlt, size_t idx, size_t nentries,
  1359				   struct mlx5_ib_mr *mr, int flags);
  1360	
  1361	int mlx5_ib_advise_mr_prefetch(struct ib_pd *pd,
  1362				       enum ib_uverbs_advise_mr_advice advice,
  1363				       u32 flags, struct ib_sge *sg_list, u32 num_sge);
  1364	int mlx5_ib_init_odp_mr(struct mlx5_ib_mr *mr);
  1365	int mlx5_ib_init_dmabuf_mr(struct mlx5_ib_mr *mr);
  1366	#else /* CONFIG_INFINIBAND_ON_DEMAND_PAGING */
  1367	static inline int mlx5_ib_odp_init_one(struct mlx5_ib_dev *ibdev) { return 0; }
  1368	static inline int mlx5r_odp_create_eq(struct mlx5_ib_dev *dev,
  1369					      struct mlx5_ib_pf_eq *eq)
  1370	{
  1371		return 0;
  1372	}
  1373	static inline void mlx5_ib_odp_cleanup_one(struct mlx5_ib_dev *ibdev) {}
  1374	static inline int mlx5_ib_odp_init(void) { return 0; }
  1375	static inline void mlx5_ib_odp_cleanup(void)				    {}
  1376	static inline int mlx5_odp_init_mkey_cache(struct mlx5_ib_dev *dev)
  1377	{
> 1378		return NULL;
  1379	}
  1380	static inline void mlx5_odp_populate_xlt(void *xlt, size_t idx, size_t nentries,
  1381						 struct mlx5_ib_mr *mr, int flags) {}
  1382	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux