[ovs-dev] --with-dpdk configure option issue

Bodireddy, Bhanuprakash bhanuprakash.bodireddy at intel.com
Wed Jun 1 15:33:23 UTC 2016



>-----Original Message-----
>From: Mauricio Vásquez [mailto:mauriciovasquezbernal at gmail.com]
>Sent: Wednesday, June 1, 2016 4:28 PM
>To: Bodireddy, Bhanuprakash <bhanuprakash.bodireddy at intel.com>
>Cc: ovs dev <dev at openvswitch.org>
>Subject: Re: --with-dpdk configure option issue
>
>
>
>On Wed, Jun 1, 2016 at 5:14 PM, Bodireddy, Bhanuprakash
><bhanuprakash.bodireddy at intel.com> wrote:
>>-----Original Message-----
>>From: Mauricio Vásquez [mailto:mauriciovasquezbernal at gmail.com]
>>Sent: Wednesday, June 1, 2016 3:37 PM
>>To: Bodireddy, Bhanuprakash <bhanuprakash.bodireddy at intel.com>
>>Cc: ovs dev <dev at openvswitch.org>
>>Subject: Re: --with-dpdk configure option issue
>>
>>
>>
>>On Wed, Jun 1, 2016 at 3:29 PM, Bodireddy, Bhanuprakash
>><bhanuprakash.bodireddy at intel.com> wrote:
>>>-----Original Message-----
>>>From: Mauricio Vásquez [mailto:mauriciovasquezbernal at gmail.com]
>>>Sent: Wednesday, June 1, 2016 11:17 AM
>>>To: ovs dev <dev at openvswitch.org>
>>>Cc: Bodireddy, Bhanuprakash <bhanuprakash.bodireddy at 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,


More information about the dev mailing list