ci: enable vm env for aarch64 builds

Message ID 1598339315-8038-1-git-send-email-juraj.linkes@pantheon.tech (mailing list archive)
State Superseded, archived
Delegated to: David Marchand
Headers
Series ci: enable vm env for aarch64 builds |

Checks

Context Check Description
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/travis-robot success Travis build: passed
ci/Intel-compilation success Compilation OK
ci/checkpatch success coding style OK

Commit Message

Juraj Linkeš Aug. 25, 2020, 7:08 a.m. UTC
  Tests requiring hugepages do not work outside of VM environment because
of security limitations. Enable aarch64 builds which run tests to run in
a VM to avoid these limitations.

Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
---
 .travis.yml | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
  

Comments

Aaron Conole Aug. 25, 2020, 2:18 p.m. UTC | #1
Juraj Linkeš <juraj.linkes@pantheon.tech> writes:

> Tests requiring hugepages do not work outside of VM environment because
> of security limitations. Enable aarch64 builds which run tests to run in
> a VM to avoid these limitations.
>
> Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> ---

Cool!

Globally we have dist: set to 'bionic'.  Does it make sense to upgrade all
the distributions to 'focal' ?  What is the rationale for not using
'bionic'?

>  .travis.yml | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/.travis.yml b/.travis.yml
> index d6eeab371..d73d3e4c5 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -88,7 +88,10 @@ jobs:
>      arch: arm64
>      compiler: gcc
>    - env: DEF_LIB="shared" RUN_TESTS=1
> -    arch: arm64
> +    dist: focal
> +    arch: arm64-graviton2
> +    virt: vm
> +    group: edge
>      compiler: gcc
>    - env: DEF_LIB="shared" BUILD_DOCS=1
>      arch: arm64
> @@ -103,5 +106,8 @@ jobs:
>      arch: arm64
>      compiler: clang
>    - env: DEF_LIB="shared" RUN_TESTS=1
> -    arch: arm64
> +    dist: focal
> +    arch: arm64-graviton2
> +    virt: vm
> +    group: edge
>      compiler: clang
  
Juraj Linkeš Aug. 26, 2020, 6:14 a.m. UTC | #2
> -----Original Message-----
> From: Aaron Conole <aconole@redhat.com>
> Sent: Tuesday, August 25, 2020 4:18 PM
> To: Juraj Linkeš <juraj.linkes@pantheon.tech>
> Cc: thomas@monjalon.net; david.marchand@redhat.com;
> maicolgabriel@hotmail.com; dev@dpdk.org; Kevin Laatz
> <kevin.laatz@intel.com>
> Subject: Re: [PATCH] ci: enable vm env for aarch64 builds
> 
> Juraj Linkeš <juraj.linkes@pantheon.tech> writes:
> 
> > Tests requiring hugepages do not work outside of VM environment
> > because of security limitations. Enable aarch64 builds which run tests
> > to run in a VM to avoid these limitations.
> >
> > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> > ---
> 
> Cool!
> 
> Globally we have dist: set to 'bionic'.  Does it make sense to upgrade all the
> distributions to 'focal' ?  What is the rationale for not using 'bionic'?
> 

I tried bionic, but it ran with focal anyway, so the rationale is 'not supported for arm vm environments'. This was released for early adopters, so they may expand the support to bionic later.

> >  .travis.yml | 10 ++++++++--
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/.travis.yml b/.travis.yml index d6eeab371..d73d3e4c5
> > 100644
> > --- a/.travis.yml
> > +++ b/.travis.yml
> > @@ -88,7 +88,10 @@ jobs:
> >      arch: arm64
> >      compiler: gcc
> >    - env: DEF_LIB="shared" RUN_TESTS=1
> > -    arch: arm64
> > +    dist: focal
> > +    arch: arm64-graviton2
> > +    virt: vm
> > +    group: edge
> >      compiler: gcc
> >    - env: DEF_LIB="shared" BUILD_DOCS=1
> >      arch: arm64
> > @@ -103,5 +106,8 @@ jobs:
> >      arch: arm64
> >      compiler: clang
> >    - env: DEF_LIB="shared" RUN_TESTS=1
> > -    arch: arm64
> > +    dist: focal
> > +    arch: arm64-graviton2
> > +    virt: vm
> > +    group: edge
> >      compiler: clang
>
  
Juraj Linkeš Aug. 27, 2020, 8:51 a.m. UTC | #3
> -----Original Message-----
> From: Juraj Linkeš
> Sent: Wednesday, August 26, 2020 8:14 AM
> To: 'Aaron Conole' <aconole@redhat.com>
> Cc: thomas@monjalon.net; david.marchand@redhat.com;
> maicolgabriel@hotmail.com; dev@dpdk.org; Kevin Laatz
> <kevin.laatz@intel.com>
> Subject: RE: [PATCH] ci: enable vm env for aarch64 builds
> 
> 
> 
> > -----Original Message-----
> > From: Aaron Conole <aconole@redhat.com>
> > Sent: Tuesday, August 25, 2020 4:18 PM
> > To: Juraj Linkeš <juraj.linkes@pantheon.tech>
> > Cc: thomas@monjalon.net; david.marchand@redhat.com;
> > maicolgabriel@hotmail.com; dev@dpdk.org; Kevin Laatz
> > <kevin.laatz@intel.com>
> > Subject: Re: [PATCH] ci: enable vm env for aarch64 builds
> >
> > Juraj Linkeš <juraj.linkes@pantheon.tech> writes:
> >
> > > Tests requiring hugepages do not work outside of VM environment
> > > because of security limitations. Enable aarch64 builds which run
> > > tests to run in a VM to avoid these limitations.
> > >
> > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> > > ---
> >
> > Cool!
> >
> > Globally we have dist: set to 'bionic'.  Does it make sense to upgrade
> > all the distributions to 'focal' ?  What is the rationale for not using 'bionic'?
> >
> 
> I tried bionic, but it ran with focal anyway, so the rationale is 'not supported for
> arm vm environments'. This was released for early adopters, so they may
> expand the support to bionic later.
> 

Couple more things. Since this new VM environment runs only on Focal, we want to leave the old jobs and add these new jobs, so we'll have bionic without hugepages and focal with hugepages. The reason is that the same test behave differently when run on a hungepage and non-hugepage environments. Does that make sense? Maybe having a non-hugepage job for just one compiler would be enough?

The other thing is switching to focal for all jobs. The difference would be in different lib and compiler versions but I don't know whether we want to dig deep into that or we just want to go with the latest or what's the most important thing to consider. How did you decide in the past?

> > >  .travis.yml | 10 ++++++++--
> > >  1 file changed, 8 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/.travis.yml b/.travis.yml index d6eeab371..d73d3e4c5
> > > 100644
> > > --- a/.travis.yml
> > > +++ b/.travis.yml
> > > @@ -88,7 +88,10 @@ jobs:
> > >      arch: arm64
> > >      compiler: gcc
> > >    - env: DEF_LIB="shared" RUN_TESTS=1
> > > -    arch: arm64
> > > +    dist: focal
> > > +    arch: arm64-graviton2
> > > +    virt: vm
> > > +    group: edge
> > >      compiler: gcc
> > >    - env: DEF_LIB="shared" BUILD_DOCS=1
> > >      arch: arm64
> > > @@ -103,5 +106,8 @@ jobs:
> > >      arch: arm64
> > >      compiler: clang
> > >    - env: DEF_LIB="shared" RUN_TESTS=1
> > > -    arch: arm64
> > > +    dist: focal
> > > +    arch: arm64-graviton2
> > > +    virt: vm
> > > +    group: edge
> > >      compiler: clang
> >
  

Patch

diff --git a/.travis.yml b/.travis.yml
index d6eeab371..d73d3e4c5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -88,7 +88,10 @@  jobs:
     arch: arm64
     compiler: gcc
   - env: DEF_LIB="shared" RUN_TESTS=1
-    arch: arm64
+    dist: focal
+    arch: arm64-graviton2
+    virt: vm
+    group: edge
     compiler: gcc
   - env: DEF_LIB="shared" BUILD_DOCS=1
     arch: arm64
@@ -103,5 +106,8 @@  jobs:
     arch: arm64
     compiler: clang
   - env: DEF_LIB="shared" RUN_TESTS=1
-    arch: arm64
+    dist: focal
+    arch: arm64-graviton2
+    virt: vm
+    group: edge
     compiler: clang