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 <[email protected]>
> Reviewed-by: Ruifeng Wang <[email protected]>
> Reviewed-by: JingZhao Ni <[email protected]>
> Reviewed-by: Gavin Hu <[email protected]>
> Signed-off-by: Lance Yang <[email protected]>
> ---
> 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.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev