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

Ilya Maximets i.maximets at ovn.org
Fri Jul 3 17:41:50 UTC 2020


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.


More information about the dev mailing list