[ovs-dev] [PATCH ] travis: support ppc64le builds

Yanqin Wei (Arm Technology China) Yanqin.Wei at arm.com
Thu Oct 31 02:04:54 UTC 2019


Hi,

We are working to support arm64 build for ovs travis CI. It is indeed to use arch: arm64 to choose cpu architecture, because travis has provided native arm64 option now. 
But in this patch it seems ppc64 builds run on the ppc-VM + x86 native machine.  
Currently arm only select a part of jobs to run, which is defined in matrix:include. But the final object is to run all jobs. It means that  arch: arm64 will be moved out of marix. If ppc plans to do the same in the future, it will conflict with arm jobs.

Best Regards,
Wei Yanqin

-----Original Message-----
From: ovs-dev-bounces at openvswitch.org <ovs-dev-bounces at openvswitch.org> On Behalf Of dwilder
Sent: Wednesday, October 30, 2019 1:55 AM
To: Ilya Maximets <i.maximets at ovn.org>
Cc: ovs-dev at openvswitch.org; wilder at us.ibm.com
Subject: Re: [ovs-dev] [PATCH ] travis: support ppc64le builds

On 2019-10-29 09:52, Ilya Maximets wrote:
> On 28.10.2019 22:22, David Wilder wrote:
>> Add support for travis-ci ppc64le builds.
>> 
>> - Updated matrix in .travis.yml to include a ppc64le build.
>> - Added support to install packages needed by specific architectures.
>> 
>> To keep the total build time at an acceptable level only a single 
>> build job is included in the matrix for ppc64le.
>> 
>> A build report example can be found here [1] [0] 
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__travis-2Dci.org_&
>> d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAy
>> z8i_vwCCaI&m=6JANehIfGoxUMtwHhe4yob4UPeby0Y8ovgzRDIyJZFo&s=UMYL8rzJNp
>> h87seC0oJLBiWoe-sUSL80AJy0RMTgBzQ&e=
>> [1]
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.org_
>> djlwilder_ovs_builds_604098141&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7n
>> dxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=6JANehIfGoxUMtwHhe4yob4UP
>> eby0Y8ovgzRDIyJZFo&s=pyd2yQpQ0snpwGE5El4RYZsatwl74sthM1KLqtIKCnY&e=
>> Signed-off-by: David Wilder <dwilder at us.ibm.com>
> 
> Hi David,
> Thanks for working on this. I have a couple of question regarding 
> ppc64le support by TravisCI.  It seems that they are not supporting 
> this architecture officially and refusing[1] to solve any issues that 
> appears while using it. There also no official documentation.
> It's kind of a hidden feature that some projects are using for their 
> own risk [2]. Do you know why this happens or maybe you have some 
> insights about what is going on/how it works?

Work is going on to increase ppc64le support on Travis by the end of the year.  I dont have any details yet. My plan is to keep this to build-only ci until then.  Important, ppc64le VM are only available on travis-ci.org, they are not available on travis-ci.com.

> The API is also a bit strange because Travis started to officially 
> support arm builds, but this is done via 'arch' knob, not the 'os'.
> Will it be changed over time for ppc64le?
> 

Sorry, I dont know.

> [1]
> https://urldefense.proofpoint.com/v2/url?u=https-3A__travis-2Dci.commu
> nity_t_ppc64le-2Darch-2Dsupport-2Don-2Dtravis-2Dci-2Dcom-2Dvs-2Dtravis
> -2Dci-2Dorg_2898_2&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68
> Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=6JANehIfGoxUMtwHhe4yob4UPeby0Y8ovgzRDIy
> JZFo&s=TrXdSxjvnbbVQz7EzR5r0aE93lZMSdCiIUQT2wt8E3I&e=
> [2]
> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openss
> l_openssl_commit_13da3ad00c80e1da816ca27f6c15b0ecee1bb0b8&d=DwICaQ&c=j
> f_iaSHvJObTbx-siA1ZOg&r=7ndxyKjH9UrBD68Us2WP1wI4BwEBQbeAyz8i_vwCCaI&m=
> 6JANehIfGoxUMtwHhe4yob4UPeby0Y8ovgzRDIyJZFo&s=RWVuli-BT8E2IsW3rAA9MtqC
> VPZahNk8k7yqxEbgTT4&e=
> 
> Few code comments inline.
> 
>> ---
>>   .travis.yml              |  5 +++--
>>   .travis/linux-prepare.sh | 18 ++++++++++++++----
>>   2 files changed, 17 insertions(+), 6 deletions(-)
>> 
>> diff --git a/.travis.yml b/.travis.yml index 5676d9748..c99f26815 
>> 100644
>> --- a/.travis.yml
>> +++ b/.travis.yml
>> @@ -14,7 +14,6 @@ addons:
>>     apt:
>>       packages:
>>         - bc
>> -      - gcc-multilib
>>         - libssl-dev
>>         - llvm-dev
>>         - libjemalloc1
>> @@ -24,7 +23,6 @@ addons:
>>         - libelf-dev
>>         - selinux-policy-dev
>>         - libunbound-dev
>> -      - libunbound-dev:i386
>>         - libunwind-dev
>>     before_install: ./.travis/${TRAVIS_OS_NAME}-prepare.sh
>> @@ -50,6 +48,9 @@ matrix:
>>       - os: osx
>>         compiler: clang
>>         env: OPTS="--disable-ssl"
>> +    - os: linux-ppc64le
>> +      compiler: gcc
>> +      env: OPTS="--disable-ssl"
>>     script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
>>   diff --git a/.travis/linux-prepare.sh b/.travis/linux-prepare.sh 
>> index e546d32cb..f3a9a6d44 100755
>> --- a/.travis/linux-prepare.sh
>> +++ b/.travis/linux-prepare.sh
>> @@ -15,8 +15,18 @@ cd ..
>>   pip install --disable-pip-version-check --user six flake8 hacking
>>   pip install --user --upgrade docutils
>>   -if [ "$M32" ]; then
>> -    # 32-bit and 64-bit libunwind can not be installed at the same 
>> time.
>> -    # This will remove the 64-bit libunwind and install 32-bit 
>> version.
>> -    sudo apt-get install -y libunwind-dev:i386
>> +# Include packages needed by specific architectures.
>> +if [ $TRAVIS_ARCH == amd64 ]; then
>> +   sudo apt-get install -y \
>> +        libunbound-dev:i386 \
>> +        gcc-multilib
> 
> These packages are only needed for 32bit build, so you may just move 
> them to the command that installs 32bit version of libunwind.
> And since you're not building 32bit with ppc64le, the code could look
> like:
> 
> if [ "$M32" ]; then
>    # install 32 bit libs
> fi
> 
> if [ $TRAVIS_ARCH == ppc64le ]; then
>    # install ppc64le specific things.
> fi

Agreed.

> 
>> +
>> +    if [ "$M32" ]; then
>> +       # 32-bit and 64-bit libunwind can not be installed at the 
>> + same
>> time.
>> +       # This will remove the 64-bit libunwind and install 32-bit
>> version.
>> +       sudo apt-get install -y libunwind-dev:i386
>> +    fi
>> +
>> +elif [ $TRAVIS_ARCH == ppc64le ]; then
>> +   sudo apt-get install -y flex
> 
> Why 'flex' is needed?

I found that Flex was needed for kernel builds, but since I am not doing that yet I can remove it.

Thanks for the review,  I will post a V2 patch shortly.

> 
> Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
dev at openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


More information about the dev mailing list