* [dpdk-dev] [PATCH dpdk-dev v2] common/mlx5: fix possible building error @ 2020-03-02 10:55 xiangxia.m.yue 2020-03-03 7:15 ` Matan Azrad 2020-03-06 14:27 ` [dpdk-dev] [PATCH dpdk-dev v3] common/mlx5: fix dynamic loading reference xiangxia.m.yue 0 siblings, 2 replies; 10+ messages in thread From: xiangxia.m.yue @ 2020-03-02 10:55 UTC (permalink / raw) To: matan, rasland, alialnu; +Cc: dev, Tonghao Zhang, stable From: Tonghao Zhang <xiangxia.m.yue@gmail.com> When setting the CONFIG_RTE_BUILD_SHARED_LIB to y, and build the mlx5 pmd, there is a building error. To fix it, add RTE_IBVERBS_LINK_DLOPEN to include relative codes. > mlx5_common.o: In function `mlx5_glue_init': > drivers/common/mlx5/mlx5_common.c:324: undefined reference to `dlclose' Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") Cc: stable@dpdk.org Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> Tested-by: Ali Alnubani <alialnu@mellanox.com> --- drivers/common/mlx5/mlx5_common.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c index 610fb48..570a3f4 100644 --- a/drivers/common/mlx5/mlx5_common.c +++ b/drivers/common/mlx5/mlx5_common.c @@ -209,8 +209,6 @@ enum mlx5_class */ RTE_INIT_PRIO(mlx5_glue_init, CLASS) { - void *handle = NULL; - /* Initialize common log type. */ mlx5_common_logtype = rte_log_register("pmd.common.mlx5"); if (mlx5_common_logtype >= 0) @@ -249,6 +247,7 @@ enum mlx5_class mlx5_glue_path(glue_path, sizeof(glue_path)) : ""), }; unsigned int i = 0; + void *handle = NULL; void **sym; const char *dlmsg; @@ -320,8 +319,10 @@ enum mlx5_class mlx5_glue->fork_init(); return; glue_error: +#ifdef RTE_IBVERBS_LINK_DLOPEN if (handle) dlclose(handle); +#endif DRV_LOG(WARNING, "Cannot initialize MLX5 common due to missing" " run-time dependency on rdma-core libraries (libibverbs," " libmlx5)"); -- 1.8.3.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH dpdk-dev v2] common/mlx5: fix possible building error 2020-03-02 10:55 [dpdk-dev] [PATCH dpdk-dev v2] common/mlx5: fix possible building error xiangxia.m.yue @ 2020-03-03 7:15 ` Matan Azrad 2020-03-04 13:55 ` Tonghao Zhang 2020-03-06 14:27 ` [dpdk-dev] [PATCH dpdk-dev v3] common/mlx5: fix dynamic loading reference xiangxia.m.yue 1 sibling, 1 reply; 10+ messages in thread From: Matan Azrad @ 2020-03-03 7:15 UTC (permalink / raw) To: xiangxia.m.yue, Raslan Darawsheh, Ali Alnubani; +Cc: dev, stable Hi From: xiangxia.m.yue@gmail.com > From: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > When setting the CONFIG_RTE_BUILD_SHARED_LIB to y, and build the mlx5 > pmd, there is a building error. > To fix it, add RTE_IBVERBS_LINK_DLOPEN to include relative codes. > > > mlx5_common.o: In function `mlx5_glue_init': > > drivers/common/mlx5/mlx5_common.c:324: undefined reference to > `dlclose' > > Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") > Cc: stable@dpdk.org > > Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> > Tested-by: Ali Alnubani <alialnu@mellanox.com> The title should point to the root cause - not to the results. Something like: common/mlx5: fix dynamic loading reference > drivers/common/mlx5/mlx5_common.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/common/mlx5/mlx5_common.c > b/drivers/common/mlx5/mlx5_common.c > index 610fb48..570a3f4 100644 > --- a/drivers/common/mlx5/mlx5_common.c > +++ b/drivers/common/mlx5/mlx5_common.c > @@ -209,8 +209,6 @@ enum mlx5_class > */ > RTE_INIT_PRIO(mlx5_glue_init, CLASS) > { > - void *handle = NULL; > - > /* Initialize common log type. */ > mlx5_common_logtype = rte_log_register("pmd.common.mlx5"); > if (mlx5_common_logtype >= 0) > @@ -249,6 +247,7 @@ enum mlx5_class > mlx5_glue_path(glue_path, sizeof(glue_path)) : ""), > }; > unsigned int i = 0; > + void *handle = NULL; > void **sym; > const char *dlmsg; > > @@ -320,8 +319,10 @@ enum mlx5_class > mlx5_glue->fork_init(); > return; > glue_error: > +#ifdef RTE_IBVERBS_LINK_DLOPEN > if (handle) > dlclose(handle); > +#endif What's about " #include <dlfcn.h> " Is it compiled for you? If so, why dlclose is not known on your setup? > DRV_LOG(WARNING, "Cannot initialize MLX5 common due to > missing" > " run-time dependency on rdma-core libraries (libibverbs," > " libmlx5)"); > -- > 1.8.3.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH dpdk-dev v2] common/mlx5: fix possible building error 2020-03-03 7:15 ` Matan Azrad @ 2020-03-04 13:55 ` Tonghao Zhang 2020-03-04 14:25 ` Matan Azrad 0 siblings, 1 reply; 10+ messages in thread From: Tonghao Zhang @ 2020-03-04 13:55 UTC (permalink / raw) To: Matan Azrad; +Cc: Raslan Darawsheh, Ali Alnubani, dev, stable On Tue, Mar 3, 2020 at 3:15 PM Matan Azrad <matan@mellanox.com> wrote: > > > Hi > > From: xiangxia.m.yue@gmail.com > > From: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > > > When setting the CONFIG_RTE_BUILD_SHARED_LIB to y, and build the mlx5 > > pmd, there is a building error. > > To fix it, add RTE_IBVERBS_LINK_DLOPEN to include relative codes. > > > > > mlx5_common.o: In function `mlx5_glue_init': > > > drivers/common/mlx5/mlx5_common.c:324: undefined reference to > > `dlclose' > > > > Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") > > Cc: stable@dpdk.org > > > > Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > Tested-by: Ali Alnubani <alialnu@mellanox.com> > > The title should point to the root cause - not to the results. > > Something like: > > common/mlx5: fix dynamic loading reference > > > drivers/common/mlx5/mlx5_common.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/common/mlx5/mlx5_common.c > > b/drivers/common/mlx5/mlx5_common.c > > index 610fb48..570a3f4 100644 > > --- a/drivers/common/mlx5/mlx5_common.c > > +++ b/drivers/common/mlx5/mlx5_common.c > > @@ -209,8 +209,6 @@ enum mlx5_class > > */ > > RTE_INIT_PRIO(mlx5_glue_init, CLASS) > > { > > - void *handle = NULL; > > - > > /* Initialize common log type. */ > > mlx5_common_logtype = rte_log_register("pmd.common.mlx5"); > > if (mlx5_common_logtype >= 0) > > @@ -249,6 +247,7 @@ enum mlx5_class > > mlx5_glue_path(glue_path, sizeof(glue_path)) : ""), > > }; > > unsigned int i = 0; > > + void *handle = NULL; > > void **sym; > > const char *dlmsg; > > > > @@ -320,8 +319,10 @@ enum mlx5_class > > mlx5_glue->fork_init(); > > return; > > glue_error: > > +#ifdef RTE_IBVERBS_LINK_DLOPEN > > if (handle) > > dlclose(handle); > > +#endif > > > What's about " #include <dlfcn.h> " Is it compiled for you? Yes, still building fail. > If so, why dlclose is not known on your setup? When I fixed it, I found the codes in mlx5_glue_init, use the RTE_IBVERBS_LINK_DLOPEN. but dlclose is not included in it. I think we should add RTE_IBVERBS_LINK_DLOPEN to fix the building fail. > > > > DRV_LOG(WARNING, "Cannot initialize MLX5 common due to > > missing" > > " run-time dependency on rdma-core libraries (libibverbs," > > " libmlx5)"); > > -- > > 1.8.3.1 > -- Thanks, Tonghao ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH dpdk-dev v2] common/mlx5: fix possible building error 2020-03-04 13:55 ` Tonghao Zhang @ 2020-03-04 14:25 ` Matan Azrad 2020-03-04 15:13 ` Tonghao Zhang 0 siblings, 1 reply; 10+ messages in thread From: Matan Azrad @ 2020-03-04 14:25 UTC (permalink / raw) To: Tonghao Zhang; +Cc: Raslan Darawsheh, Ali Alnubani, dev, stable From: Tonghao Zhang > On Tue, Mar 3, 2020 at 3:15 PM Matan Azrad <matan@mellanox.com> wrote: > > > > > > Hi > > > > From: xiangxia.m.yue@gmail.com > > > From: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > > > > > When setting the CONFIG_RTE_BUILD_SHARED_LIB to y, and build the > > > mlx5 pmd, there is a building error. > > > To fix it, add RTE_IBVERBS_LINK_DLOPEN to include relative codes. > > > > > > > mlx5_common.o: In function `mlx5_glue_init': > > > > drivers/common/mlx5/mlx5_common.c:324: undefined reference to > > > `dlclose' > > > > > > Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") > > > Cc: stable@dpdk.org > > > > > > Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > > Tested-by: Ali Alnubani <alialnu@mellanox.com> > > > > The title should point to the root cause - not to the results. > > > > Something like: > > > > common/mlx5: fix dynamic loading reference > > > > > drivers/common/mlx5/mlx5_common.c | 5 +++-- > > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/common/mlx5/mlx5_common.c > > > b/drivers/common/mlx5/mlx5_common.c > > > index 610fb48..570a3f4 100644 > > > --- a/drivers/common/mlx5/mlx5_common.c > > > +++ b/drivers/common/mlx5/mlx5_common.c > > > @@ -209,8 +209,6 @@ enum mlx5_class > > > */ > > > RTE_INIT_PRIO(mlx5_glue_init, CLASS) { > > > - void *handle = NULL; > > > - > > > /* Initialize common log type. */ > > > mlx5_common_logtype = rte_log_register("pmd.common.mlx5"); > > > if (mlx5_common_logtype >= 0) > > > @@ -249,6 +247,7 @@ enum mlx5_class > > > mlx5_glue_path(glue_path, sizeof(glue_path)) : ""), > > > }; > > > unsigned int i = 0; > > > + void *handle = NULL; > > > void **sym; > > > const char *dlmsg; > > > > > > @@ -320,8 +319,10 @@ enum mlx5_class > > > mlx5_glue->fork_init(); > > > return; > > > glue_error: > > > +#ifdef RTE_IBVERBS_LINK_DLOPEN > > > if (handle) > > > dlclose(handle); > > > +#endif > > > > > > What's about " #include <dlfcn.h> " Is it compiled for you? > Yes, still building fail. > > If so, why dlclose is not known on your setup? > When I fixed it, I found the codes in mlx5_glue_init, use the > RTE_IBVERBS_LINK_DLOPEN. > but dlclose is not included in it. I think we should add > RTE_IBVERBS_LINK_DLOPEN to fix the building fail. I agree, but looks like the include should be in the define area too. No? > > > > > > > DRV_LOG(WARNING, "Cannot initialize MLX5 common due to > > > missing" > > > " run-time dependency on rdma-core libraries (libibverbs," > > > " libmlx5)"); > > > -- > > > 1.8.3.1 > > > > > -- > Thanks, > Tonghao ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH dpdk-dev v2] common/mlx5: fix possible building error 2020-03-04 14:25 ` Matan Azrad @ 2020-03-04 15:13 ` Tonghao Zhang 2020-03-04 16:03 ` Matan Azrad 0 siblings, 1 reply; 10+ messages in thread From: Tonghao Zhang @ 2020-03-04 15:13 UTC (permalink / raw) To: Matan Azrad; +Cc: Raslan Darawsheh, Ali Alnubani, dev, stable On Wed, Mar 4, 2020 at 10:25 PM Matan Azrad <matan@mellanox.com> wrote: > > > > From: Tonghao Zhang > > On Tue, Mar 3, 2020 at 3:15 PM Matan Azrad <matan@mellanox.com> wrote: > > > > > > > > > Hi > > > > > > From: xiangxia.m.yue@gmail.com > > > > From: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > > > > > > > When setting the CONFIG_RTE_BUILD_SHARED_LIB to y, and build the > > > > mlx5 pmd, there is a building error. > > > > To fix it, add RTE_IBVERBS_LINK_DLOPEN to include relative codes. > > > > > > > > > mlx5_common.o: In function `mlx5_glue_init': > > > > > drivers/common/mlx5/mlx5_common.c:324: undefined reference to > > > > `dlclose' > > > > > > > > Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") > > > > Cc: stable@dpdk.org > > > > > > > > Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > > > Tested-by: Ali Alnubani <alialnu@mellanox.com> > > > > > > The title should point to the root cause - not to the results. > > > > > > Something like: > > > > > > common/mlx5: fix dynamic loading reference > > > > > > > drivers/common/mlx5/mlx5_common.c | 5 +++-- > > > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/drivers/common/mlx5/mlx5_common.c > > > > b/drivers/common/mlx5/mlx5_common.c > > > > index 610fb48..570a3f4 100644 > > > > --- a/drivers/common/mlx5/mlx5_common.c > > > > +++ b/drivers/common/mlx5/mlx5_common.c > > > > @@ -209,8 +209,6 @@ enum mlx5_class > > > > */ > > > > RTE_INIT_PRIO(mlx5_glue_init, CLASS) { > > > > - void *handle = NULL; > > > > - > > > > /* Initialize common log type. */ > > > > mlx5_common_logtype = rte_log_register("pmd.common.mlx5"); > > > > if (mlx5_common_logtype >= 0) > > > > @@ -249,6 +247,7 @@ enum mlx5_class > > > > mlx5_glue_path(glue_path, sizeof(glue_path)) : ""), > > > > }; > > > > unsigned int i = 0; > > > > + void *handle = NULL; > > > > void **sym; > > > > const char *dlmsg; > > > > > > > > @@ -320,8 +319,10 @@ enum mlx5_class > > > > mlx5_glue->fork_init(); > > > > return; > > > > glue_error: > > > > +#ifdef RTE_IBVERBS_LINK_DLOPEN > > > > if (handle) > > > > dlclose(handle); > > > > +#endif > > > > > > > > > What's about " #include <dlfcn.h> " Is it compiled for you? > > Yes, still building fail. > > > If so, why dlclose is not known on your setup? > > When I fixed it, I found the codes in mlx5_glue_init, use the > > RTE_IBVERBS_LINK_DLOPEN. > > but dlclose is not included in it. I think we should add > > RTE_IBVERBS_LINK_DLOPEN to fix the building fail. > > I agree, but looks like the include should be in the define area too. No? No, the "dlfcn.h" in dpdk is not included in define area at all. [root@localhost dpdk-next-net]# grep -rwin "dlfcn.h" lib/librte_eal/common/eal_common_options.c:17:#include <dlfcn.h> drivers/net/ark/ark_ethdev.c:7:#include <dlfcn.h> drivers/net/mlx4/mlx4.c:11:#include <dlfcn.h> drivers/common/mlx5/mlx5_common.c:5:#include <dlfcn.h> examples/performance-thread/pthread_shim/pthread_shim.c:10:#include <dlfcn.h> and other codes should be in define area, but not: drivers/net/ark/ark_ethdev.c:177 lib/librte_eal/common/eal_common_options.c:306 drivers/common/mlx5/mlx5_common.c:325(this patch fix) > > > > > > > > > > DRV_LOG(WARNING, "Cannot initialize MLX5 common due to > > > > missing" > > > > " run-time dependency on rdma-core libraries (libibverbs," > > > > " libmlx5)"); > > > > -- > > > > 1.8.3.1 > > > > > > > > > -- > > Thanks, > > Tonghao -- Thanks, Tonghao ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH dpdk-dev v2] common/mlx5: fix possible building error 2020-03-04 15:13 ` Tonghao Zhang @ 2020-03-04 16:03 ` Matan Azrad 2020-03-05 6:59 ` Tonghao Zhang 0 siblings, 1 reply; 10+ messages in thread From: Matan Azrad @ 2020-03-04 16:03 UTC (permalink / raw) To: Tonghao Zhang; +Cc: Raslan Darawsheh, Ali Alnubani, dev, stable From: Tonghao Zhang > On Wed, Mar 4, 2020 at 10:25 PM Matan Azrad <matan@mellanox.com> > wrote: > > > > > > > > From: Tonghao Zhang > > > On Tue, Mar 3, 2020 at 3:15 PM Matan Azrad <matan@mellanox.com> > wrote: > > > > > > > > > > > > Hi > > > > > > > > From: xiangxia.m.yue@gmail.com > > > > > From: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > > > > > > > > > When setting the CONFIG_RTE_BUILD_SHARED_LIB to y, and build > the > > > > > mlx5 pmd, there is a building error. > > > > > To fix it, add RTE_IBVERBS_LINK_DLOPEN to include relative codes. > > > > > > > > > > > mlx5_common.o: In function `mlx5_glue_init': > > > > > > drivers/common/mlx5/mlx5_common.c:324: undefined reference > to > > > > > `dlclose' > > > > > > > > > > Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") > > > > > Cc: stable@dpdk.org > > > > > > > > > > Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > > > > Tested-by: Ali Alnubani <alialnu@mellanox.com> > > > > > > > > The title should point to the root cause - not to the results. > > > > > > > > Something like: > > > > > > > > common/mlx5: fix dynamic loading reference > > > > > > > > > drivers/common/mlx5/mlx5_common.c | 5 +++-- > > > > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > > > > > > > diff --git a/drivers/common/mlx5/mlx5_common.c > > > > > b/drivers/common/mlx5/mlx5_common.c > > > > > index 610fb48..570a3f4 100644 > > > > > --- a/drivers/common/mlx5/mlx5_common.c > > > > > +++ b/drivers/common/mlx5/mlx5_common.c > > > > > @@ -209,8 +209,6 @@ enum mlx5_class > > > > > */ > > > > > RTE_INIT_PRIO(mlx5_glue_init, CLASS) { > > > > > - void *handle = NULL; > > > > > - > > > > > /* Initialize common log type. */ > > > > > mlx5_common_logtype = rte_log_register("pmd.common.mlx5"); > > > > > if (mlx5_common_logtype >= 0) @@ -249,6 +247,7 @@ enum > > > > > mlx5_class > > > > > mlx5_glue_path(glue_path, sizeof(glue_path)) : ""), > > > > > }; > > > > > unsigned int i = 0; > > > > > + void *handle = NULL; > > > > > void **sym; > > > > > const char *dlmsg; > > > > > > > > > > @@ -320,8 +319,10 @@ enum mlx5_class > > > > > mlx5_glue->fork_init(); > > > > > return; > > > > > glue_error: > > > > > +#ifdef RTE_IBVERBS_LINK_DLOPEN > > > > > if (handle) > > > > > dlclose(handle); > > > > > +#endif > > > > > > > > > > > > What's about " #include <dlfcn.h> " Is it compiled for you? > > > Yes, still building fail. > > > > If so, why dlclose is not known on your setup? > > > When I fixed it, I found the codes in mlx5_glue_init, use the > > > RTE_IBVERBS_LINK_DLOPEN. > > > but dlclose is not included in it. I think we should add > > > RTE_IBVERBS_LINK_DLOPEN to fix the building fail. > > > > I agree, but looks like the include should be in the define area too. No? > No, the "dlfcn.h" in dpdk is not included in define area at all. > > [root@localhost dpdk-next-net]# grep -rwin "dlfcn.h" > lib/librte_eal/common/eal_common_options.c:17:#include <dlfcn.h> > drivers/net/ark/ark_ethdev.c:7:#include <dlfcn.h> > drivers/net/mlx4/mlx4.c:11:#include <dlfcn.h> > drivers/common/mlx5/mlx5_common.c:5:#include <dlfcn.h> > examples/performance-thread/pthread_shim/pthread_shim.c:10:#include > <dlfcn.h> > > and other codes should be in define area, but not: > drivers/net/ark/ark_ethdev.c:177 > lib/librte_eal/common/eal_common_options.c:306 > drivers/common/mlx5/mlx5_common.c:325(this patch fix) > So, Is it compiled well to include it while its lib is not loaded? > > > > > > > > > > > > > DRV_LOG(WARNING, "Cannot initialize MLX5 common due to > > > > > missing" > > > > > " run-time dependency on rdma-core libraries (libibverbs," > > > > > " libmlx5)"); > > > > > -- > > > > > 1.8.3.1 > > > > > > > > > > > > > -- > > > Thanks, > > > Tonghao > > > > -- > Thanks, > Tonghao ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH dpdk-dev v2] common/mlx5: fix possible building error 2020-03-04 16:03 ` Matan Azrad @ 2020-03-05 6:59 ` Tonghao Zhang 0 siblings, 0 replies; 10+ messages in thread From: Tonghao Zhang @ 2020-03-05 6:59 UTC (permalink / raw) To: Matan Azrad; +Cc: Raslan Darawsheh, Ali Alnubani, dev, stable On Thu, Mar 5, 2020 at 12:03 AM Matan Azrad <matan@mellanox.com> wrote: > > > > From: Tonghao Zhang > > On Wed, Mar 4, 2020 at 10:25 PM Matan Azrad <matan@mellanox.com> > > wrote: > > > > > > > > > > > > From: Tonghao Zhang > > > > On Tue, Mar 3, 2020 at 3:15 PM Matan Azrad <matan@mellanox.com> > > wrote: > > > > > > > > > > > > > > > Hi > > > > > > > > > > From: xiangxia.m.yue@gmail.com > > > > > > From: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > > > > > > > > > > > When setting the CONFIG_RTE_BUILD_SHARED_LIB to y, and build > > the > > > > > > mlx5 pmd, there is a building error. > > > > > > To fix it, add RTE_IBVERBS_LINK_DLOPEN to include relative codes. > > > > > > > > > > > > > mlx5_common.o: In function `mlx5_glue_init': > > > > > > > drivers/common/mlx5/mlx5_common.c:324: undefined reference > > to > > > > > > `dlclose' > > > > > > > > > > > > Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") > > > > > > Cc: stable@dpdk.org > > > > > > > > > > > > Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > > > > > Tested-by: Ali Alnubani <alialnu@mellanox.com> > > > > > > > > > > The title should point to the root cause - not to the results. > > > > > > > > > > Something like: > > > > > > > > > > common/mlx5: fix dynamic loading reference > > > > > > > > > > > drivers/common/mlx5/mlx5_common.c | 5 +++-- > > > > > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > > > > > > > > > diff --git a/drivers/common/mlx5/mlx5_common.c > > > > > > b/drivers/common/mlx5/mlx5_common.c > > > > > > index 610fb48..570a3f4 100644 > > > > > > --- a/drivers/common/mlx5/mlx5_common.c > > > > > > +++ b/drivers/common/mlx5/mlx5_common.c > > > > > > @@ -209,8 +209,6 @@ enum mlx5_class > > > > > > */ > > > > > > RTE_INIT_PRIO(mlx5_glue_init, CLASS) { > > > > > > - void *handle = NULL; > > > > > > - > > > > > > /* Initialize common log type. */ > > > > > > mlx5_common_logtype = rte_log_register("pmd.common.mlx5"); > > > > > > if (mlx5_common_logtype >= 0) @@ -249,6 +247,7 @@ enum > > > > > > mlx5_class > > > > > > mlx5_glue_path(glue_path, sizeof(glue_path)) : ""), > > > > > > }; > > > > > > unsigned int i = 0; > > > > > > + void *handle = NULL; > > > > > > void **sym; > > > > > > const char *dlmsg; > > > > > > > > > > > > @@ -320,8 +319,10 @@ enum mlx5_class > > > > > > mlx5_glue->fork_init(); > > > > > > return; > > > > > > glue_error: > > > > > > +#ifdef RTE_IBVERBS_LINK_DLOPEN > > > > > > if (handle) > > > > > > dlclose(handle); > > > > > > +#endif > > > > > > > > > > > > > > > What's about " #include <dlfcn.h> " Is it compiled for you? > > > > Yes, still building fail. > > > > > If so, why dlclose is not known on your setup? > > > > When I fixed it, I found the codes in mlx5_glue_init, use the > > > > RTE_IBVERBS_LINK_DLOPEN. > > > > but dlclose is not included in it. I think we should add > > > > RTE_IBVERBS_LINK_DLOPEN to fix the building fail. > > > > > > I agree, but looks like the include should be in the define area too. No? > > No, the "dlfcn.h" in dpdk is not included in define area at all. > > > > [root@localhost dpdk-next-net]# grep -rwin "dlfcn.h" > > lib/librte_eal/common/eal_common_options.c:17:#include <dlfcn.h> > > drivers/net/ark/ark_ethdev.c:7:#include <dlfcn.h> > > drivers/net/mlx4/mlx4.c:11:#include <dlfcn.h> > > drivers/common/mlx5/mlx5_common.c:5:#include <dlfcn.h> > > examples/performance-thread/pthread_shim/pthread_shim.c:10:#include > > <dlfcn.h> > > > > and other codes should be in define area, but not: > > drivers/net/ark/ark_ethdev.c:177 > > lib/librte_eal/common/eal_common_options.c:306 > > drivers/common/mlx5/mlx5_common.c:325(this patch fix) > > > > > So, Is it compiled well to include it while its lib is not loaded? Review the codes again, RTE_IBVERBS_LINK_DLOPEN is only used for mlx4/mlx5. Other codes is unnecessary included in RTE_IBVERBS_LINK_DLOPEN define. v3 is shown as below, and tested: https://travis-ci.com/ovn-open-virtual-networks/dpdk-next-net/builds/151882661 diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c index 610fb48..9ea56f2 100644 --- a/drivers/common/mlx5/mlx5_common.c +++ b/drivers/common/mlx5/mlx5_common.c @@ -2,10 +2,12 @@ * Copyright 2019 Mellanox Technologies, Ltd */ -#include <dlfcn.h> #include <unistd.h> #include <string.h> #include <stdio.h> +#ifdef RTE_IBVERBS_LINK_DLOPEN +#include <dlfcn.h> +#endif #include <rte_errno.h> @@ -209,8 +211,6 @@ enum mlx5_class */ RTE_INIT_PRIO(mlx5_glue_init, CLASS) { - void *handle = NULL; - /* Initialize common log type. */ mlx5_common_logtype = rte_log_register("pmd.common.mlx5"); if (mlx5_common_logtype >= 0) @@ -233,6 +233,8 @@ enum mlx5_class /* The glue initialization was done earlier by mlx5 common library. */ #ifdef RTE_IBVERBS_LINK_DLOPEN char glue_path[sizeof(RTE_EAL_PMD_PATH) - 1 + sizeof("-glue")]; + void *handle = NULL; + const char *path[] = { /* * A basic security check is necessary before trusting @@ -320,8 +322,10 @@ enum mlx5_class mlx5_glue->fork_init(); return; glue_error: +#ifdef RTE_IBVERBS_LINK_DLOPEN if (handle) dlclose(handle); +#endif DRV_LOG(WARNING, "Cannot initialize MLX5 common due to missing" " run-time dependency on rdma-core libraries (libibverbs," " libmlx5)"); diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index a1dd658..8e29878 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -8,7 +8,6 @@ * mlx4 driver initialization. */ -#include <dlfcn.h> #include <errno.h> #include <inttypes.h> #include <stddef.h> @@ -18,6 +17,9 @@ #include <string.h> #include <sys/mman.h> #include <unistd.h> +#ifdef RTE_IBVERBS_LINK_DLOPEN +#include <dlfcn.h> +#endif /* Verbs headers do not support -pedantic. */ #ifdef PEDANTIC > > > > > > > > > > > > > > > > DRV_LOG(WARNING, "Cannot initialize MLX5 common due to > > > > > > missing" > > > > > > " run-time dependency on rdma-core libraries (libibverbs," > > > > > > " libmlx5)"); > > > > > > -- > > > > > > 1.8.3.1 > > > > > > > > > > > > > > > > > -- > > > > Thanks, > > > > Tonghao > > > > > > > > -- > > Thanks, > > Tonghao -- Thanks, Tonghao ^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-dev] [PATCH dpdk-dev v3] common/mlx5: fix dynamic loading reference 2020-03-02 10:55 [dpdk-dev] [PATCH dpdk-dev v2] common/mlx5: fix possible building error xiangxia.m.yue 2020-03-03 7:15 ` Matan Azrad @ 2020-03-06 14:27 ` xiangxia.m.yue 2020-03-08 6:39 ` Matan Azrad 2020-03-09 9:10 ` Raslan Darawsheh 1 sibling, 2 replies; 10+ messages in thread From: xiangxia.m.yue @ 2020-03-06 14:27 UTC (permalink / raw) To: matan, alialnu; +Cc: dev, Tonghao Zhang, stable From: Tonghao Zhang <xiangxia.m.yue@gmail.com> When setting the CONFIG_RTE_BUILD_SHARED_LIB to y, and build the mlx5 pmd, there is a building error. To fix it, add RTE_IBVERBS_LINK_DLOPEN to include relative codes. mlx5_common.o: In function `mlx5_glue_init': drivers/common/mlx5/mlx5_common.c:324: undefined reference to `dlclose' Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") Cc: stable@dpdk.org Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> Tested-by: Ali Alnubani <alialnu@mellanox.com> --- v3: * rename the patch title * mv the dlfcn.h to define area * tested: https://travis-ci.com/ovn-open-virtual-networks/dpdk-next-net/builds/151882661 v2: * change the patch title --- drivers/common/mlx5/mlx5_common.c | 10 +++++++--- drivers/net/mlx4/mlx4.c | 4 +++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c index 610fb48..9ea56f2 100644 --- a/drivers/common/mlx5/mlx5_common.c +++ b/drivers/common/mlx5/mlx5_common.c @@ -2,10 +2,12 @@ * Copyright 2019 Mellanox Technologies, Ltd */ -#include <dlfcn.h> #include <unistd.h> #include <string.h> #include <stdio.h> +#ifdef RTE_IBVERBS_LINK_DLOPEN +#include <dlfcn.h> +#endif #include <rte_errno.h> @@ -209,8 +211,6 @@ enum mlx5_class */ RTE_INIT_PRIO(mlx5_glue_init, CLASS) { - void *handle = NULL; - /* Initialize common log type. */ mlx5_common_logtype = rte_log_register("pmd.common.mlx5"); if (mlx5_common_logtype >= 0) @@ -233,6 +233,8 @@ enum mlx5_class /* The glue initialization was done earlier by mlx5 common library. */ #ifdef RTE_IBVERBS_LINK_DLOPEN char glue_path[sizeof(RTE_EAL_PMD_PATH) - 1 + sizeof("-glue")]; + void *handle = NULL; + const char *path[] = { /* * A basic security check is necessary before trusting @@ -320,8 +322,10 @@ enum mlx5_class mlx5_glue->fork_init(); return; glue_error: +#ifdef RTE_IBVERBS_LINK_DLOPEN if (handle) dlclose(handle); +#endif DRV_LOG(WARNING, "Cannot initialize MLX5 common due to missing" " run-time dependency on rdma-core libraries (libibverbs," " libmlx5)"); diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index a1dd658..8e29878 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -8,7 +8,6 @@ * mlx4 driver initialization. */ -#include <dlfcn.h> #include <errno.h> #include <inttypes.h> #include <stddef.h> @@ -18,6 +17,9 @@ #include <string.h> #include <sys/mman.h> #include <unistd.h> +#ifdef RTE_IBVERBS_LINK_DLOPEN +#include <dlfcn.h> +#endif /* Verbs headers do not support -pedantic. */ #ifdef PEDANTIC -- 1.8.3.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH dpdk-dev v3] common/mlx5: fix dynamic loading reference 2020-03-06 14:27 ` [dpdk-dev] [PATCH dpdk-dev v3] common/mlx5: fix dynamic loading reference xiangxia.m.yue @ 2020-03-08 6:39 ` Matan Azrad 2020-03-09 9:10 ` Raslan Darawsheh 1 sibling, 0 replies; 10+ messages in thread From: Matan Azrad @ 2020-03-08 6:39 UTC (permalink / raw) To: xiangxia.m.yue, Ali Alnubani; +Cc: dev, stable From: xiangxia.m.yue@gmail.com > From: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > When setting the CONFIG_RTE_BUILD_SHARED_LIB to y, and build the mlx5 > pmd, there is a building error. > To fix it, add RTE_IBVERBS_LINK_DLOPEN to include relative codes. > > mlx5_common.o: In function `mlx5_glue_init': > drivers/common/mlx5/mlx5_common.c:324: undefined reference to > `dlclose' > > Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") > Cc: stable@dpdk.org > > Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> > Tested-by: Ali Alnubani <alialnu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH dpdk-dev v3] common/mlx5: fix dynamic loading reference 2020-03-06 14:27 ` [dpdk-dev] [PATCH dpdk-dev v3] common/mlx5: fix dynamic loading reference xiangxia.m.yue 2020-03-08 6:39 ` Matan Azrad @ 2020-03-09 9:10 ` Raslan Darawsheh 1 sibling, 0 replies; 10+ messages in thread From: Raslan Darawsheh @ 2020-03-09 9:10 UTC (permalink / raw) To: xiangxia.m.yue, Matan Azrad, Ali Alnubani; +Cc: dev, stable Hi, > -----Original Message----- > From: dev <dev-bounces@dpdk.org> On Behalf Of > xiangxia.m.yue@gmail.com > Sent: Friday, March 6, 2020 4:27 PM > To: Matan Azrad <matan@mellanox.com>; Ali Alnubani > <alialnu@mellanox.com> > Cc: dev@dpdk.org; Tonghao Zhang <xiangxia.m.yue@gmail.com>; > stable@dpdk.org > Subject: [dpdk-dev] [PATCH dpdk-dev v3] common/mlx5: fix dynamic loading > reference > > From: Tonghao Zhang <xiangxia.m.yue@gmail.com> > > When setting the CONFIG_RTE_BUILD_SHARED_LIB to y, > and build the mlx5 pmd, there is a building error. > To fix it, add RTE_IBVERBS_LINK_DLOPEN to include > relative codes. > > mlx5_common.o: In function `mlx5_glue_init': > drivers/common/mlx5/mlx5_common.c:324: undefined reference to > `dlclose' > > Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") > Cc: stable@dpdk.org > > Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> > Tested-by: Ali Alnubani <alialnu@mellanox.com> > --- > v3: > * rename the patch title > * mv the dlfcn.h to define area > * tested: > https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftravis > -ci.com%2Fovn-open-virtual-networks%2Fdpdk-next- > net%2Fbuilds%2F151882661&data=02%7C01%7Crasland%40mellanox.co > m%7Cc089a6504673460ee42c08d7c1da91c5%7Ca652971c7d2e4d9ba6a4d1492 > 56f461b%7C0%7C0%7C637191016800944332&sdata=AL6s1X0NFyBtAi%2 > BfFS%2FwB41xHZBUQsvDUZ5%2FWucJTd0%3D&reserved=0 > > v2: > * change the patch title > --- > drivers/common/mlx5/mlx5_common.c | 10 +++++++--- > drivers/net/mlx4/mlx4.c | 4 +++- > 2 files changed, 10 insertions(+), 4 deletions(-) > > diff --git a/drivers/common/mlx5/mlx5_common.c > b/drivers/common/mlx5/mlx5_common.c > index 610fb48..9ea56f2 100644 > --- a/drivers/common/mlx5/mlx5_common.c > +++ b/drivers/common/mlx5/mlx5_common.c > @@ -2,10 +2,12 @@ > * Copyright 2019 Mellanox Technologies, Ltd > */ > Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-03-09 9:10 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-03-02 10:55 [dpdk-dev] [PATCH dpdk-dev v2] common/mlx5: fix possible building error xiangxia.m.yue 2020-03-03 7:15 ` Matan Azrad 2020-03-04 13:55 ` Tonghao Zhang 2020-03-04 14:25 ` Matan Azrad 2020-03-04 15:13 ` Tonghao Zhang 2020-03-04 16:03 ` Matan Azrad 2020-03-05 6:59 ` Tonghao Zhang 2020-03-06 14:27 ` [dpdk-dev] [PATCH dpdk-dev v3] common/mlx5: fix dynamic loading reference xiangxia.m.yue 2020-03-08 6:39 ` Matan Azrad 2020-03-09 9:10 ` Raslan Darawsheh
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).