[ovs-dev] [PATCH RFC dpdk-latest] build: Add support for DPDK meson build.

Pai G, Sunil sunil.pai.g at intel.com
Sat Jul 4 13:30:07 UTC 2020


> -----Original Message-----
> From: Ilya Maximets <i.maximets at ovn.org>
> Sent: Friday, July 3, 2020 11:12 PM
> To: Pai G, Sunil <sunil.pai.g at intel.com>; Ilya Maximets
> <i.maximets at ovn.org>; Richardson, Bruce <bruce.richardson at intel.com>;
> dev at openvswitch.org
> Cc: Stokes, Ian <ian.stokes at intel.com>; david.marchand at redhat.com;
> Tummala, Sivaprasad <sivaprasad.tummala at intel.com>
> Subject: Re: [PATCH RFC dpdk-latest] build: Add support for DPDK meson
> build.
> 
> On 7/3/20 3:57 PM, Pai G, Sunil wrote:
> >> -----Original Message-----
> >> From: Ilya Maximets <i.maximets at ovn.org>
> >> Sent: Thursday, July 2, 2020 9:54 PM
> >> To: Pai G, Sunil <sunil.pai.g at intel.com>; Richardson, Bruce
> >> <bruce.richardson at intel.com>; Ilya Maximets <i.maximets at ovn.org>;
> >> dev at openvswitch.org
> >> Cc: Stokes, Ian <ian.stokes at intel.com>; david.marchand at redhat.com;
> >> Tummala, Sivaprasad <sivaprasad.tummala at intel.com>
> >> Subject: Re: [PATCH RFC dpdk-latest] build: Add support for DPDK
> >> meson build.
> >>
> >> On 7/2/20 6:10 PM, Pai G, Sunil wrote:
> >>>> -----Original Message-----
> >>>> From: Richardson, Bruce <bruce.richardson at intel.com>
> >>>> Sent: Thursday, July 2, 2020 9:32 PM
> >>>> To: Pai G, Sunil <sunil.pai.g at intel.com>; Ilya Maximets
> >>>> <i.maximets at ovn.org>; dev at openvswitch.org
> >>>> Cc: Stokes, Ian <ian.stokes at intel.com>; david.marchand at redhat.com;
> >>>> Tummala, Sivaprasad <sivaprasad.tummala at intel.com>
> >>>> Subject: RE: [PATCH RFC dpdk-latest] build: Add support for DPDK
> >>>> meson build.
> >>>>
> >>>>
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Pai G, Sunil <sunil.pai.g at intel.com>
> >>>>> Sent: Thursday, July 2, 2020 4:25 PM
> >>>>> To: Ilya Maximets <i.maximets at ovn.org>; dev at openvswitch.org
> >>>>> Cc: Stokes, Ian <ian.stokes at intel.com>;
> david.marchand at redhat.com;
> >>>>> Richardson, Bruce <bruce.richardson at intel.com>; Tummala,
> >>>>> Sivaprasad <sivaprasad.tummala at intel.com>
> >>>>> Subject: RE: [PATCH RFC dpdk-latest] build: Add support for DPDK
> >>>>> meson build.
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Ilya Maximets <i.maximets at ovn.org>
> >>>>>> Sent: Thursday, July 2, 2020 7:26 PM
> >>>>>> To: Pai G, Sunil <sunil.pai.g at intel.com>; dev at openvswitch.org
> >>>>>> Cc: Stokes, Ian <ian.stokes at intel.com>; i.maximets at ovn.org;
> >>>>>> david.marchand at redhat.com; Richardson, Bruce
> >>>>>> <bruce.richardson at intel.com>; Tummala, Sivaprasad
> >>>>>> <sivaprasad.tummala at intel.com>; i.maximets at ovn.org
> >>>>>> Subject: Re: [PATCH RFC dpdk-latest] build: Add support for DPDK
> >>>>>> meson
> >>>>> build.
> >>>>>>
> >>>>>> On 7/2/20 3:13 PM, Sunil Pai G wrote:
> >>>>>>> Make based build is deprecated in DPDK. Meson based build to be
> >>>>>>> used for future DPDK releases.
> >>>>>>>
> >>>>>>> This updates travis, configure script and documentation for
> >>>>>>> using DPDK Meson with OVS.
> >>>>>>>
> >>>>>>> Signed-off-by: Sunil Pai G <sunil.pai.g at intel.com>
> >>>>>>
> >>>>>> Thanks for working on this!
> >>>>>> Not a full review, just a few quick bits.
> >>>>>>
> >>>>>> At first, why dpdk-latest?  Is there issue with meson build on 19.11?
> >>>>>
> >>>>> The linker always picked the shared DPDK libraries over static
> >>>>> when built with Meson in DPDK-19.11. -Bstatic flag would get
> >>>>> jumbled by libtool causing this.
> >>>>> Thanks to Bruce, there was recently merged series which fixed a
> >>>>> bunch of issues along with this :
> >>>>> https://patches.dpdk.org/project/dpdk/list/?series=10690
> >>>>> It is requested for a back port of this series to DPDK-19.11.
> >>>>>
> >>>>>>
> >>>>>> Few more comments inline.
> >>>>>>
> >>>>>> Best regards, Ilya Maximets.
> >>>>>>
> >>>>>>> ---
> >>>>>>>  .travis.yml                           |  3 ++
> >>>>>>>  .travis/linux-build.sh                | 37 +++++++++-------
> >>>>>>>  .travis/linux-prepare.sh              |  1 +
> >>>>>>>  Documentation/intro/install/afxdp.rst |  2 +-
> >>>>>>> Documentation/intro/install/dpdk.rst  | 56
> ++++++++++++++++++++-
> >> --
> >>>> -
> >>>>>>>  Makefile.am                           |  3 +-
> >>>>>>>  acinclude.m4                          | 42 ++++++++++++------
> >>>>>>>  parse_pkg_cfg.py                      | 62
> >>>>> +++++++++++++++++++++++++++
> >>>>>>>  8 files changed, 167 insertions(+), 39 deletions(-)  create
> >>>>>>> mode
> >>>>>>> 100644 parse_pkg_cfg.py
> >>>>>>>
> >>>>>>> diff --git a/.travis.yml b/.travis.yml index
> >>>>>>> 97249c1ce..46d7ad9bb
> >>>>>>> 100644
> >>>>>>> --- a/.travis.yml
> >>>>>>> +++ b/.travis.yml
> >>>>>>> @@ -27,6 +27,9 @@ addons:
> >>>>>>>        - selinux-policy-dev
> >>>>>>>        - libunbound-dev
> >>>>>>>        - libunwind-dev
> >>>>>>> +      - python3-setuptools
> >>>>>>> +      - python3-wheel
> >>>>>>> +      - ninja-build
> >>>>>>>
> >>>>>>>  before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh
> >>>>>>>
> >>>>>>> diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
> >>>>>>> index 33b359a61..7fa7e738c 100755
> >>>>>>> --- a/.travis/linux-build.sh
> >>>>>>> +++ b/.travis/linux-build.sh
> >>>>>>> @@ -85,17 +85,21 @@ function install_dpdk()  {
> >>>>>>>      local DPDK_VER=$1
> >>>>>>>      local VERSION_FILE="dpdk-dir/travis-dpdk-cache-version"
> >>>>>>> +    local DPDK_OPTS=""
> >>>>>>>
> >>>>>>> -    if [ -z "$TRAVIS_ARCH" ] ||
> >>>>>>> -       [ "$TRAVIS_ARCH" == "amd64" ]; then
> >>>>>>> -        TARGET="x86_64-native-linuxapp-gcc"
> >>>>>>> -    elif [ "$TRAVIS_ARCH" == "aarch64" ]; then
> >>>>>>> -        TARGET="arm64-armv8a-linuxapp-gcc"
> >>>>>>> -    else
> >>>>>>> +    if [ "$TRAVIS_ARCH" == "aarch64" ]; then
> >>>>>>> +        DPDK_OPTS="$DPDK_OPTS --cross-file
> >>>>>> config/arm/arm64_armv8_linux_gcc"
> >>>>>>
> > <snipped>
> >>>> Does your travis instance use 16.04 or 18.04? If possible can you
> >>>> standardize on a new specific version to get some additional
> >>>> benefits. For example, with meson
> >>>> 0.54 there is support for "uninstalled" pkg-config files, which you
> >>>> can use for linking against a DPDK instance which has not been
> >>>> installed on
> >> the system.
> >>>> [https://mesonbuild.com/Release-notes-for-0-54-0.html#uninstalled-
> >>>> pkgconfig-files]
> >>>> I think that feature may be of interest or of use for the future.
> >>>
> >>> Currently 16.04 is being used . I tried to moving to 18.04 as well.
> >>> But seems like few other test cases which require kernel 3.16 seem
> >>> to fail. Probably Ilya/David/Ian could comment if those test cases
> >>> can be
> >> removed and we could move to 18.04 travis?
> >>
> >> The incompatibility issue was fixed in v0.53.1 release and should
> >> work fine with 0.54 on ubuntu 16.04 without upgrading the base image to
> 18.04.
> >> So, it makes sense to standardize on 0.54 for now.  Could you, please, try
> it?
> >
> > Thanks, Ilya, for pointing out.
> > Although I see that this works on x86 , it fails for aarch64 :( for
> > some reason meson doesnt seem to build properly on aarch64:
> > https://travis-ci.org/github/Sunil-Pai-G/ovs/builds/704635873
> > Please let me know if I might have missed something.
> 
> There is an issue with permissions in aarch64 images on travis:
> https://travis-ci.community/t/permission-issue-while-building-wheels-for-
> various-python-packages/7822
> 
> You could try applying following workaround before running pip:
>   sudo chown -Rv $USER:$GROUP ~/.cache/pip/wheels
> 
> Best regards, Ilya Maximets.

I gave it a try Ilya , still no luck :(
Please see : https://travis-ci.org/github/Sunil-Pai-G/ovs/jobs/704908933
I tried the solution advised here as well: https://github.com/pydata/bottleneck/issues/281 
which seemed to be quite like what I am facing , but still end up getting the same error:
"Building wheel for ninja (PEP 517): finished with status 'error'"  :(



More information about the dev mailing list