Message ID | CAPwdgqg4xLsVcXKAZbOgZ7Sz5RPPGxToogvo9WKGGs_wA2m6aA@mail.gmail.com |
---|---|
State | Not Applicable |
Headers | show |
>-----Original Message----- >From: Mauricio Vásquez [mailto:mauriciovasquezbernal@gmail.com] >Sent: Wednesday, June 1, 2016 4:28 PM >To: Bodireddy, Bhanuprakash <bhanuprakash.bodireddy@intel.com> >Cc: ovs dev <dev@openvswitch.org> >Subject: Re: --with-dpdk configure option issue > > > >On Wed, Jun 1, 2016 at 5:14 PM, Bodireddy, Bhanuprakash ><bhanuprakash.bodireddy@intel.com> wrote: >>-----Original Message----- >>From: Mauricio Vásquez [mailto:mauriciovasquezbernal@gmail.com] >>Sent: Wednesday, June 1, 2016 3:37 PM >>To: Bodireddy, Bhanuprakash <bhanuprakash.bodireddy@intel.com> >>Cc: ovs dev <dev@openvswitch.org> >>Subject: Re: --with-dpdk configure option issue >> >> >> >>On Wed, Jun 1, 2016 at 3:29 PM, Bodireddy, Bhanuprakash >><bhanuprakash.bodireddy@intel.com> wrote: >>>-----Original Message----- >>>From: Mauricio Vásquez [mailto:mauriciovasquezbernal@gmail.com] >>>Sent: Wednesday, June 1, 2016 11:17 AM >>>To: ovs dev <dev@openvswitch.org> >>>Cc: Bodireddy, Bhanuprakash <bhanuprakash.bodireddy@intel.com> >>>Subject: --with-dpdk configure option issue >>> >>>Dear All, >>>I noticed that when I run the command >>>./configure --with-dpdk=$SOME_NON_EXISTING_ENV_VAR >>>it does not give me an error, somewhere it says: >>>"checking whether dpdk datapath is enabled... no" but there is not an >>explicit >>>error. >>>I think this behavior should be avoided, an explicit error should be printed >to >>>avoid any possible confusion, as for example when DPDK_BUILD is not set. >> >>Thanks for reporting this issue. This is treated more a misconfiguration than >a >>bug. Please see below. >>The configure script was modified to handle auto discovery of DPDK library if >>present in standard search paths with ' ./configure --with-dpdk' option. >>It also handles other valid options as listed below in case (a),(b),(c), (e). All >the >>below options will set string 'with_dpdk' in OVS_CHECK_DPDK function in >>acinclude.m4. >> >>(a) ./configure --with-dpdk=$DPDK_BUILD [ $with_dpdk will be a >>valid $DPDK_BUILD dir] >>(b) ./configure --with-dpdk=$DPDK_BUILD/install [ $with_dpdk will be a >>valid $DPDK_BUILD/install dir] >>(c) ./configure --without-dpdk. [$with_dpdk will be >>'no'] >>(d) ./configure --with-dpdk="" [$with_dpdk will be >an >>empty string] >>(e) ./configure [ $with_dpdk will be >an >>empty string] >> >>In case (d), when empty string is passed to --with-dpdk option, it's not >known >>if user has invoked case (d) or case (e). Hence I throw dpdk datapath isn't >>enabled as part of configuration. >>i.e "checking whether dpdk datapath is enabled... no". >> >>I had a look at the autotools documentation and I think there is a way to >>distinguish between cases (d) and (e). >>What do you think about something like this? >> >>diff --git a/acinclude.m4 b/acinclude.m4 >>index f3de855..9314d82 100644 >>--- a/acinclude.m4 >>+++ b/acinclude.m4 >>@@ -161,10 +161,11 @@ dnl Configure DPDK source tree >> AC_DEFUN([OVS_CHECK_DPDK], [ >> AC_ARG_WITH([dpdk], >> [AC_HELP_STRING([--with-dpdk=/path/to/dpdk], >>- [Specify the DPDK build directory])]) >>+ [Specify the DPDK build directory])], >>+ [have_dpdk=true]) >> >> AC_MSG_CHECKING([whether dpdk datapath is enabled]) >>- if test -z "$with_dpdk" || test "$with_dpdk" = no; then >>+ if test "$have_dpdk" != true; then >> AC_MSG_RESULT([no]) >> DPDKLIB_FOUND=false >> else >This looks fine, but for one minor issue when using ./configure --without-dpdk >option. >Below it says dpdk datapath is still enabled and errors out.. > >checking whether dpdk datapath is enabled... yes >checking for no/include/rte_config.h... no >checking for no/include/dpdk/rte_config.h... no >configure: error: Could not find DPDK libraries in no/lib > >You are right!, what about? Perfect! , Infact I was about to send the patch with the same tweak. You can submit this patch, I will ack it. >diff --git a/acinclude.m4 b/acinclude.m4 >index f3de855..a5080ef 100644 >--- a/acinclude.m4 >+++ b/acinclude.m4 >@@ -161,10 +161,11 @@ dnl Configure DPDK source tree > AC_DEFUN([OVS_CHECK_DPDK], [ > AC_ARG_WITH([dpdk], > [AC_HELP_STRING([--with-dpdk=/path/to/dpdk], >- [Specify the DPDK build directory])]) >+ [Specify the DPDK build directory])], >+ [have_dpdk=true]) > > AC_MSG_CHECKING([whether dpdk datapath is enabled]) >- if test -z "$with_dpdk" || test "$with_dpdk" = no; then >+ if test "$have_dpdk" != true || test "$with_dpdk" = no; then > AC_MSG_RESULT([no]) > DPDKLIB_FOUND=false > else > >I don’t think anyone would use '--without-dpdk' explicitly to avoid building >DPDK datapath with OVS. > >Regards, >Bhanu Prakash. > >> >>> >>>Bhanuprakash, I CC'ed you because you are author of 40b5ea86319f >>>("acinclude: Autodetect DPDK location when configuring OVS"), then I think >>>you know how to fix it. >>>Mauricio V, >Regards, >Mauricio V,
diff --git a/acinclude.m4 b/acinclude.m4 index f3de855..a5080ef 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -161,10 +161,11 @@ dnl Configure DPDK source tree AC_DEFUN([OVS_CHECK_DPDK], [ AC_ARG_WITH([dpdk], [AC_HELP_STRING([--with-dpdk=/path/to/dpdk], - [Specify the DPDK build directory])]) + [Specify the DPDK build directory])], + [have_dpdk=true]) AC_MSG_CHECKING([whether dpdk datapath is enabled]) - if test -z "$with_dpdk" || test "$with_dpdk" = no; then + if test "$have_dpdk" != true || test "$with_dpdk" = no; then AC_MSG_RESULT([no]) DPDKLIB_FOUND=false else