All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH OSSTEST v5] Add arm64 build and test jobs
@ 2015-09-29 15:10 Ian Campbell
  2015-09-29 15:33 ` Ian Jackson
  0 siblings, 1 reply; 5+ messages in thread
From: Ian Campbell @ 2015-09-29 15:10 UTC (permalink / raw)
  To: ian.jackson, xen-devel; +Cc: Ian Campbell

Runvars for the xen-unstable flight build jobs and an illustrative test:

build-arm64                                           arch                        arm64
build-arm64                                           build_lvextend_max          50
build-arm64                                           enable_ovmf                 true
build-arm64                                           enable_xend                 false
build-arm64                                           enable_xsm                  false
build-arm64                                           host_hostflags              share-build-jessie-arm64,arch-arm64,suite-jessie,purpose-build
build-arm64                                           revision_ovmf
build-arm64                                           revision_qemu
build-arm64                                           revision_qemuu              8ad9e71fc937439730fa68e82d6da11a50eb5c04
build-arm64                                           revision_seabios
build-arm64                                           revision_xen                61598449ae28fe89036a699fd524b73b9ca454ae
build-arm64                                           tree_ovmf
build-arm64                                           tree_qemu                   git://xenbits.xen.org/staging/qemu-xen-unstable.git
build-arm64                                           tree_qemuu                  git://xenbits.xen.org/staging/qemu-upstream-unstable.git
build-arm64                                           tree_seabios
build-arm64                                           tree_xen                    git://xenbits.xen.org/xen.git
build-arm64-libvirt                                   arch                        arm64
build-arm64-libvirt                                   build_lvextend_max          50
build-arm64-libvirt                                   buildjob                    build-arm64
build-arm64-libvirt                                   host_hostflags              share-build-jessie-arm64,arch-arm64,suite-jessie,purpose-build
build-arm64-libvirt                                   revision_libvirt            5e06a4f063dc6cf2ae14a361ddeb805d3f3ae440
build-arm64-libvirt                                   tree_libvirt                git://xenbits.xen.org/libvirt.git
build-arm64-libvirt                                   tree_xen                    git://xenbits.xen.org/xen.git
build-arm64-pvops                                     arch                        arm64
build-arm64-pvops                                     build_lvextend_max          50
build-arm64-pvops                                     host_hostflags              share-build-jessie-arm64,arch-arm64,suite-jessie,purpose-build
build-arm64-pvops                                     kconfig_override_y          CONFIG_EXT4_FS
build-arm64-pvops                                     kconfighow                  xen-enable-xen-config
build-arm64-pvops                                     revision_linux              64972ceb0b0cafc91a09764bc731e1b7f0503b5c
build-arm64-pvops                                     revision_linuxfirmware      c530a75c1e6a472b0eb9558310b518f0dfcd8860
build-arm64-pvops                                     tree_linux                  git://xenbits.xen.org/linux-pvops.git
build-arm64-pvops                                     tree_linuxfirmware          git://xenbits.xen.org/osstest/linux-firmware.git
build-arm64-pvops                                     treevcs_linux               git
build-arm64-xsm                                       arch                        arm64
build-arm64-xsm                                       build_lvextend_max          50
build-arm64-xsm                                       enable_ovmf                 true
build-arm64-xsm                                       enable_xend                 false
build-arm64-xsm                                       enable_xsm                  true
build-arm64-xsm                                       host_hostflags              share-build-jessie-arm64,arch-arm64,suite-jessie,purpose-build
build-arm64-xsm                                       revision_ovmf
build-arm64-xsm                                       revision_qemu
build-arm64-xsm                                       revision_qemuu              8ad9e71fc937439730fa68e82d6da11a50eb5c04
build-arm64-xsm                                       revision_seabios
build-arm64-xsm                                       revision_xen                61598449ae28fe89036a699fd524b73b9ca454ae
build-arm64-xsm                                       tree_ovmf
build-arm64-xsm                                       tree_qemu                   git://xenbits.xen.org/staging/qemu-xen-unstable.git
build-arm64-xsm                                       tree_qemuu                  git://xenbits.xen.org/staging/qemu-upstream-unstable.git
build-arm64-xsm                                       tree_seabios
build-arm64-xsm                                       tree_xen                    git://xenbits.xen.org/xen.git

test-arm64-arm64-xl                                   all_hostflags               arch-arm64,arch-xen-arm64,suite-jessie,purpose-test
test-arm64-arm64-xl                                   arch                        arm64
test-arm64-arm64-xl                                   buildjob                    build-arm64
test-arm64-arm64-xl                                   debian_arch                 arm64
test-arm64-arm64-xl                                   debian_kernkind             pvops
test-arm64-arm64-xl                                   enable_xsm                  false
test-arm64-arm64-xl                                   kernbuildjob                build-arm64-pvops
test-arm64-arm64-xl                                   kernkind                    pvops
test-arm64-arm64-xl                                   toolstack                   xl
test-arm64-arm64-xl                                   xenbuildjob                 build-arm64

The full set of tests is:

test-arm64-arm64-libvirt
test-arm64-arm64-libvirt-qcow2
test-arm64-arm64-libvirt-raw
test-arm64-arm64-libvirt-vhd
test-arm64-arm64-libvirt-xsm
test-arm64-arm64-xl
test-arm64-arm64-xl-credit2
test-arm64-arm64-xl-multivcpu
test-arm64-arm64-xl-qcow2
test-arm64-arm64-xl-raw
test-arm64-arm64-xl-rtds
test-arm64-arm64-xl-vhd
test-arm64-arm64-xl-xsm

In addition test-arm64-arm64-xl and appropriate build jobs are added
to xen-unstable-smoke.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
v5: Rebase and add arm64 jobs to xen-unstable-smoke.
    Abbridge the set of runvars in the commit message somewhat.

    I think these are minor enough to not invalidate the Ack, I hope
    that's OK.

    This series is still awaiting hardware, so reposting just for the
    addition on the smoke tests.
---
 make-flight     |  7 +++++--
 mfi-common      | 23 ++++++++++++++++++-----
 ts-kernel-build |  1 +
 3 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/make-flight b/make-flight
index 70c909d..7704d10 100755
--- a/make-flight
+++ b/make-flight
@@ -49,6 +49,8 @@ job_create_build_filter_callback () {
         build-amd64)		;;
         build-amd64-pvops)	;;
         build-amd64-libvirt)	;;
+        build-arm64)		;;
+        build-arm64-pvops)	;;
         build-armhf)		;;
         build-armhf-pvops)	;;
         *)			return 1 ;;
@@ -80,6 +82,7 @@ job_create_test_filter_callback () {
       case "$job" in
         test-amd64-amd64-libvirt)                  return 0 ;;
         test-armhf-armhf-xl)                       return 0 ;;
+        test-arm64-arm64-xl)                       return 0 ;;
         test-amd64-amd64-xl-qemuu-debianhvm-i386)  return 0 ;;
         *)                                         return 1 ;;
       esac
@@ -145,7 +148,7 @@ job_create_test_filter_callback () {
 
 test_matrix_branch_filter_callback () {
   case "$xenarch" in
-  armhf)
+  armhf|arm64)
         case "$branch" in
         linux-3.0) return 1;;
         linux-3.4) return 1;;
@@ -499,7 +502,7 @@ test_matrix_do_one () {
   do_credit2_tests
 
   # No further arm tests at the moment
-  if [ $dom0arch = armhf ]; then
+  if [ $dom0arch = armhf ] || [ $dom0arch = arm64 ]; then
       return
   fi
 
diff --git a/mfi-common b/mfi-common
index 5456c2c..ea70860 100644
--- a/mfi-common
+++ b/mfi-common
@@ -85,12 +85,12 @@ create_build_jobs () {
      BUILD_RUNVARS+=" build_lvextend_max=$BUILD_LVEXTEND_MAX "
   fi
 
-  for arch in ${BUILD_ARCHES- i386 amd64 armhf }; do
+  for arch in ${BUILD_ARCHES- i386 amd64 armhf arm64 }; do
 
     if [ "x$arch" = xdisable ]; then continue; fi
 
     case "$arch" in
-    armhf)
+    armhf|arm64)
       case "$branch" in
       linux-3.0) continue;;
       linux-3.4) continue;;
@@ -291,7 +291,7 @@ create_build_jobs () {
     fi
 
     case "$arch" in
-    armhf) continue;; # don't do any other kernel builds
+    armhf|arm64) continue;; # don't do any other kernel builds
     esac
 
     if [ "x$REVISION_LINUX_OLD" != xdisable ]; then
@@ -375,13 +375,25 @@ test_matrix_iterate () {
       ;;
   esac
 
-  for xenarch in ${TEST_ARCHES- i386 amd64 armhf } ; do
+  for xenarch in ${TEST_ARCHES- i386 amd64 armhf arm64 } ; do
 
     if [ "x$xenarch" = xdisable ]; then continue; fi
 
     test_matrix_branch_filter_callback || continue
 
     case "$xenarch" in
+    arm64)
+          # Arm64 from 4.5 onwards only
+          case "$xenbranch" in
+          xen-3.*-testing) continue;;
+          xen-4.0-testing) continue;;
+          xen-4.1-testing) continue;;
+          xen-4.2-testing) continue;;
+          xen-4.3-testing) continue;;
+          xen-4.4-testing) continue;;
+          *) ;;
+          esac
+          ;;
     armhf)
           # Arm from 4.3 onwards only
           case "$xenbranch" in
@@ -426,13 +438,14 @@ test_matrix_iterate () {
       *)          echo >&2 "kernkind ?  $kern"; exit 1 ;;
       esac
 
-      for dom0arch in i386 amd64 armhf; do
+      for dom0arch in i386 amd64 armhf arm64; do
 
         case ${xenarch}_${dom0arch} in
             amd64_amd64) ;;
             amd64_i386) ;;
             i386_i386) ;;
             armhf_armhf) ;;
+            arm64_arm64) ;;
             *) continue ;;
         esac
 
diff --git a/ts-kernel-build b/ts-kernel-build
index a16527b..dad63b9 100755
--- a/ts-kernel-build
+++ b/ts-kernel-build
@@ -39,6 +39,7 @@ builddirsprops();
 
 my $archparms = {
     'armhf' => { DefConfig => 'multi_v7_defconfig', KernelImage => 'arch/arm/boot/zImage' },
+    'arm64' => { DefConfig => 'defconfig',          KernelImage => 'arch/arm64/boot/Image' },
     'i386'  => { DefConfig => 'defconfig',          KernelImage => 'arch/x86/boot/bzImage' },
     'amd64' => { DefConfig => 'defconfig',          KernelImage => 'arch/x86/boot/bzImage' }
 };
-- 
2.5.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH OSSTEST v5] Add arm64 build and test jobs
  2015-09-29 15:10 [PATCH OSSTEST v5] Add arm64 build and test jobs Ian Campbell
@ 2015-09-29 15:33 ` Ian Jackson
  2015-09-29 16:01   ` Ian Campbell
  0 siblings, 1 reply; 5+ messages in thread
From: Ian Jackson @ 2015-09-29 15:33 UTC (permalink / raw)
  To: Ian Campbell; +Cc: xen-devel

Ian Campbell writes ("[PATCH OSSTEST v5] Add arm64 build and test jobs"):
> Runvars for the xen-unstable flight build jobs and an illustrative test:
...

Reading this again:

This is approximately doubling our ARM test bandwidth requirements,
isn't it ?

> test-arm64-arm64-libvirt
> test-arm64-arm64-libvirt-qcow2
> test-arm64-arm64-libvirt-raw
> test-arm64-arm64-libvirt-vhd
> test-arm64-arm64-libvirt-xsm
> test-arm64-arm64-xl
> test-arm64-arm64-xl-credit2
> test-arm64-arm64-xl-multivcpu
> test-arm64-arm64-xl-qcow2
> test-arm64-arm64-xl-raw
> test-arm64-arm64-xl-rtds
> test-arm64-arm64-xl-vhd
> test-arm64-arm64-xl-xsm

Maybe it would be worth doing some of these stripy in arch and disk
format ?

Also, why are there no
  test-arm64-armhf
jobs ?

> In addition test-arm64-arm64-xl and appropriate build jobs are added
> to xen-unstable-smoke.

I think this is probably fine provided the arm test bandwidth doesn't
start to be the limiting factor.

Ian.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH OSSTEST v5] Add arm64 build and test jobs
  2015-09-29 15:33 ` Ian Jackson
@ 2015-09-29 16:01   ` Ian Campbell
  2015-09-29 16:33     ` Ian Jackson
  0 siblings, 1 reply; 5+ messages in thread
From: Ian Campbell @ 2015-09-29 16:01 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Tue, 2015-09-29 at 16:33 +0100, Ian Jackson wrote:
> Ian Campbell writes ("[PATCH OSSTEST v5] Add arm64 build and test jobs"):
> > Runvars for the xen-unstable flight build jobs and an illustrative
> > test:
> ...
> 
> Reading this again:
> 
> This is approximately doubling our ARM test bandwidth requirements,
> isn't it ?

Not quite, since the arm32 and arm64 h/w is distinct. These tests won't run
on any of the arm32 hardware we have and the existing armhf tests won't run
on the new hwardware (for reasons I'll hopefully explain in the course of
answering the next question below).

> > test-arm64-arm64-libvirt
> > test-arm64-arm64-libvirt-qcow2
> > test-arm64-arm64-libvirt-raw
> > test-arm64-arm64-libvirt-vhd
> > test-arm64-arm64-libvirt-xsm
> > test-arm64-arm64-xl
> > test-arm64-arm64-xl-credit2
> > test-arm64-arm64-xl-multivcpu
> > test-arm64-arm64-xl-qcow2
> > test-arm64-arm64-xl-raw
> > test-arm64-arm64-xl-rtds
> > test-arm64-arm64-xl-vhd
> > test-arm64-arm64-xl-xsm
> 
> Maybe it would be worth doing some of these stripy in arch and disk
> format ?
> 
> Also, why are there no
>   test-arm64-armhf
> jobs ?

"It's complicated".

On x86 it is expected that a 64-bit processor will support 32-bit just fine
and everything (drivers etc) will be available etc, and people even
routinely test such processors running in 32-bit mode.

For ARMv8 the standard allows for implementations which include AArch32 (32
-bit ISA mostly compatible with ARMv7) at all privilege levels.

But each new ARMv8 processor implementation involves a certain amount of
per vendor code in Linux in arch/arm64 (the AArch64 AKA 64-bit port). That
support is rarely (never?) also added to arch/arm (the 32-bit port). Hence
it would be unusual to even find a 32-bit kernel to run on a 64-bit capable
processor.

Unlike with x86 it's unclear if there will ever be sufficient legacy drag
to cause such support to become a thing. I personally doubt it will.

Now there is another possibility, which is 32-bit userspace on a 64-bit
processor, which is something which Xen on ARM could support. I just didn't
think it was worth adding testing of that just now. It adds another nested
loop to make-flight and some complexity in the test naming etc (test-arm64
-armhf-armhf-foo?). In reality I think it unlikely people will use that for
dom0 though (there's no real reason to do so AFAICT).

I suppose there is also a fourth possibility which is a fully 64-bit host
with 32-bit guests, which is probably the most plausible and useful one,
and something we ought to consider testing at some point.

Ian.

> > In addition test-arm64-arm64-xl and appropriate build jobs are added
> > to xen-unstable-smoke.
> 
> I think this is probably fine provided the arm test bandwidth doesn't
> start to be the limiting factor.
> 
> Ian.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH OSSTEST v5] Add arm64 build and test jobs
  2015-09-29 16:01   ` Ian Campbell
@ 2015-09-29 16:33     ` Ian Jackson
  2015-09-30  8:21       ` Ian Campbell
  0 siblings, 1 reply; 5+ messages in thread
From: Ian Jackson @ 2015-09-29 16:33 UTC (permalink / raw)
  To: Ian Campbell; +Cc: xen-devel

Ian Campbell writes ("Re: [PATCH OSSTEST v5] Add arm64 build and test jobs"):
> Not quite, since the arm32 and arm64 h/w is distinct. These tests won't run
> on any of the arm32 hardware we have and the existing armhf tests won't run
> on the new hwardware (for reasons I'll hopefully explain in the course of
> answering the next question below).

Ah.  And we are hoping to get some arm64 hardware "RSN" ?

> > Also, why are there no
> >   test-arm64-armhf
> > jobs ?
> 
> "It's complicated".
...
> But each new ARMv8 processor implementation involves a certain amount of
> per vendor code in Linux in arch/arm64 (the AArch64 AKA 64-bit port). That
> support is rarely (never?) also added to arch/arm (the 32-bit port). Hence
> it would be unusual to even find a 32-bit kernel to run on a 64-bit capable
> processor.
...
> I suppose there is also a fourth possibility which is a fully 64-bit host
> with 32-bit guests, which is probably the most plausible and useful one,
> and something we ought to consider testing at some point.

It was this latter case which I was considering.  Is this per vendor
code in Linux needed for a non-dom0 Xen guest to work ?

But anyway, I guess this means we can punt on this for now.  Thanks
for the explanation.

Ian.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH OSSTEST v5] Add arm64 build and test jobs
  2015-09-29 16:33     ` Ian Jackson
@ 2015-09-30  8:21       ` Ian Campbell
  0 siblings, 0 replies; 5+ messages in thread
From: Ian Campbell @ 2015-09-30  8:21 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Tue, 2015-09-29 at 17:33 +0100, Ian Jackson wrote:
> Ian Campbell writes ("Re: [PATCH OSSTEST v5] Add arm64 build and test
> jobs"):
> > Not quite, since the arm32 and arm64 h/w is distinct. These tests won't
> > run
> > on any of the arm32 hardware we have and the existing armhf tests won't
> > run
> > on the new hwardware (for reasons I'll hopefully explain in the course
> > of
> > answering the next question below).
> 
> Ah.  And we are hoping to get some arm64 hardware "RSN" ?

Yes indeed.

> > > Also, why are there no
> > >   test-arm64-armhf
> > > jobs ?
> > 
> > "It's complicated".
> ...
> > But each new ARMv8 processor implementation involves a certain amount
> > of
> > per vendor code in Linux in arch/arm64 (the AArch64 AKA 64-bit port).
> > That
> > support is rarely (never?) also added to arch/arm (the 32-bit port).
> > Hence
> > it would be unusual to even find a 32-bit kernel to run on a 64-bit
> > capable
> > processor.
> ...
> > I suppose there is also a fourth possibility which is a fully 64-bit
> > host
> > with 32-bit guests, which is probably the most plausible and useful
> > one,
> > and something we ought to consider testing at some point.
> 
> It was this latter case which I was considering.  Is this per vendor
> code in Linux needed for a non-dom0 Xen guest to work ?

No, they should work with just the Xen guest support.

> But anyway, I guess this means we can punt on this for now.

Yes please.

>   Thanks
> for the explanation.
> 
> Ian.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-09-30  8:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-29 15:10 [PATCH OSSTEST v5] Add arm64 build and test jobs Ian Campbell
2015-09-29 15:33 ` Ian Jackson
2015-09-29 16:01   ` Ian Campbell
2015-09-29 16:33     ` Ian Jackson
2015-09-30  8:21       ` Ian Campbell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.