diff mbox series

[ovs-dev,v2,1/3] ci: Don't use 'native' machine for DPDK cache.

Message ID 20201125145753.534447-2-i.maximets@ovn.org
State Accepted
Headers show
Series GitHub Actions integration and Travis CI update. | expand

Commit Message

Ilya Maximets Nov. 25, 2020, 2:57 p.m. UTC
It's possible that actual HW where CI is running is slightly different
between jobs.  That makes all unit tests to fail with cached DPDK
builds due to 'Illegal instruction' crashes.  Changing machine
type to 'default' to generate binaries as generic as possible and avoid
this kind of issues.

Fixes: 7654a3ed0b38 ("travis: Cache DPDK build.")
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
---
 .travis/linux-build.sh | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Kevin Traynor Nov. 25, 2020, 6:41 p.m. UTC | #1
On 25/11/2020 14:57, Ilya Maximets wrote:
> It's possible that actual HW where CI is running is slightly different
> between jobs.  That makes all unit tests to fail with cached DPDK
> builds due to 'Illegal instruction' crashes.  Changing machine
> type to 'default' to generate binaries as generic as possible and avoid
> this kind of issues.
> 
> Fixes: 7654a3ed0b38 ("travis: Cache DPDK build.")
> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
> ---
>  .travis/linux-build.sh | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
> index 60d8931f3..16102ac94 100755
> --- a/.travis/linux-build.sh
> +++ b/.travis/linux-build.sh
> @@ -135,6 +135,10 @@ function install_dpdk()
>      sed -i '/CONFIG_RTE_EAL_IGB_UIO=y/s/=y/=n/' build/.config
>      sed -i '/CONFIG_RTE_KNI_KMOD=y/s/=y/=n/' build/.config
>  
> +    # Switching to 'default' machine to make dpdk-dir cache usable on different
> +    # CPUs.  We can't be sure that all CI machines are exactly same.
> +    sed -i '/CONFIG_RTE_MACHINE="native"/s/="native"/="default"/' build/.config
> +
>      make -j4 CC=gcc EXTRA_CFLAGS='-fPIC'
>      EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=$(pwd)/build"
>      echo "Installed DPDK source in $(pwd)"
> 

LGTM
Acked-by: Kevin Traynor <ktraynor@redhat.com>
Ilya Maximets Nov. 26, 2020, 11:53 a.m. UTC | #2
On 11/25/20 7:41 PM, Kevin Traynor wrote:
> On 25/11/2020 14:57, Ilya Maximets wrote:
>> It's possible that actual HW where CI is running is slightly different
>> between jobs.  That makes all unit tests to fail with cached DPDK
>> builds due to 'Illegal instruction' crashes.  Changing machine
>> type to 'default' to generate binaries as generic as possible and avoid
>> this kind of issues.
>>
>> Fixes: 7654a3ed0b38 ("travis: Cache DPDK build.")
>> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
>> ---
>>  .travis/linux-build.sh | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
>> index 60d8931f3..16102ac94 100755
>> --- a/.travis/linux-build.sh
>> +++ b/.travis/linux-build.sh
>> @@ -135,6 +135,10 @@ function install_dpdk()
>>      sed -i '/CONFIG_RTE_EAL_IGB_UIO=y/s/=y/=n/' build/.config
>>      sed -i '/CONFIG_RTE_KNI_KMOD=y/s/=y/=n/' build/.config
>>  
>> +    # Switching to 'default' machine to make dpdk-dir cache usable on different
>> +    # CPUs.  We can't be sure that all CI machines are exactly same.
>> +    sed -i '/CONFIG_RTE_MACHINE="native"/s/="native"/="default"/' build/.config
>> +
>>      make -j4 CC=gcc EXTRA_CFLAGS='-fPIC'
>>      EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=$(pwd)/build"
>>      echo "Installed DPDK source in $(pwd)"
>>
> 
> LGTM
> Acked-by: Kevin Traynor <ktraynor@redhat.com>
> 

Thanks, Kevin and Simon.

I applied this one patch to master and backported down to 2.13.

Best regards, Ilya Maximets.
diff mbox series

Patch

diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
index 60d8931f3..16102ac94 100755
--- a/.travis/linux-build.sh
+++ b/.travis/linux-build.sh
@@ -135,6 +135,10 @@  function install_dpdk()
     sed -i '/CONFIG_RTE_EAL_IGB_UIO=y/s/=y/=n/' build/.config
     sed -i '/CONFIG_RTE_KNI_KMOD=y/s/=y/=n/' build/.config
 
+    # Switching to 'default' machine to make dpdk-dir cache usable on different
+    # CPUs.  We can't be sure that all CI machines are exactly same.
+    sed -i '/CONFIG_RTE_MACHINE="native"/s/="native"/="default"/' build/.config
+
     make -j4 CC=gcc EXTRA_CFLAGS='-fPIC'
     EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=$(pwd)/build"
     echo "Installed DPDK source in $(pwd)"