All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH OSSTEST v3 00/11] XSM test case for OSSTest
@ 2014-10-14 21:50 Wei Liu
  2014-10-14 21:50 ` [PATCH OSSTEST v3 01/11] README: list chiark-utils-bin as requirement Wei Liu
                   ` (10 more replies)
  0 siblings, 11 replies; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

Hi all

This patch series attempts to duplicate some Debian test cases for XSM. This
is version 3 of this series.

Tests duplicated for xen-unstable branch:
  build-{i386,amd64,armhf}-xsm
  test-amd64-{i386,amd64}-xl-xsm
  test-armhf-armhf-xl-xsm
  test-amd64-{i386,amd64}-xl-qemuu-debianhvm-amd64-xsm
  test-amd64-(i386,amd64}-xl-qemut-debianhvm-amd64-xsm

Output of 
  ./standalone-generate-dump-flight-runvars > origin # master
  ./standalone-generate-dump-flight-runvars > xsm # this series applied
  diff -ub ../origin xsm  | grep '+xen-unstable' | sed  's/[ \t]*$//'

+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm all_hostflags               arch-amd64,arch-xen-amd64,suite-wheezy,purpose-test,hvm
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm all_hostflags               arch-amd64,arch-xen-amd64,suite-wheezy,purpose-test,hvm
+xen-unstable               test-amd64-amd64-xl-xsm                       all_hostflags               arch-amd64,arch-xen-amd64,suite-wheezy,purpose-test
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  all_hostflags               arch-i386,arch-xen-amd64,suite-wheezy,purpose-test,hvm
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  all_hostflags               arch-i386,arch-xen-amd64,suite-wheezy,purpose-test,hvm
+xen-unstable               test-amd64-i386-xl-xsm                        all_hostflags               arch-i386,arch-xen-amd64,suite-wheezy,purpose-test
+xen-unstable               test-armhf-armhf-xl-xsm                       all_hostflags               arch-armhf,arch-xen-armhf,suite-wheezy,purpose-test
+xen-unstable               build-amd64-xsm                               arch                        amd64
+xen-unstable               build-armhf-xsm                               arch                        armhf
+xen-unstable               build-i386-xsm                                arch                        i386
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm arch                        amd64
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm arch                        amd64
+xen-unstable               test-amd64-amd64-xl-xsm                       arch                        amd64
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  arch                        i386
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  arch                        i386
+xen-unstable               test-amd64-i386-xl-xsm                        arch                        i386
+xen-unstable               test-armhf-armhf-xl-xsm                       arch                        armhf
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm bios                        rombios
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm bios                        seabios
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  bios                        rombios
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  bios                        seabios
+xen-unstable               build-amd64-xsm                               build_lvextend_max          50
+xen-unstable               build-armhf-xsm                               build_lvextend_max          50
+xen-unstable               build-i386-xsm                                build_lvextend_max          50
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm buildjob                    build-amd64-xsm
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm buildjob                    build-amd64-xsm
+xen-unstable               test-amd64-amd64-xl-xsm                       buildjob                    build-amd64-xsm
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  buildjob                    build-i386-xsm
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  buildjob                    build-i386-xsm
+xen-unstable               test-amd64-i386-xl-xsm                        buildjob                    build-i386-xsm
+xen-unstable               test-armhf-armhf-xl-xsm                       buildjob                    build-armhf-xsm
+xen-unstable               test-amd64-amd64-xl-xsm                       debian_arch                 amd64
+xen-unstable               test-amd64-i386-xl-xsm                        debian_arch                 i386
+xen-unstable               test-armhf-armhf-xl-xsm                       debian_arch                 armhf
+xen-unstable               test-amd64-amd64-xl-xsm                       debian_kernkind             pvops
+xen-unstable               test-amd64-i386-xl-xsm                        debian_kernkind             pvops
+xen-unstable               test-armhf-armhf-xl-xsm                       debian_kernkind             pvops
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm debianhvm_image             debian-7.2.0-amd64-CD-1.iso
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm debianhvm_image             debian-7.2.0-amd64-CD-1.iso
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  debianhvm_image             debian-7.2.0-amd64-CD-1.iso
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  debianhvm_image             debian-7.2.0-amd64-CD-1.iso
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm device_model_version        qemu-xen-traditional
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm device_model_version        qemu-xen
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  device_model_version        qemu-xen-traditional
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  device_model_version        qemu-xen
+xen-unstable               build-amd64-xsm                               enable_ovmf                 true
+xen-unstable               build-armhf-xsm                               enable_ovmf                 true
+xen-unstable               build-i386-xsm                                enable_ovmf                 true
+xen-unstable               build-amd64-xsm                               enable_xend                 false
+xen-unstable               build-armhf-xsm                               enable_xend                 false
+xen-unstable               build-i386-xsm                                enable_xend                 false
+xen-unstable               build-amd64                                   enable_xsm                  n
+xen-unstable               build-amd64-xsm                               enable_xsm                  y
+xen-unstable               build-armhf                                   enable_xsm                  n
+xen-unstable               build-armhf-xsm                               enable_xsm                  y
+xen-unstable               build-i386                                    enable_xsm                  n
+xen-unstable               build-i386-xsm                                enable_xsm                  y
+xen-unstable               test-amd64-amd64-xl                           enable_xsm                  n
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64     enable_xsm                  n
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm enable_xsm                  y
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64     enable_xsm                  n
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm enable_xsm                  y
+xen-unstable               test-amd64-amd64-xl-qemuu-ovmf-amd64          enable_xsm                  n
+xen-unstable               test-amd64-amd64-xl-xsm                       enable_xsm                  y
+xen-unstable               test-amd64-i386-xl                            enable_xsm                  n
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64      enable_xsm                  n
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  enable_xsm                  y
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64      enable_xsm                  n
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  enable_xsm                  y
+xen-unstable               test-amd64-i386-xl-qemuu-ovmf-amd64           enable_xsm                  n
+xen-unstable               test-amd64-i386-xl-xsm                        enable_xsm                  y
+xen-unstable               test-armhf-armhf-xl                           enable_xsm                  n
+xen-unstable               test-armhf-armhf-xl-xsm                       enable_xsm                  y
+xen-unstable               build-amd64-xsm                               host_hostflags              share-build-wheezy-amd64,arch-amd64,suite-wheezy,purpose-build
+xen-unstable               build-armhf-xsm                               host_hostflags              share-build-wheezy-armhf,arch-armhf,suite-wheezy,purpose-build
+xen-unstable               build-i386-xsm                                host_hostflags              share-build-wheezy-i386,arch-i386,suite-wheezy,purpose-build
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm kernbuildjob                build-amd64-pvops
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm kernbuildjob                build-amd64-pvops
+xen-unstable               test-amd64-amd64-xl-xsm                       kernbuildjob                build-amd64-pvops
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  kernbuildjob                build-i386-pvops
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  kernbuildjob                build-i386-pvops
+xen-unstable               test-amd64-i386-xl-xsm                        kernbuildjob                build-i386-pvops
+xen-unstable               test-armhf-armhf-xl-xsm                       kernbuildjob                build-armhf-pvops
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm kernkind                    pvops
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm kernkind                    pvops
+xen-unstable               test-amd64-amd64-xl-xsm                       kernkind                    pvops
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  kernkind                    pvops
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  kernkind                    pvops
+xen-unstable               test-amd64-i386-xl-xsm                        kernkind                    pvops
+xen-unstable               test-armhf-armhf-xl-xsm                       kernkind                    pvops
+xen-unstable               build-amd64-pvops                             revision_linux              89161fe91f2fd1049bcc38f5d4b814acab7b83f5
+xen-unstable               build-armhf-pvops                             revision_linux              89161fe91f2fd1049bcc38f5d4b814acab7b83f5
+xen-unstable               build-i386-pvops                              revision_linux              89161fe91f2fd1049bcc38f5d4b814acab7b83f5
+xen-unstable               build-amd64-xsm                               revision_qemu
+xen-unstable               build-armhf-xsm                               revision_qemu
+xen-unstable               build-i386-xsm                                revision_qemu
+xen-unstable               build-amd64-xsm                               revision_qemuu              c9d8f8b755e8960edf7725e05f3e6ac743a5e12e
+xen-unstable               build-armhf-xsm                               revision_qemuu              c9d8f8b755e8960edf7725e05f3e6ac743a5e12e
+xen-unstable               build-i386-xsm                                revision_qemuu              c9d8f8b755e8960edf7725e05f3e6ac743a5e12e
+xen-unstable               build-amd64-xsm                               revision_seabios
+xen-unstable               build-armhf-xsm                               revision_seabios
+xen-unstable               build-i386-xsm                                revision_seabios
+xen-unstable               build-amd64-xsm                               revision_xen                4d57153b52a36183d58e8de6ba613929f906386a
+xen-unstable               build-armhf-xsm                               revision_xen                4d57153b52a36183d58e8de6ba613929f906386a
+xen-unstable               build-i386-xsm                                revision_xen                4d57153b52a36183d58e8de6ba613929f906386a
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm toolstack                   xl
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm toolstack                   xl
+xen-unstable               test-amd64-amd64-xl-xsm                       toolstack                   xl
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  toolstack                   xl
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  toolstack                   xl
+xen-unstable               test-amd64-i386-xl-xsm                        toolstack                   xl
+xen-unstable               test-armhf-armhf-xl-xsm                       toolstack                   xl
+xen-unstable               build-amd64-xsm                               tree_qemu                   git://xenbits.xen.org/staging/qemu-xen-unstable.git
+xen-unstable               build-armhf-xsm                               tree_qemu                   git://xenbits.xen.org/staging/qemu-xen-unstable.git
+xen-unstable               build-i386-xsm                                tree_qemu                   git://xenbits.xen.org/staging/qemu-xen-unstable.git
+xen-unstable               build-amd64-xsm                               tree_qemuu                  git://xenbits.xen.org/staging/qemu-upstream-unstable.git
+xen-unstable               build-armhf-xsm                               tree_qemuu                  git://xenbits.xen.org/staging/qemu-upstream-unstable.git
+xen-unstable               build-i386-xsm                                tree_qemuu                  git://xenbits.xen.org/staging/qemu-upstream-unstable.git
+xen-unstable               build-amd64-xsm                               tree_seabios
+xen-unstable               build-armhf-xsm                               tree_seabios
+xen-unstable               build-i386-xsm                                tree_seabios
+xen-unstable               build-amd64-xsm                               tree_xen                    git://xenbits.xen.org/xen.git
+xen-unstable               build-armhf-xsm                               tree_xen                    git://xenbits.xen.org/xen.git
+xen-unstable               build-i386-xsm                                tree_xen                    git://xenbits.xen.org/xen.git
+xen-unstable               test-amd64-amd64-xl-qemut-debianhvm-amd64-xsm xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-amd64-xl-qemuu-debianhvm-amd64-xsm xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-amd64-xl-xsm                       xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-i386-xl-qemut-debianhvm-amd64-xsm  xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-i386-xl-qemuu-debianhvm-amd64-xsm  xenbuildjob                 build-amd64-xsm
+xen-unstable               test-amd64-i386-xl-xsm                        xenbuildjob                 build-amd64-xsm
+xen-unstable               test-armhf-armhf-xl-xsm                       xenbuildjob                 build-armhf-xsm

Changes since v2:
1. update 20_linux_xen
2. drop patches that add in seclabel
3. some code refactoring

Changes since v1:
1. address IanC's comments regarding coding style.
2. fix a bug in previous version that duplicates HVM test cases for pre-4.5
   branches.

Wei.

Wei Liu (11):
  README: list chiark-utils-bin as requirement
  gitignore: ignore images directory
  ts-debian-install: rename cfg_xend to cfg
  overlay: update overlay/etc/grub.d/20_linux_xen
  ts-xen-build-prep: install checkpolicy
  ts-xen-build: build with XSM support if requested
  mfi-common: create build-$arch-xsm job
  Debian.pm: pass in XSM configuration to bootloader setup routines
  Debian.pm: load flask policy in uboot
  ts-xen-install: install Xen with XSM support if requested
  mfi-common, make-flight: create XSM test jobs

 .gitignore                      |    1 +
 Osstest/Debian.pm               |   53 ++++++++++++++----
 README                          |    1 +
 make-flight                     |   61 +++++++++++++-------
 mfi-common                      |   34 +++++++++++-
 overlay/etc/grub.d/20_linux_xen |  117 +++++++++++++++++++++++++++++++--------
 ts-debian-install               |    4 +-
 ts-xen-build                    |   12 ++++
 ts-xen-build-prep               |    2 +-
 ts-xen-install                  |    4 +-
 10 files changed, 226 insertions(+), 63 deletions(-)

-- 
1.7.10.4

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

* [PATCH OSSTEST v3 01/11] README: list chiark-utils-bin as requirement
  2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
@ 2014-10-14 21:50 ` Wei Liu
  2014-10-14 21:50 ` [PATCH OSSTEST v3 02/11] gitignore: ignore images directory Wei Liu
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 README |    1 +
 1 file changed, 1 insertion(+)

diff --git a/README b/README
index 9a85549..ee1cd7a 100644
--- a/README
+++ b/README
@@ -204,6 +204,7 @@ To run osstest in standalone mode:
      pax rsync
      curl
      netcat
+     chiark-utils-bin
 
  - Optional: ipmitool
 
-- 
1.7.10.4

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

* [PATCH OSSTEST v3 02/11] gitignore: ignore images directory
  2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
  2014-10-14 21:50 ` [PATCH OSSTEST v3 01/11] README: list chiark-utils-bin as requirement Wei Liu
@ 2014-10-14 21:50 ` Wei Liu
  2014-10-14 21:50 ` [PATCH OSSTEST v3 03/11] ts-debian-install: rename cfg_xend to cfg Wei Liu
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 .gitignore |    1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitignore b/.gitignore
index 4f2a839..8dad470 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,4 @@ logs
 id_rsa_osstest
 id_rsa_osstest.pub
 overlay-local
+images
-- 
1.7.10.4

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

* [PATCH OSSTEST v3 03/11] ts-debian-install: rename cfg_xend to cfg
  2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
  2014-10-14 21:50 ` [PATCH OSSTEST v3 01/11] README: list chiark-utils-bin as requirement Wei Liu
  2014-10-14 21:50 ` [PATCH OSSTEST v3 02/11] gitignore: ignore images directory Wei Liu
@ 2014-10-14 21:50 ` Wei Liu
  2014-12-10 12:44   ` Ian Campbell
  2014-10-14 21:50 ` [PATCH OSSTEST v3 04/11] overlay: update overlay/etc/grub.d/20_linux_xen Wei Liu
                   ` (7 subsequent siblings)
  10 siblings, 1 reply; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

... as this config file is just a config file in general, not strictly a
Xend format config file.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 ts-debian-install |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ts-debian-install b/ts-debian-install
index 58ea743..fcef827 100755
--- a/ts-debian-install
+++ b/ts-debian-install
@@ -89,8 +89,8 @@ END
             $initrd_opt \\
             $archarg
 END
-    my $cfg_xend= "/etc/xen/$gho->{Name}.cfg";
-    store_runvar("$gho->{Guest}_cfgpath", $cfg_xend);
+    my $cfg= "/etc/xen/$gho->{Name}.cfg";
+    store_runvar("$gho->{Guest}_cfgpath", $cfg);
     store_runvar("$gho->{Guest}_swap_lv", "$gho->{Name}-swap");
 }
 
-- 
1.7.10.4

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

* [PATCH OSSTEST v3 04/11] overlay: update overlay/etc/grub.d/20_linux_xen
  2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
                   ` (2 preceding siblings ...)
  2014-10-14 21:50 ` [PATCH OSSTEST v3 03/11] ts-debian-install: rename cfg_xend to cfg Wei Liu
@ 2014-10-14 21:50 ` Wei Liu
  2014-12-10 12:54   ` Ian Campbell
  2014-10-14 21:50 ` [PATCH OSSTEST v3 05/11] ts-xen-build-prep: install checkpolicy Wei Liu
                   ` (6 subsequent siblings)
  10 siblings, 1 reply; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

This file was created to work around Debian bug #633127.

According to Debian bug tracker [0], this bug is fixed in Wheezy. As
we're now using Wheezy in OSSTest we can safely remove this overlay
file.

Also add a note to reference #633127 above grub2 setup function, in case
someone trips over #633127.

As we're now using Wheezy in production, update this file to Wheezy's
version and take care of Debian bug #690538 and GRUB bug #43420.

0: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633127

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
---
 Osstest/Debian.pm               |    3 +
 overlay/etc/grub.d/20_linux_xen |  117 +++++++++++++++++++++++++++++++--------
 2 files changed, 96 insertions(+), 24 deletions(-)

diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index ab09abb..ed8a1b2 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -274,6 +274,9 @@ sub setupboot_grub1 ($$$) {
     return $bl;
 }
 
+# Note on running OSSTest on Squeeze with old Xen kernel: check out
+# Debian bug #633127 "/etc/grub/20_linux does not recognise some old
+# Xen kernels"
 sub setupboot_grub2 ($$$) {
     my ($ho,$want_kernver,$xenhopt,$xenkopt) = @_;
     my $bl= { };
diff --git a/overlay/etc/grub.d/20_linux_xen b/overlay/etc/grub.d/20_linux_xen
index 99854d2..001b76d 100755
--- a/overlay/etc/grub.d/20_linux_xen
+++ b/overlay/etc/grub.d/20_linux_xen
@@ -1,7 +1,7 @@
 #! /bin/sh
 
-# Copied from the identically named file in grub-common 1.98+20100804-14
-# i386.  This version fixes #633127 (and has the patch I proposed there).
+# Copied from the identical named file in grub-common 1.99-27+deb7u2.
+# This version fixed Debian bug #690538 and GRUB bug #43420.
 
 set -e
 
@@ -21,14 +21,14 @@ set -e
 # You should have received a copy of the GNU General Public License
 # along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
 
-prefix=/usr
-exec_prefix=${prefix}
-bindir=${exec_prefix}/bin
-libdir=${exec_prefix}/lib
-. ${libdir}/grub/grub-mkconfig_lib
+prefix="/usr"
+exec_prefix="${prefix}"
+datarootdir="${prefix}/share"
+
+. "${datarootdir}/grub/grub-mkconfig_lib"
 
 export TEXTDOMAIN=grub
-export TEXTDOMAINDIR=${prefix}/share/locale
+export TEXTDOMAINDIR="${datarootdir}/locale"
 
 CLASS="--class gnu-linux --class gnu --class os --class xen"
 
@@ -36,7 +36,7 @@ if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
   OS=GNU/Linux
 else
   OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-  CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | cut -d' ' -f1) ${CLASS}"
+  CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
 fi
 
 # loop-AES arranges things so that /dev/loop/X can be our root device, but
@@ -44,6 +44,11 @@ fi
 case ${GRUB_DEVICE} in
   /dev/loop/*|/dev/loop[0-9])
     GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
+    # We can't cope with devices loop-mounted from files here.
+    case ${GRUB_DEVICE} in
+      /dev/*) ;;
+      *) exit 0 ;;
+    esac
   ;;
 esac
 
@@ -55,6 +60,23 @@ else
   LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
 fi
 
+# Allow overriding GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT.
+if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE}" ]; then
+  GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX_XEN_REPLACE}"
+fi
+if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}" ]; then
+  GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}"
+fi
+
+if [ "x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" = xbtrfs ] \
+    || [ "x`stat -f --printf=%T /`" = xbtrfs ]; then
+  rootsubvol="`make_system_path_relative_to_its_root /`"
+  rootsubvol="${rootsubvol#/}"
+  if [ "x${rootsubvol}" != x ]; then
+    GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
+  fi
+fi
+
 linux_entry ()
 {
   os="$1"
@@ -63,22 +85,43 @@ linux_entry ()
   recovery="$4"
   args="$5"
   xen_args="$6"
-  if ${recovery} ; then
-    title="$(gettext_quoted "%s, with Linux %s and XEN %s (recovery mode)")"
+  xsm="$7"
+  # If user wants to enable XSM support, make sure there's
+  # corresponding policy file.
+  if ${xsm} ; then
+      xenpolicy=`echo xenpolicy-$xen_version`
+      if test ! -e "${xen_dirname}/${xenpolicy}" ; then
+	  return
+      fi
+      xen_args=`echo $xen_args flask_enabled=1 flask_enforcing=1`
+      if ${recovery} ; then
+	  title="$(gettext_quoted "%s, with Xen %s (XSM enabled) and Linux %s (recovery mode)")"
+      else
+	  title="$(gettext_quoted "%s, with Xen %s (XSM enabled) and Linux %s")"
+      fi
   else
-    title="$(gettext_quoted "%s, with Linux %s and XEN %s")"
+      xenpolicy=""
+      if ${recovery} ; then
+	  title="$(gettext_quoted "%s, with Xen %s and Linux %s (recovery mode)")"
+      else
+	  title="$(gettext_quoted "%s, with Xen %s and Linux %s")"
+      fi
+  fi
+  printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${xen_version}" "${version}"
+  if ! ${recovery} ; then
+      save_default_entry | sed -e "s/^/\t/"
   fi
-  printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}" "${xen_version}"
-  save_default_entry | sed -e "s/^/\t/"
 
   if [ -z "${prepare_boot_cache}" ]; then
     prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")"
   fi
   printf '%s\n' "${prepare_boot_cache}"
-  message="$(gettext_printf "Loading Linux %s ..." ${version})"
+  xmessage="$(gettext_printf "Loading Xen %s ..." ${xen_version})"
+  lmessage="$(gettext_printf "Loading Linux %s ..." ${version})"
   cat << EOF
-	echo	'$message'
+	echo	'$xmessage'
 	multiboot	${rel_xen_dirname}/${xen_basename} placeholder ${xen_args}
+	echo	'$lmessage'
 	module	${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
 EOF
   if test -n "${initrd}" ; then
@@ -88,17 +131,37 @@ EOF
 	module	${rel_dirname}/${initrd}
 EOF
   fi
+  if test -n "${xenpolicy}" ; then
+    message="$(gettext_printf "Loading XSM policy ...")"
+    cat << EOF
+	echo	'$message'
+	module	${rel_dirname}/${xenpolicy}
+EOF
+  fi
   cat << EOF
 }
 EOF
 }
 
-linux_list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* ; do
+linux_list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do
+    if grub_file_is_not_garbage "$i"; then
     	basename=$(basename $i)
 	version=$(echo $basename | sed -e "s,^[^0-9]*-,,g")
-        if grub_file_is_not_garbage "$i" && grep -qx 'CONFIG_XEN_\(DOM0\|PRIVILEGED_GUEST\)=y' /boot/config-${version} 2> /dev/null ; then echo -n "$i " ; fi
-      done`
-xen_list=`for i in /boot/xen*; do
+	dirname=$(dirname $i)
+	config=
+	for j in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
+	    if test -e "${j}" ; then
+		config="${j}"
+		break
+	    fi
+	done
+        if (grep -qx "CONFIG_XEN_DOM0=y" "${config}" 2> /dev/null || grep -qx "CONFIG_XEN_PRIVILEGED_GUEST=y" "${config}" 2> /dev/null); then echo -n "$i " ; fi
+    fi
+    done`
+if [ "x${linux_list}" = "x" ] ; then
+    exit 0
+fi
+xen_list=`for i in /boot/xen[-.]*; do
         if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
       done`
 prepare_boot_cache=
@@ -123,7 +186,9 @@ while [ "x${xen_list}" != "x" ] ; do
 	initrd=
 	for i in "initrd.img-${version}" "initrd-${version}.img" \
 	    "initrd-${version}" "initrd.img-${alt_version}" \
-	    "initrd-${alt_version}.img" "initrd-${alt_version}"; do
+	    "initrd-${alt_version}.img" "initrd-${alt_version}" \
+	    "initramfs-genkernel-${version}" \
+	    "initramfs-genkernel-${alt_version}" ; do
 	    if test -e "${dirname}/${i}" ; then
 		initrd="$i"
 		break
@@ -137,10 +202,14 @@ while [ "x${xen_list}" != "x" ] ; do
 	fi
 
 	linux_entry "${OS}" "${version}" "${xen_version}" false \
-	    "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
-	if [ "x${GRUB_DISABLE_LINUX_RECOVERY}" != "xtrue" ]; then
+	    "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" false
+	linux_entry "${OS}" "${version}" "${xen_version}" false \
+	    "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" true
+	if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
+	    linux_entry "${OS}" "${version}" "${xen_version}" true \
+		"single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" false
 	    linux_entry "${OS}" "${version}" "${xen_version}" true \
-		"single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}"
+		"single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" true
 	fi
 
 	list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
-- 
1.7.10.4

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

* [PATCH OSSTEST v3 05/11] ts-xen-build-prep: install checkpolicy
  2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
                   ` (3 preceding siblings ...)
  2014-10-14 21:50 ` [PATCH OSSTEST v3 04/11] overlay: update overlay/etc/grub.d/20_linux_xen Wei Liu
@ 2014-10-14 21:50 ` Wei Liu
  2014-10-14 21:50 ` [PATCH OSSTEST v3 06/11] ts-xen-build: build with XSM support if requested Wei Liu
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

This is used to complie Flask policy.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 ts-xen-build-prep |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ts-xen-build-prep b/ts-xen-build-prep
index 05a7857..edef9a9 100755
--- a/ts-xen-build-prep
+++ b/ts-xen-build-prep
@@ -178,7 +178,7 @@ sub prep () {
                                autoconf automake libtool xsltproc
                                libxml2-utils libxml2-dev libnl-dev
                                libdevmapper-dev w3c-dtd-xhtml
-			       ccache));
+			       ccache checkpolicy));
 
     target_cmd_root($ho, "chmod -R a+r /usr/share/git-core/templates");
     # workaround for Debian #595728
-- 
1.7.10.4

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

* [PATCH OSSTEST v3 06/11] ts-xen-build: build with XSM support if requested
  2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
                   ` (4 preceding siblings ...)
  2014-10-14 21:50 ` [PATCH OSSTEST v3 05/11] ts-xen-build-prep: install checkpolicy Wei Liu
@ 2014-10-14 21:50 ` Wei Liu
  2014-12-10 13:05   ` Ian Campbell
  2014-10-14 21:50 ` [PATCH OSSTEST v3 07/11] mfi-common: create build-$arch-xsm job Wei Liu
                   ` (4 subsequent siblings)
  10 siblings, 1 reply; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 ts-xen-build |   12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/ts-xen-build b/ts-xen-build
index 661f186..390c114 100755
--- a/ts-xen-build
+++ b/ts-xen-build
@@ -27,6 +27,8 @@ tsreadconfig();
 selectbuildhost(\@ARGV);
 # remaining arguments are passed as targets to "make"
 builddirsprops();
+
+my $enable_xsm = $r{enable_xsm} =~ m/y/ ? 1 : 0;
     
 sub checkout () {
     prepbuilddirs();
@@ -34,6 +36,7 @@ sub checkout () {
     build_clone($ho, 'xen', $builddir, 'xen');
 
     my $debug_build = $r{xen_build_debug} || 'y';
+    my $build_xsm = $enable_xsm ? 'y' : 'n';
 
     # Do not set this unless you know what you are doing. This arm
     # option makes the build specific to a particular type of
@@ -47,6 +50,7 @@ sub checkout () {
         cd $builddir/xen
 	>.config
 	echo >>.config debug=$debug_build
+	echo >>.config XSM_ENABLE=$build_xsm
 	echo >>.config GIT_HTTP=y
 	echo >>.config LIBLEAFDIR_x86_64=lib
 	echo >>.config QEMU_REMOTE='$r{tree_qemu}'
@@ -114,6 +118,14 @@ END
     buildcmd_stamped_logged(9000, 'build', '',<<END,'');
             $make_prefix make $makeflags @ARGV
 END
+
+    if ($enable_xsm) {
+	my $xen_version = target_cmd_output_root($ho, <<END, 30);
+	    cd $builddir/xen
+	    $make_prefix make xenversion
+END
+        store_runvar("flaskpolicy", "xenpolicy-" . $xen_version);
+    }
 }
 
 sub collectversions () {
-- 
1.7.10.4

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

* [PATCH OSSTEST v3 07/11] mfi-common: create build-$arch-xsm job
  2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
                   ` (5 preceding siblings ...)
  2014-10-14 21:50 ` [PATCH OSSTEST v3 06/11] ts-xen-build: build with XSM support if requested Wei Liu
@ 2014-10-14 21:50 ` Wei Liu
  2014-12-10 13:12   ` Ian Campbell
  2014-10-14 21:50 ` [PATCH OSSTEST v3 08/11] Debian.pm: pass in XSM configuration to bootloader setup routines Wei Liu
                   ` (3 subsequent siblings)
  10 siblings, 1 reply; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 mfi-common |   23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/mfi-common b/mfi-common
index 5c4f5d5..e772086 100644
--- a/mfi-common
+++ b/mfi-common
@@ -41,6 +41,19 @@ branch_wants_rumpkernel_tests () {
   esac
 }
 
+xenbranch_wants_xsm_tests () {
+    # Test XSM from 4.5 onwards
+    case "$xenbranch" in
+    xen-3.*-testing) echo "n";;
+    xen-4.0-testing) echo "n";;
+    xen-4.1-testing) echo "n";;
+    xen-4.2-testing) echo "n";;
+    xen-4.3-testing) echo "n";;
+    xen-4.4-testing) echo "n";;
+    *) echo "n y";
+    esac
+}
+
 create_build_jobs () {
 
   local arch
@@ -139,8 +152,15 @@ create_build_jobs () {
 
     build_hostflags=share-build-$suite-$arch,arch-$arch,suite-$suite,purpose-build
 
-    ./cs-job-create $flight build-$arch build                                \
+    for enable_xsm in $(xenbranch_wants_xsm_tests) ; do
+      if [ x$enable_xsm = xy ] ; then
+        xsm_suffix="-xsm"
+      else
+        xsm_suffix=""
+      fi
+      ./cs-job-create $flight build-$arch$xsm_suffix build                   \
                 arch=$arch enable_xend=$build_defxend enable_ovmf=$enable_ovmf\
+                enable_xsm=$enable_xsm                                       \
         tree_qemu=$TREE_QEMU                                                 \
         tree_qemuu=$TREE_QEMU_UPSTREAM                                       \
         tree_xen=$TREE_XEN                                                   \
@@ -152,6 +172,7 @@ create_build_jobs () {
                 revision_qemu=$REVISION_QEMU                                 \
                 revision_qemuu=$REVISION_QEMU_UPSTREAM                       \
                 revision_seabios=$REVISION_SEABIOS
+    done
 
     if [ $build_extraxend = "true" ] ; then
     ./cs-job-create $flight build-$arch-xend build                           \
-- 
1.7.10.4

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

* [PATCH OSSTEST v3 08/11] Debian.pm: pass in XSM configuration to bootloader setup routines
  2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
                   ` (6 preceding siblings ...)
  2014-10-14 21:50 ` [PATCH OSSTEST v3 07/11] mfi-common: create build-$arch-xsm job Wei Liu
@ 2014-10-14 21:50 ` Wei Liu
  2014-10-14 21:50 ` [PATCH OSSTEST v3 09/11] Debian.pm: load flask policy in uboot Wei Liu
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

Change to Uboot will come in another patch. GRUB 1 is ignored, as
currently OSSTest only has Wheezy which has GRUB 2.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/Debian.pm |   32 +++++++++++++++++++++-----------
 1 file changed, 21 insertions(+), 11 deletions(-)

diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index ed8a1b2..30fb315 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -45,9 +45,9 @@ BEGIN {
 
 #---------- manipulation of Debian bootloader setup ----------
 
-sub debian_boot_setup ($$$$;$) {
+sub debian_boot_setup ($$$$$;$) {
     # $xenhopt==undef => is actually a guest, do not set up a hypervisor
-    my ($ho, $want_kernver, $xenhopt, $distpath, $hooks) = @_;
+    my ($ho, $want_kernver, $want_xsm, $xenhopt, $distpath, $hooks) = @_;
 
     target_kernkind_check($ho);
     target_kernkind_console_inittab($ho,$ho,"/");
@@ -72,11 +72,11 @@ sub debian_boot_setup ($$$$;$) {
 
     my $bootloader;
     if ( $ho->{Flags}{'need-uboot-bootscr'} ) {
-	$bootloader= setupboot_uboot($ho, $want_kernver, $xenhopt, $kopt);
+	$bootloader= setupboot_uboot($ho, $want_kernver, $want_xsm, $xenhopt, $kopt);
     } elsif ($ho->{Suite} =~ m/lenny/) {
-        $bootloader= setupboot_grub1($ho, $want_kernver, $xenhopt, $kopt);
+        $bootloader= setupboot_grub1($ho, $want_kernver, $want_xsm, $xenhopt, $kopt);
     } else {
-        $bootloader= setupboot_grub2($ho, $want_kernver, $xenhopt, $kopt);
+        $bootloader= setupboot_grub2($ho, $want_kernver, $want_xsm, $xenhopt, $kopt);
     }
 
     $bootloader->{UpdateConfig}($ho);
@@ -112,8 +112,8 @@ sub bl_getmenu_open ($$$) {
     return $f;
 }
 
-sub setupboot_uboot ($$$) {
-    my ($ho,$want_kernver,$xenhopt,$xenkopt) = @_;
+sub setupboot_uboot ($$$$) {
+    my ($ho,$want_kernver,$want_xsm,$xenhopt,$xenkopt) = @_;
     my $bl= { };
 
     $bl->{UpdateConfig}= sub {
@@ -194,13 +194,17 @@ END
     return $bl;
 }
 
-sub setupboot_grub1 ($$$) {
-    my ($ho,$want_kernver,$xenhopt,$xenkopt) = @_;
+sub setupboot_grub1 ($$$$) {
+    my ($ho,$want_kernver,$want_xsm,$xenhopt,$xenkopt) = @_;
     my $bl= { };
 
     my $rmenu= "/boot/grub/menu.lst";
     my $lmenu= "$stash/$ho->{Name}--menu.lst.out";
 
+    if ($want_xsm) {
+	die "Enabling XSM with GRUB is not supported";
+    }
+
     target_editfile_root($ho, $rmenu, sub {
         while (<::EI>) {
             if (m/^## ## Start Default/ ..
@@ -277,8 +281,8 @@ sub setupboot_grub1 ($$$) {
 # Note on running OSSTest on Squeeze with old Xen kernel: check out
 # Debian bug #633127 "/etc/grub/20_linux does not recognise some old
 # Xen kernels"
-sub setupboot_grub2 ($$$) {
-    my ($ho,$want_kernver,$xenhopt,$xenkopt) = @_;
+sub setupboot_grub2 ($$$$) {
+    my ($ho,$want_kernver,$want_xsm,$xenhopt,$xenkopt) = @_;
     my $bl= { };
 
     my $rmenu= '/boot/grub/grub.cfg';
@@ -305,6 +309,9 @@ sub setupboot_grub2 ($$$) {
 			 $entry->{KernVer} ne $want_kernver) {
 		    logm("(skipping entry at $entry->{StartLine};".
 			 " kernel $entry->{KernVer}, not $want_kernver)");
+		} elsif ($want_xsm && !defined $entry->{Xenpolicy}) {
+		    logm("(skipping entry at $entry->{StartLine};".
+			 " XSM policy file not present)");
 		} else {
 		    # yes!
 		    last;
@@ -337,6 +344,9 @@ sub setupboot_grub2 ($$$) {
             if (m/^\s*module\s*\/(initrd\S+)/) {
                 $entry->{Initrd}= $1;
             }
+	    if (m/^\s*module\s*\/(xenpolicy\S+)/) {
+                $entry->{Xenpolicy}= $1;
+            }
         }
         die 'grub 2 bootloader entry not found' unless $entry;
 
-- 
1.7.10.4

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

* [PATCH OSSTEST v3 09/11] Debian.pm: load flask policy in uboot
  2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
                   ` (7 preceding siblings ...)
  2014-10-14 21:50 ` [PATCH OSSTEST v3 08/11] Debian.pm: pass in XSM configuration to bootloader setup routines Wei Liu
@ 2014-10-14 21:50 ` Wei Liu
  2014-10-14 21:50 ` [PATCH OSSTEST v3 10/11] ts-xen-install: install Xen with XSM support if requested Wei Liu
  2014-10-14 21:50 ` [PATCH OSSTEST v3 11/11] mfi-common, make-flight: create XSM test jobs Wei Liu
  10 siblings, 0 replies; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/Debian.pm |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index 30fb315..ad0dd48 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -123,6 +123,22 @@ sub setupboot_uboot ($$$$) {
 	my $kern = "vmlinuz-$want_kernver";
 	my $initrd = "initrd.img-$want_kernver";
 
+	my $flask_commands = "";
+	if ($want_xsm) {
+	    my $flaskpolicy = $r{flaskpolicy};
+	    $flask_commands = <<END;
+
+setenv flask_policy_addr_r 0x1200000
+flaskpolicy=`readlink /boot/$flaskpolicy`
+ext2load scsi 0 \\\${flask_policy_addr_r} \$flaskpolicy
+fdt mknod /chosen module\@2
+fdt set /chosen/module\@2 compatible "xen,xsm-policy"
+fdt set /chosen/module\@2 reg <\\\${flask_policy_addr_r} \\\${filesize}>
+echo Loaded $flaskpolicy to \\\${flask_policy_addr_r} (\\\${filesize})
+
+END
+	}
+
 	my $root= target_guest_lv_name($ho,"root");
 
 	logm("Xen options: $xenhopt");
@@ -176,6 +192,8 @@ fdt set /chosen/module\@1 compatible "xen,linux-initrd" "xen,multiboot-module"
 fdt set /chosen/module\@1 reg <\\\${ramdisk_addr_r} \\\${filesize}>
 echo Loaded $initrd to \\\${ramdisk_addr_r} (\\\${filesize})
 
+${flask_commands}
+
 fdt print /chosen
 
 echo Booting \\\${xen_addr_r} - \\\${fdt_addr}
-- 
1.7.10.4

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

* [PATCH OSSTEST v3 10/11] ts-xen-install: install Xen with XSM support if requested
  2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
                   ` (8 preceding siblings ...)
  2014-10-14 21:50 ` [PATCH OSSTEST v3 09/11] Debian.pm: load flask policy in uboot Wei Liu
@ 2014-10-14 21:50 ` Wei Liu
  2014-12-10 13:15   ` Ian Campbell
  2014-10-14 21:50 ` [PATCH OSSTEST v3 11/11] mfi-common, make-flight: create XSM test jobs Wei Liu
  10 siblings, 1 reply; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 ts-xen-install |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/ts-xen-install b/ts-xen-install
index 4d34d1f..2e2fcbc 100755
--- a/ts-xen-install
+++ b/ts-xen-install
@@ -46,6 +46,8 @@ if (@ARGV and $ARGV[0] eq '--check') {
 
 our $ho;
 
+my $enable_xsm = $r{enable_xsm} =~ m/y/ ? 1 : 0;
+
 my %distpath;
 
 sub packages () {
@@ -171,7 +173,7 @@ sub setupboot () {
     }
 
     my $want_kernver = get_runvar('kernel_ver',$r{'kernbuildjob'});
-    debian_boot_setup($ho, $want_kernver, $xenhopt, \%distpath, \@hooks);
+    debian_boot_setup($ho, $want_kernver, $enable_xsm, $xenhopt, \%distpath, \@hooks);
 
     logm("ready to boot Xen");
 }
-- 
1.7.10.4

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

* [PATCH OSSTEST v3 11/11] mfi-common, make-flight: create XSM test jobs
  2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
                   ` (9 preceding siblings ...)
  2014-10-14 21:50 ` [PATCH OSSTEST v3 10/11] ts-xen-install: install Xen with XSM support if requested Wei Liu
@ 2014-10-14 21:50 ` Wei Liu
  2014-12-10 13:28   ` Ian Campbell
  10 siblings, 1 reply; 25+ messages in thread
From: Wei Liu @ 2014-10-14 21:50 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

Duplicate Debian PV and HVM test jobs for XSM testing.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 make-flight |   61 +++++++++++++++++++++++++++++++++++++++--------------------
 mfi-common  |   11 +++++++++--
 2 files changed, 49 insertions(+), 23 deletions(-)

diff --git a/make-flight b/make-flight
index 9963a46..9ab95a0 100755
--- a/make-flight
+++ b/make-flight
@@ -123,7 +123,7 @@ do_rumpkernel_tests () {
   rumparch=$dom0arch
   job_create_test test-$xenarch$kern-$dom0arch-rumpuserxen-$rumparch \
                       test-rumpuserxen xl \
-            $xenarch $dom0arch                                       \
+            $xenarch $dom0arch n                                     \
             guests_rumpuserxenbuildjob=build-$rumparch-rumpuserxen   \
      rump_builtimage=rumpuserxen:/usr/local/lib/xen/rump-kernel/rump-kernel \
             rump_cmdline=3                                           \
@@ -141,7 +141,7 @@ do_freebsd_tests () {
   for freebsdarch in amd64 i386; do
 
  job_create_test test-$xenarch$kern-$dom0arch$qemuu_suffix-freebsd10-$freebsdarch \
-                        test-freebsd xl $xenarch $dom0arch \
+                        test-freebsd xl $xenarch $dom0arch n \
                         freebsd_arch=$freebsdarch \
  freebsd_image=${FREEBSD_IMAGE_PREFIX-FreeBSD-10.0-RELEASE-}$freebsdarch${FREEBSD_IMAGE_SUFFIX--20140116-r260789.qcow2.xz} \
                         all_hostflags=$most_hostflags
@@ -179,7 +179,7 @@ do_hvm_winxp_tests () {
 
     job_create_test \
             test-$xenarch$kern-$dom0arch-$toolstack$qemuu_suffix-winxpsp3$vcpus_suffix \
-            test-win $toolstack $xenarch $dom0arch $qemuu_runvar \
+            test-win $toolstack $xenarch $dom0arch n $qemuu_runvar \
             win_image=winxpsp3.iso $vcpus_runvars   \
             all_hostflags=$most_hostflags,hvm
 
@@ -192,7 +192,7 @@ do_hvm_win7_x64_tests () {
   fi
 
   job_create_test test-$xenarch$kern-$dom0arch-xl$qemuu_suffix-win7-amd64 \
-            test-win xl $xenarch $dom0arch $qemuu_runvar \
+            test-win xl $xenarch $dom0arch n $qemuu_runvar \
             win_image=win7-x64.iso \
             all_hostflags=$most_hostflags,hvm
 }
@@ -200,27 +200,36 @@ do_hvm_win7_x64_tests () {
 do_hvm_debian_test_one () {
   testname=$1
   bios=$2
+  xsm=$3
+
   job_create_test test-$xenarch$kern-$dom0arch-xl$qemuu_suffix-$testname-amd64\
-    test-debianhvm xl $xenarch $dom0arch $qemuu_runvar \
+    test-debianhvm xl $xenarch $dom0arch $xsm $qemuu_runvar \
+    enable_xsm=$xsm                             \
     debianhvm_image=debian-7.2.0-amd64-CD-1.iso \
     bios=$bios \
     all_hostflags=$most_hostflags,hvm
 }
 
 do_hvm_debian_tests() {
+  test_xsm="$@"
+
   if [ $xenarch != amd64 ]; then
     return
   fi
 
   # QEMU upstream supports ovmf and seabios
   if [ "x$qemuu_suffix" == "x-qemuu" ]; then
-    do_hvm_debian_test_one ovmf ovmf
-    do_hvm_debian_test_one debianhvm seabios
+    do_hvm_debian_test_one ovmf ovmf n
+    for xsm in $test_xsm ; do
+      do_hvm_debian_test_one debianhvm seabios $xsm
+    done
   fi
 
   # QEMU traditional supports rombios
   if [ "x$qemuu_suffix" == "x-qemut" ]; then
-    do_hvm_debian_test_one debianhvm rombios
+    for xsm in $test_xsm ; do
+      do_hvm_debian_test_one debianhvm rombios $xsm
+    done
   fi
 }
 
@@ -232,7 +241,7 @@ do_hvm_rhel6_tests () {
   for cpuvendor in amd intel; do
 
     job_create_test test-$xenarch$kern-$dom0arch$qemuu_suffix-rhel6hvm-$cpuvendor \
-                                            test-rhelhvm xl $xenarch $dom0arch \
+                                            test-rhelhvm xl $xenarch $dom0arch n  \
             redhat_image=rhel-server-6.1-i386-dvd.iso \
             all_hostflags=$most_hostflags,hvm-$cpuvendor \
             $qemuu_runvar
@@ -247,7 +256,7 @@ do_sedf_tests () {
 
   for pin in '' -pin; do
     job_create_test test-$xenarch$kern-$dom0arch-xl-sedf$pin  \
-       test-debian xl $xenarch $dom0arch                      \
+       test-debian xl $xenarch $dom0arch n                    \
             guests_vcpus=4                                    \
             xen_boot_append="sched=sedf loglvl=all ${pin:+dom0_vcpus_pin}" \
             linux_boot_append='loglevel=9 debug'              \
@@ -261,7 +270,7 @@ do_credit2_tests () {
   fi
 
   job_create_test test-$xenarch$kern-$dom0arch-xl-credit2             \
-       test-debian xl $xenarch $dom0arch                              \
+       test-debian xl $xenarch $dom0arch n                            \
             guests_vcpus=4 xen_boot_append='sched=credit2'            \
             $debian_runvars all_hostflags=$most_hostflags
 }
@@ -273,7 +282,7 @@ do_passthrough_tests () {
 
   for cpuvendor in intel; do
     job_create_test test-$xenarch$kern-$dom0arch-xl-pcipt-intel       \
-                    test-debian-nomigr xl $xenarch $dom0arch          \
+                    test-debian-nomigr xl $xenarch $dom0arch n        \
             guests_vcpus=4                                            \
             $debian_runvars debian_pcipassthrough_nic=host            \
             all_hostflags=$most_hostflags,hvm-$cpuvendor,pcipassthrough-nic
@@ -281,16 +290,26 @@ do_passthrough_tests () {
   done
 }
 
-test_matrix_do_one () {
-
-  # Basic PV Linux test with xl
+do_pv_linux_xl_test_one () {
+  xsm=$1
 
   job_create_test test-$xenarch$kern-$dom0arch-xl test-debian xl \
-            $xenarch $dom0arch                                   \
+            $xenarch $dom0arch $xsm                              \
+            enable_xsm=$xsm                                      \
             $debian_runvars all_hostflags=$most_hostflags
+}
+
+test_matrix_do_one () {
+
+  test_xsm=$(xenbranch_wants_xsm_tests)
+
+  # Basic PV Linux test with xl
+  for xsm in $test_xsm ; do
+    do_pv_linux_xl_test_one $xsm
+  done
 
   job_create_test test-$xenarch$kern-$dom0arch-libvirt test-debian libvirt \
-            $xenarch $dom0arch                                       \
+            $xenarch $dom0arch n                                           \
             $debian_runvars all_hostflags=$most_hostflags
 
   # No further arm tests at the moment
@@ -314,7 +333,7 @@ test_matrix_do_one () {
   # xend PV guest test on x86 only
   if [ x$test_xend = xy -a \( $dom0arch = "i386" -o $dom0arch = "amd64" \) ]; then
     job_create_test test-$xenarch$kern-$dom0arch-pv test-debian xend \
-            $xenarch $dom0arch                                       \
+            $xenarch $dom0arch n                                     \
             $debian_runvars all_hostflags=$most_hostflags
   fi
 
@@ -342,13 +361,13 @@ test_matrix_do_one () {
     do_hvm_win7_x64_tests
     do_hvm_rhel6_tests
 
-    do_hvm_debian_tests
+    do_hvm_debian_tests $test_xsm
 
   done # qemuu_suffix
 
   # Test live migration
   job_create_test test-$xenarch$kern-$dom0arch-pair test-pair \
-            $onetoolstack $xenarch $dom0arch \
+            $onetoolstack $xenarch $dom0arch n \
             !host !host_hostflags \
             $debian_runvars \
             all_hostflags=$most_hostflags,equiv-1
@@ -359,7 +378,7 @@ test_matrix_do_one () {
   if [ $xenarch = amd64 -a $dom0arch = i386 ]; then
 
   job_create_test test-$xenarch$kern-$dom0arch-xl-multivcpu \
-                    test-debian xl $xenarch $dom0arch guests_vcpus=4  \
+                    test-debian xl $xenarch $dom0arch n guests_vcpus=4  \
                     $debian_runvars all_hostflags=$most_hostflags
 
   fi
diff --git a/mfi-common b/mfi-common
index e772086..a81dfba 100644
--- a/mfi-common
+++ b/mfi-common
@@ -267,9 +267,16 @@ job_create_test () {
   local toolstack=$1; shift
   local xenarch=$1; shift
   local dom0arch=$1; shift
+  local xsm=$1; shift
 
-  xenbuildjob="${bfi}build-$xenarch"
-  buildjob="${bfi}build-$dom0arch"
+  xsm_suffix=""
+  if [ x$xsm = xy ] ; then
+      xsm_suffix="-xsm"
+  fi
+
+  job="$job$xsm_suffix"
+  xenbuildjob="${bfi}build-$xenarch$xsm_suffix"
+  buildjob="${bfi}build-$dom0arch$xsm_suffix"
   tsbuildjob=
 
   case "$xenbranch:$toolstack" in
-- 
1.7.10.4

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

* Re: [PATCH OSSTEST v3 03/11] ts-debian-install: rename cfg_xend to cfg
  2014-10-14 21:50 ` [PATCH OSSTEST v3 03/11] ts-debian-install: rename cfg_xend to cfg Wei Liu
@ 2014-12-10 12:44   ` Ian Campbell
  0 siblings, 0 replies; 25+ messages in thread
From: Ian Campbell @ 2014-12-10 12:44 UTC (permalink / raw)
  To: Wei Liu; +Cc: ian.jackson, xen-devel

On Tue, 2014-10-14 at 22:50 +0100, Wei Liu wrote:
> ... as this config file is just a config file in general, not strictly a
> Xend format config file.
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

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

* Re: [PATCH OSSTEST v3 04/11] overlay: update overlay/etc/grub.d/20_linux_xen
  2014-10-14 21:50 ` [PATCH OSSTEST v3 04/11] overlay: update overlay/etc/grub.d/20_linux_xen Wei Liu
@ 2014-12-10 12:54   ` Ian Campbell
  2014-12-10 13:41     ` Wei Liu
  0 siblings, 1 reply; 25+ messages in thread
From: Ian Campbell @ 2014-12-10 12:54 UTC (permalink / raw)
  To: Wei Liu; +Cc: ian.jackson, xen-devel

On Tue, 2014-10-14 at 22:50 +0100, Wei Liu wrote:
> This file was created to work around Debian bug #633127.
> 
> According to Debian bug tracker [0], this bug is fixed in Wheezy. As
> we're now using Wheezy in OSSTest we can safely remove this overlay
> file.
> 
> Also add a note to reference #633127 above grub2 setup function, in case
> someone trips over #633127.
> 
> As we're now using Wheezy in production, update this file to Wheezy's
> version and take care of Debian bug #690538 and GRUB bug #43420.

When reference bugs it would be useful to include the bug title here so
the reader doesn't have to go and look it up.

#690538 relates to providing an option to remove the submenus. Please
can the changelog explain why that is relevant to us.

Did you fix it by removing/reverting the submenu support altogether, as
opposed to e.g. importing the patch from Eric Fischer in the bug report?
I don't see stuff which I'd expect if you had applied the patch. I think
it would be worth spelling out in a bit more detail what the changes
you've made to the baseline for each bug were.

I suppose constructing overlay/etc/grub.d/20_linux_xen from a baseline
unmodified version (checked in, not retrieved from the host) and a
mini-patch-series (also checked in) on the fly is over complexifying
things?

Ian.

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

* Re: [PATCH OSSTEST v3 06/11] ts-xen-build: build with XSM support if requested
  2014-10-14 21:50 ` [PATCH OSSTEST v3 06/11] ts-xen-build: build with XSM support if requested Wei Liu
@ 2014-12-10 13:05   ` Ian Campbell
  2014-12-10 13:47     ` Wei Liu
  0 siblings, 1 reply; 25+ messages in thread
From: Ian Campbell @ 2014-12-10 13:05 UTC (permalink / raw)
  To: Wei Liu; +Cc: ian.jackson, xen-devel

On Tue, 2014-10-14 at 22:50 +0100, Wei Liu wrote:
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>

Looks like Ian J acked v2 in
<21559.64364.468553.506173@mariner.uk.xensource.com>.


> ---
>  ts-xen-build |   12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/ts-xen-build b/ts-xen-build
> index 661f186..390c114 100755
> --- a/ts-xen-build
> +++ b/ts-xen-build
> @@ -27,6 +27,8 @@ tsreadconfig();
>  selectbuildhost(\@ARGV);
>  # remaining arguments are passed as targets to "make"
>  builddirsprops();
> +
> +my $enable_xsm = $r{enable_xsm} =~ m/y/ ? 1 : 0;

Existing boolean runvars (enable_ovmf, enable_xend) appear to use
true/false (which still need laundering into Perl booleans). Using y/n
made sense when you were poking it straight into XSM_ENABLE, but if you
are going to have to translate it there anyway (into $build_xsm) you may
as well go for consistency.

>      
>  sub checkout () {
>      prepbuilddirs();
> @@ -34,6 +36,7 @@ sub checkout () {
>      build_clone($ho, 'xen', $builddir, 'xen');
>  
>      my $debug_build = $r{xen_build_debug} || 'y';
> +    my $build_xsm = $enable_xsm ? 'y' : 'n';
>  
>      # Do not set this unless you know what you are doing. This arm
>      # option makes the build specific to a particular type of
> @@ -47,6 +50,7 @@ sub checkout () {
>          cd $builddir/xen
>  	>.config
>  	echo >>.config debug=$debug_build
> +	echo >>.config XSM_ENABLE=$build_xsm
>  	echo >>.config GIT_HTTP=y
>  	echo >>.config LIBLEAFDIR_x86_64=lib
>  	echo >>.config QEMU_REMOTE='$r{tree_qemu}'
> @@ -114,6 +118,14 @@ END
>      buildcmd_stamped_logged(9000, 'build', '',<<END,'');
>              $make_prefix make $makeflags @ARGV
>  END
> +
> +    if ($enable_xsm) {
> +	my $xen_version = target_cmd_output_root($ho, <<END, 30);
> +	    cd $builddir/xen
> +	    $make_prefix make xenversion
> +END
> +        store_runvar("flaskpolicy", "xenpolicy-" . $xen_version);
> +    }
>  }
>  
>  sub collectversions () {

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

* Re: [PATCH OSSTEST v3 07/11] mfi-common: create build-$arch-xsm job
  2014-10-14 21:50 ` [PATCH OSSTEST v3 07/11] mfi-common: create build-$arch-xsm job Wei Liu
@ 2014-12-10 13:12   ` Ian Campbell
  2014-12-10 13:32     ` Wei Liu
  0 siblings, 1 reply; 25+ messages in thread
From: Ian Campbell @ 2014-12-10 13:12 UTC (permalink / raw)
  To: Wei Liu; +Cc: ian.jackson, xen-devel

On Tue, 2014-10-14 at 22:50 +0100, Wei Liu wrote:
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> ---
>  mfi-common |   23 ++++++++++++++++++++++-
>  1 file changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/mfi-common b/mfi-common
> index 5c4f5d5..e772086 100644
> --- a/mfi-common
> +++ b/mfi-common
> @@ -41,6 +41,19 @@ branch_wants_rumpkernel_tests () {
>    esac
>  }
>  
> +xenbranch_wants_xsm_tests () {
> +    # Test XSM from 4.5 onwards
> +    case "$xenbranch" in
> +    xen-3.*-testing) echo "n";;
> +    xen-4.0-testing) echo "n";;
> +    xen-4.1-testing) echo "n";;
> +    xen-4.2-testing) echo "n";;
> +    xen-4.3-testing) echo "n";;
> +    xen-4.4-testing) echo "n";;
> +    *) echo "n y";

Did you mean just "y" here, or is something very subtle going on?

Oh I see, you run over the result of this as a list with for. Sneaky!

I think you should name it something like xenbranch_xsm_variants or
something else which doesn't make the reader expect it to return a
boolean.

Ian.

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

* Re: [PATCH OSSTEST v3 10/11] ts-xen-install: install Xen with XSM support if requested
  2014-10-14 21:50 ` [PATCH OSSTEST v3 10/11] ts-xen-install: install Xen with XSM support if requested Wei Liu
@ 2014-12-10 13:15   ` Ian Campbell
  2014-12-10 13:34     ` Wei Liu
  0 siblings, 1 reply; 25+ messages in thread
From: Ian Campbell @ 2014-12-10 13:15 UTC (permalink / raw)
  To: Wei Liu; +Cc: ian.jackson, xen-devel

On Tue, 2014-10-14 at 22:50 +0100, Wei Liu wrote:
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> ---
>  ts-xen-install |    4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/ts-xen-install b/ts-xen-install
> index 4d34d1f..2e2fcbc 100755
> --- a/ts-xen-install
> +++ b/ts-xen-install
> @@ -46,6 +46,8 @@ if (@ARGV and $ARGV[0] eq '--check') {
>  
>  our $ho;
>  
> +my $enable_xsm = $r{enable_xsm} =~ m/y/ ? 1 : 0;
> +
>  my %distpath;
>  
>  sub packages () {
> @@ -171,7 +173,7 @@ sub setupboot () {
>      }
>  
>      my $want_kernver = get_runvar('kernel_ver',$r{'kernbuildjob'});
> -    debian_boot_setup($ho, $want_kernver, $xenhopt, \%distpath, \@hooks);
> +    debian_boot_setup($ho, $want_kernver, $enable_xsm, $xenhopt, \%distpath, \@hooks);

Doesn't this have to be in the same patch as the one which adds the new
parameter in the function declaration? Or at least that patch needs to
hardcode a false until now.

(not sure we care much about bisectability in osstest, Ian?)

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

* Re: [PATCH OSSTEST v3 11/11] mfi-common, make-flight: create XSM test jobs
  2014-10-14 21:50 ` [PATCH OSSTEST v3 11/11] mfi-common, make-flight: create XSM test jobs Wei Liu
@ 2014-12-10 13:28   ` Ian Campbell
  0 siblings, 0 replies; 25+ messages in thread
From: Ian Campbell @ 2014-12-10 13:28 UTC (permalink / raw)
  To: Wei Liu; +Cc: ian.jackson, xen-devel

On Tue, 2014-10-14 at 22:50 +0100, Wei Liu wrote:
> +test_matrix_do_one () {
> +
> +  test_xsm=$(xenbranch_wants_xsm_tests)
> +
> +  # Basic PV Linux test with xl
> +  for xsm in $test_xsm ; do
> +    do_pv_linux_xl_test_one $xsm
> +  done

Perhaps push this down into do_pv_debian_tests which contains this loop
and calls down to do_pv_debian_test_one (similar to the
do_hvm_debian_tests setup).

Should we run an xsm test for libvirt too -- I don't see why not, in
that case do_pv_debian_tests would call do_pv_debian_test_one twice and
pass the toolstack as a parameter.

>  @@ -342,13 +361,13 @@ test_matrix_do_one () {
>      do_hvm_win7_x64_tests
>      do_hvm_rhel6_tests
>  
> -    do_hvm_debian_tests
> +    do_hvm_debian_tests $test_xsm

The parameter here should be quoted (and do_hvm_debian_tests should use
$1), but IMHO it would be better to have do_hvm_debian_tests call
xenbranch_wants_xsm_tests itself and loop on the result.

> diff --git a/mfi-common b/mfi-common
> index e772086..a81dfba 100644
> --- a/mfi-common
> +++ b/mfi-common
> @@ -267,9 +267,16 @@ job_create_test () {
>    local toolstack=$1; shift
>    local xenarch=$1; shift
>    local dom0arch=$1; shift
> +  local xsm=$1; shift

Can you detect enable_xsm=y in the remaining runvars (in $@ at this
point) and enable xsm based on that, instead of requiring an additional
parameter to be added to every caller?

	for rv in $@ ; do
            case $rv in
                enable_xsm=y) xsm_prefix="-xsm";;
            esac
        done

Is one way I'd try.

Ian.

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

* Re: [PATCH OSSTEST v3 07/11] mfi-common: create build-$arch-xsm job
  2014-12-10 13:12   ` Ian Campbell
@ 2014-12-10 13:32     ` Wei Liu
  0 siblings, 0 replies; 25+ messages in thread
From: Wei Liu @ 2014-12-10 13:32 UTC (permalink / raw)
  To: Ian Campbell; +Cc: ian.jackson, Wei Liu, xen-devel

On Wed, Dec 10, 2014 at 01:12:23PM +0000, Ian Campbell wrote:
> On Tue, 2014-10-14 at 22:50 +0100, Wei Liu wrote:
> > Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> > ---
> >  mfi-common |   23 ++++++++++++++++++++++-
> >  1 file changed, 22 insertions(+), 1 deletion(-)
> > 
> > diff --git a/mfi-common b/mfi-common
> > index 5c4f5d5..e772086 100644
> > --- a/mfi-common
> > +++ b/mfi-common
> > @@ -41,6 +41,19 @@ branch_wants_rumpkernel_tests () {
> >    esac
> >  }
> >  
> > +xenbranch_wants_xsm_tests () {
> > +    # Test XSM from 4.5 onwards
> > +    case "$xenbranch" in
> > +    xen-3.*-testing) echo "n";;
> > +    xen-4.0-testing) echo "n";;
> > +    xen-4.1-testing) echo "n";;
> > +    xen-4.2-testing) echo "n";;
> > +    xen-4.3-testing) echo "n";;
> > +    xen-4.4-testing) echo "n";;
> > +    *) echo "n y";
> 
> Did you mean just "y" here, or is something very subtle going on?
> 
> Oh I see, you run over the result of this as a list with for. Sneaky!
> 

Ian J's suggestion.

> I think you should name it something like xenbranch_xsm_variants or
> something else which doesn't make the reader expect it to return a
> boolean.
> 

Ack.

Wei.

> Ian.

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

* Re: [PATCH OSSTEST v3 10/11] ts-xen-install: install Xen with XSM support if requested
  2014-12-10 13:15   ` Ian Campbell
@ 2014-12-10 13:34     ` Wei Liu
  0 siblings, 0 replies; 25+ messages in thread
From: Wei Liu @ 2014-12-10 13:34 UTC (permalink / raw)
  To: Ian Campbell; +Cc: ian.jackson, Wei Liu, xen-devel

On Wed, Dec 10, 2014 at 01:15:13PM +0000, Ian Campbell wrote:
> On Tue, 2014-10-14 at 22:50 +0100, Wei Liu wrote:
> > Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> > ---
> >  ts-xen-install |    4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/ts-xen-install b/ts-xen-install
> > index 4d34d1f..2e2fcbc 100755
> > --- a/ts-xen-install
> > +++ b/ts-xen-install
> > @@ -46,6 +46,8 @@ if (@ARGV and $ARGV[0] eq '--check') {
> >  
> >  our $ho;
> >  
> > +my $enable_xsm = $r{enable_xsm} =~ m/y/ ? 1 : 0;
> > +
> >  my %distpath;
> >  
> >  sub packages () {
> > @@ -171,7 +173,7 @@ sub setupboot () {
> >      }
> >  
> >      my $want_kernver = get_runvar('kernel_ver',$r{'kernbuildjob'});
> > -    debian_boot_setup($ho, $want_kernver, $xenhopt, \%distpath, \@hooks);
> > +    debian_boot_setup($ho, $want_kernver, $enable_xsm, $xenhopt, \%distpath, \@hooks);
> 
> Doesn't this have to be in the same patch as the one which adds the new
> parameter in the function declaration? Or at least that patch needs to
> hardcode a false until now.
> 

Yes, I noticed this after I sent this series.  I will squash this one
into previous commit.

Wei.

> (not sure we care much about bisectability in osstest, Ian?)
> 

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

* Re: [PATCH OSSTEST v3 04/11] overlay: update overlay/etc/grub.d/20_linux_xen
  2014-12-10 12:54   ` Ian Campbell
@ 2014-12-10 13:41     ` Wei Liu
  2014-12-10 13:47       ` Ian Campbell
  0 siblings, 1 reply; 25+ messages in thread
From: Wei Liu @ 2014-12-10 13:41 UTC (permalink / raw)
  To: Ian Campbell; +Cc: ian.jackson, Wei Liu, xen-devel

On Wed, Dec 10, 2014 at 12:54:05PM +0000, Ian Campbell wrote:
> On Tue, 2014-10-14 at 22:50 +0100, Wei Liu wrote:
> > This file was created to work around Debian bug #633127.
> > 
> > According to Debian bug tracker [0], this bug is fixed in Wheezy. As
> > we're now using Wheezy in OSSTest we can safely remove this overlay
> > file.
> > 
> > Also add a note to reference #633127 above grub2 setup function, in case
> > someone trips over #633127.
> > 
> > As we're now using Wheezy in production, update this file to Wheezy's
> > version and take care of Debian bug #690538 and GRUB bug #43420.
> 
> When reference bugs it would be useful to include the bug title here so
> the reader doesn't have to go and look it up.
> 

OK.

> #690538 relates to providing an option to remove the submenus. Please
> can the changelog explain why that is relevant to us.
> 

Because somebody else thought not making submenu optional is a bug. So
do I.

> Did you fix it by removing/reverting the submenu support altogether, as
> opposed to e.g. importing the patch from Eric Fischer in the bug report?
> I don't see stuff which I'd expect if you had applied the patch. I think
> it would be worth spelling out in a bit more detail what the changes
> you've made to the baseline for each bug were.
> 

I fixed this by supplying a 20_linux_xen extracted from wheezy with
submenu generation removed (2 lines). This is how we dealt with other
grub bugs.

> I suppose constructing overlay/etc/grub.d/20_linux_xen from a baseline
> unmodified version (checked in, not retrieved from the host) and a
> mini-patch-series (also checked in) on the fly is over complexifying
> things?
> 

Certainly more complex than a single file solution. At the very least
new infrastructure to apply patches for overlay files is needed.

Wei.

> Ian.

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

* Re: [PATCH OSSTEST v3 04/11] overlay: update overlay/etc/grub.d/20_linux_xen
  2014-12-10 13:41     ` Wei Liu
@ 2014-12-10 13:47       ` Ian Campbell
  2014-12-10 13:50         ` Wei Liu
  0 siblings, 1 reply; 25+ messages in thread
From: Ian Campbell @ 2014-12-10 13:47 UTC (permalink / raw)
  To: Wei Liu; +Cc: ian.jackson, xen-devel

On Wed, 2014-12-10 at 13:41 +0000, Wei Liu wrote:
> On Wed, Dec 10, 2014 at 12:54:05PM +0000, Ian Campbell wrote:
> > #690538 relates to providing an option to remove the submenus. Please
> > can the changelog explain why that is relevant to us.
> > 
> 
> Because somebody else thought not making submenu optional is a bug. So
> do I.

I meant: why is this important to osstest? does using submenus break
something? if so then what? if not then there is no reason to be
diverging from the baseline.
 
> > Did you fix it by removing/reverting the submenu support altogether, as
> > opposed to e.g. importing the patch from Eric Fischer in the bug report?
> > I don't see stuff which I'd expect if you had applied the patch. I think
> > it would be worth spelling out in a bit more detail what the changes
> > you've made to the baseline for each bug were.
> > 
> 
> I fixed this by supplying a 20_linux_xen extracted from wheezy with
> submenu generation removed (2 lines). This is how we dealt with other
> grub bugs.

I think precisely what you've changed from the baseline should be
documented somewhere.

Ian.

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

* Re: [PATCH OSSTEST v3 06/11] ts-xen-build: build with XSM support if requested
  2014-12-10 13:05   ` Ian Campbell
@ 2014-12-10 13:47     ` Wei Liu
  0 siblings, 0 replies; 25+ messages in thread
From: Wei Liu @ 2014-12-10 13:47 UTC (permalink / raw)
  To: Ian Campbell; +Cc: ian.jackson, Wei Liu, xen-devel

On Wed, Dec 10, 2014 at 01:05:22PM +0000, Ian Campbell wrote:
> On Tue, 2014-10-14 at 22:50 +0100, Wei Liu wrote:
> > Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> 
> Looks like Ian J acked v2 in
> <21559.64364.468553.506173@mariner.uk.xensource.com>.
> 
> 
> > ---
> >  ts-xen-build |   12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> > 
> > diff --git a/ts-xen-build b/ts-xen-build
> > index 661f186..390c114 100755
> > --- a/ts-xen-build
> > +++ b/ts-xen-build
> > @@ -27,6 +27,8 @@ tsreadconfig();
> >  selectbuildhost(\@ARGV);
> >  # remaining arguments are passed as targets to "make"
> >  builddirsprops();
> > +
> > +my $enable_xsm = $r{enable_xsm} =~ m/y/ ? 1 : 0;
> 
> Existing boolean runvars (enable_ovmf, enable_xend) appear to use
> true/false (which still need laundering into Perl booleans). Using y/n
> made sense when you were poking it straight into XSM_ENABLE, but if you
> are going to have to translate it there anyway (into $build_xsm) you may
> as well go for consistency.
> 

I tried to be consistent with next path (the "n y" one, eh). I'm OK with
changing them to true, false though.

> >      
> >  sub checkout () {
> >      prepbuilddirs();
> > @@ -34,6 +36,7 @@ sub checkout () {
> >      build_clone($ho, 'xen', $builddir, 'xen');
> >  
> >      my $debug_build = $r{xen_build_debug} || 'y';
> > +    my $build_xsm = $enable_xsm ? 'y' : 'n';
> >  
> >      # Do not set this unless you know what you are doing. This arm
> >      # option makes the build specific to a particular type of
> > @@ -47,6 +50,7 @@ sub checkout () {
> >          cd $builddir/xen
> >  	>.config
> >  	echo >>.config debug=$debug_build
> > +	echo >>.config XSM_ENABLE=$build_xsm
> >  	echo >>.config GIT_HTTP=y
> >  	echo >>.config LIBLEAFDIR_x86_64=lib
> >  	echo >>.config QEMU_REMOTE='$r{tree_qemu}'
> > @@ -114,6 +118,14 @@ END
> >      buildcmd_stamped_logged(9000, 'build', '',<<END,'');
> >              $make_prefix make $makeflags @ARGV
> >  END
> > +
> > +    if ($enable_xsm) {
> > +	my $xen_version = target_cmd_output_root($ho, <<END, 30);
> > +	    cd $builddir/xen
> > +	    $make_prefix make xenversion
> > +END
> > +        store_runvar("flaskpolicy", "xenpolicy-" . $xen_version);
> > +    }
> >  }
> >  
> >  sub collectversions () {
> 

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

* Re: [PATCH OSSTEST v3 04/11] overlay: update overlay/etc/grub.d/20_linux_xen
  2014-12-10 13:47       ` Ian Campbell
@ 2014-12-10 13:50         ` Wei Liu
  2014-12-10 13:52           ` Ian Campbell
  0 siblings, 1 reply; 25+ messages in thread
From: Wei Liu @ 2014-12-10 13:50 UTC (permalink / raw)
  To: Ian Campbell; +Cc: ian.jackson, Wei Liu, xen-devel

On Wed, Dec 10, 2014 at 01:47:06PM +0000, Ian Campbell wrote:
> On Wed, 2014-12-10 at 13:41 +0000, Wei Liu wrote:
> > On Wed, Dec 10, 2014 at 12:54:05PM +0000, Ian Campbell wrote:
> > > #690538 relates to providing an option to remove the submenus. Please
> > > can the changelog explain why that is relevant to us.
> > > 
> > 
> > Because somebody else thought not making submenu optional is a bug. So
> > do I.
> 
> I meant: why is this important to osstest? does using submenus break
> something? if so then what? if not then there is no reason to be
> diverging from the baseline.
>  

Submenu breaks OSSTest's grub menu parser, causing test step to fail.

> > > Did you fix it by removing/reverting the submenu support altogether, as
> > > opposed to e.g. importing the patch from Eric Fischer in the bug report?
> > > I don't see stuff which I'd expect if you had applied the patch. I think
> > > it would be worth spelling out in a bit more detail what the changes
> > > you've made to the baseline for each bug were.
> > > 
> > 
> > I fixed this by supplying a 20_linux_xen extracted from wheezy with
> > submenu generation removed (2 lines). This is how we dealt with other
> > grub bugs.
> 
> I think precisely what you've changed from the baseline should be
> documented somewhere.
> 

OK.

Wei.

> Ian.

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

* Re: [PATCH OSSTEST v3 04/11] overlay: update overlay/etc/grub.d/20_linux_xen
  2014-12-10 13:50         ` Wei Liu
@ 2014-12-10 13:52           ` Ian Campbell
  0 siblings, 0 replies; 25+ messages in thread
From: Ian Campbell @ 2014-12-10 13:52 UTC (permalink / raw)
  To: Wei Liu; +Cc: ian.jackson, xen-devel

On Wed, 2014-12-10 at 13:50 +0000, Wei Liu wrote:
> On Wed, Dec 10, 2014 at 01:47:06PM +0000, Ian Campbell wrote:
> > On Wed, 2014-12-10 at 13:41 +0000, Wei Liu wrote:
> > > On Wed, Dec 10, 2014 at 12:54:05PM +0000, Ian Campbell wrote:
> > > > #690538 relates to providing an option to remove the submenus. Please
> > > > can the changelog explain why that is relevant to us.
> > > > 
> > > 
> > > Because somebody else thought not making submenu optional is a bug. So
> > > do I.
> > 
> > I meant: why is this important to osstest? does using submenus break
> > something? if so then what? if not then there is no reason to be
> > diverging from the baseline.
> >  
> 
> Submenu breaks OSSTest's grub menu parser, causing test step to fail.

Great, that's a good reason to diverge, but please say it somewhere like
in the commit log.

I think the parser should also gain a comment with a reference to either
the bug or this discussion saying that it relies on grub not using
submenus.

Ian.

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

end of thread, other threads:[~2014-12-10 13:52 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-14 21:50 [PATCH OSSTEST v3 00/11] XSM test case for OSSTest Wei Liu
2014-10-14 21:50 ` [PATCH OSSTEST v3 01/11] README: list chiark-utils-bin as requirement Wei Liu
2014-10-14 21:50 ` [PATCH OSSTEST v3 02/11] gitignore: ignore images directory Wei Liu
2014-10-14 21:50 ` [PATCH OSSTEST v3 03/11] ts-debian-install: rename cfg_xend to cfg Wei Liu
2014-12-10 12:44   ` Ian Campbell
2014-10-14 21:50 ` [PATCH OSSTEST v3 04/11] overlay: update overlay/etc/grub.d/20_linux_xen Wei Liu
2014-12-10 12:54   ` Ian Campbell
2014-12-10 13:41     ` Wei Liu
2014-12-10 13:47       ` Ian Campbell
2014-12-10 13:50         ` Wei Liu
2014-12-10 13:52           ` Ian Campbell
2014-10-14 21:50 ` [PATCH OSSTEST v3 05/11] ts-xen-build-prep: install checkpolicy Wei Liu
2014-10-14 21:50 ` [PATCH OSSTEST v3 06/11] ts-xen-build: build with XSM support if requested Wei Liu
2014-12-10 13:05   ` Ian Campbell
2014-12-10 13:47     ` Wei Liu
2014-10-14 21:50 ` [PATCH OSSTEST v3 07/11] mfi-common: create build-$arch-xsm job Wei Liu
2014-12-10 13:12   ` Ian Campbell
2014-12-10 13:32     ` Wei Liu
2014-10-14 21:50 ` [PATCH OSSTEST v3 08/11] Debian.pm: pass in XSM configuration to bootloader setup routines Wei Liu
2014-10-14 21:50 ` [PATCH OSSTEST v3 09/11] Debian.pm: load flask policy in uboot Wei Liu
2014-10-14 21:50 ` [PATCH OSSTEST v3 10/11] ts-xen-install: install Xen with XSM support if requested Wei Liu
2014-12-10 13:15   ` Ian Campbell
2014-12-10 13:34     ` Wei Liu
2014-10-14 21:50 ` [PATCH OSSTEST v3 11/11] mfi-common, make-flight: create XSM test jobs Wei Liu
2014-12-10 13:28   ` 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.