[ovs-dev] [PATCH v3]travis: Enable OvS Travis CI for arm.

Ilya Maximets i.maximets at ovn.org
Mon Mar 23 17:25:25 UTC 2020


On 3/19/20 8:51 AM, Lance Yang wrote:
> Enable part of travis jobs with gcc compiler for arm64 architecture
> 
> 1. Add arm jobs into the matrix in .travis.yml configuration file
> 2. To enable OVS-DPDK jobs, set the build target according to
> different CPU architectures
> 3. Temporarily disable sparse checker because of static code checking
> failure on arm64
> 
> Considering the balance of the CI coverage and running time, some kernel
> and DPDK jobs are removed from Arm CI. The running time increases around
> by 7 minutes to 47 minutes in all.
> 
> Successful travis build jobs report:
> https://travis-ci.org/github/yzyuestc/ovs/builds/663833478
> 
> Reviewed-by: Yanqin Wei <Yanqin.Wei at arm.com>
> Reviewed-by: Ruifeng Wang <Ruifeng.Wang at arm.com>
> Reviewed-by: JingZhao Ni <JingZhao.Ni at arm.com>
> Reviewed-by: Gavin Hu <Gavin.Hu at arm.com>
> Signed-off-by: Lance Yang <Lance.Yang at arm.com>
> ---
> v3: 
>    - Remove some kernel jobs: 4.18, 4.17, 4.16, 4.15, 4.14, and 4.3.
>    - Remove one OvS-DPDK shared library job.
> ---
>  .travis.yml            | 15 +++++++++++++++
>  .travis/linux-build.sh | 16 ++++++++++++++--
>  2 files changed, 29 insertions(+), 2 deletions(-)

This version seems OK.  We can give it a try.
Couple of minor comments inline.

> 
> diff --git a/.travis.yml b/.travis.yml
> index ef9f867..1149758 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -51,6 +51,21 @@ matrix:
>      - os: osx
>        compiler: clang
>        env: OPTS="--disable-ssl"
> +    - arch: arm64
> +      compiler: gcc
> +      env: OPTS="--disable-ssl"
> +    - arch: arm64
> +      compiler: gcc
> +      env: KERNEL_LIST="5.5 4.19"
> +    - arch: arm64
> +      compiler: gcc
> +      env: KERNEL_LIST="4.9 3.16"
> +    - arch: arm64
> +      compiler: gcc
> +      env: DPDK=1 OPTS="--enable-shared"
> +    - arch: arm64
> +      compiler: gcc
> +      env: DPDK_SHARED=1
>  
>  script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
>  
> diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
> index 359f777..3140ec9 100755
> --- a/.travis/linux-build.sh
> +++ b/.travis/linux-build.sh
> @@ -6,7 +6,7 @@ set -x
>  CFLAGS_FOR_OVS="-g -O2"
>  SPARSE_FLAGS=""
>  EXTRA_OPTS="--enable-Werror"
> -TARGET="x86_64-native-linuxapp-gcc"
> +TARGET=""

We could just remove this line.  We're not using it anywhere
beside install_dpdk().

>  
>  function install_kernel()
>  {
> @@ -87,6 +87,16 @@ function install_dpdk()
>      local DPDK_VER=$1
>      local VERSION_FILE="dpdk-dir/travis-dpdk-cache-version"
>  
> +    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
> +        echo "Target is unknown"
> +        exit 1
> +    fi
> +
>      if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
>          # Avoid using cache for git tree build.
>          rm -rf dpdk-dir
> @@ -178,7 +188,9 @@ elif [ "$M32" ]; then
>      # difference on 'configure' and 'make' stages.
>      export CC="$CC -m32"
>  else
> -    OPTS="--enable-sparse"
> +    if [ "$TRAVIS_ARCH" != "aarch64" ]; then
> +        OPTS="--enable-sparse"
> +    fi

This should be:

elif [ "$TRAVIS_ARCH" != "aarch64" ]; then
    OPTS="--enable-sparse"
    if [ "$AFXDP" ]; then
        ...

As we don't need to add SPARSE_FLAGS to CFLAGS_FOR_OVS if sparse is
not enabled.

Best regards, Ilya Maximets.


More information about the dev mailing list