]> xenbits.xensource.com Git - people/royger/osstest.git/log
people/royger/osstest.git
6 years agosg-run-job: Allow flight to specify recipe flag to disable migr tests
Ian Jackson [Mon, 11 Jun 2018 13:09:35 +0000 (14:09 +0100)]
sg-run-job: Allow flight to specify recipe flag to disable migr tests

We want this because there is no sensible way to probe whether a
restricted qemu can cope with save/restore or migration.  So we will
want to disable it in flight construction (depending on Xen version,
eventually).

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agosg-run-job: Provide new recipe-flag facility
Ian Jackson [Tue, 12 Jun 2018 12:17:19 +0000 (13:17 +0100)]
sg-run-job: Provide new recipe-flag facility

Individual recipes can now honour modifications requested by setting
runvars like recipe_<flag>.

No callers yet so no functional change.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoMerge remote-tracking branch 'iwj/master' into wip
Ian Jackson [Tue, 12 Jun 2018 17:52:21 +0000 (18:52 +0100)]
Merge remote-tracking branch 'iwj/master' into wip

6 years agocs-bisection-step: Do explicitly set runvar for suppressed recursion
Ian Jackson [Tue, 12 Jun 2018 15:56:29 +0000 (15:56 +0000)]
cs-bisection-step: Do explicitly set runvar for suppressed recursion

When we detect that we are considering a job which is identically
named to one earlier in the dependency chain, it could happen that the
final referencing runvar in the job at which we break the cycle is
actually to an unqualified job name.

(This cannot happen unless the cycle has more than 2 jobs, and
therefore more than one job name, because otherwise the job we would
be copying would have a self-reference.  So it cannot occur right
now.)

So when breaking the cycle, we should update the job we are building
to refer to the exact flight and job we want it to reuse.

The most convenient way to do this is to reorganise the new recursion
suppression code: we retain the suppressed entries in $subjobs, and
filter them as appropriate.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
6 years agocs-bisection-step: Handle build job chains
Ian Jackson [Tue, 12 Jun 2018 15:22:38 +0000 (15:22 +0000)]
cs-bisection-step: Handle build job chains

cs-bisection-step assumes that every job it will need to create has a
unique name.  Indeed, in general, it is probably not reasonable to
expect it to work if that is not the case.

build-amd64-freebsd needs a previous build-amd64-freebsd.

Currently cs-bisection-step confuses itself into writing a flight
where build-amd64-freebsd uses itself as its freebsdbuildjob.
This naturally does not work very well.

I think the right approach is for cs-bisection-step to spot when it
its recursion through the jobs, via *job runvars, would descend into a
job name which it was already encoutered earlier in the dependency
chain, and, when that occurs, to simply skip regenerating that deeper
copy of the job.

That is achieved here by filtering the subjob out of the list, before
we go looking for jobs to reuse.  As a result, not only will no new
job be created, but the original deeper job will be reused because the
runvar value will not be updated.

FTR, the circular dependency produces this error from sg-execute-flight:

  wait for process failed: no children
      while executing
  "wait -nohang"
      (procedure "main_iteration" line 14)
      invoked from within
  "main_iteration"
      (procedure "main" line 8)
      invoked from within
  "main"
      (file "./sg-execute-flight" line 238)

This is because sg-execute-flight's algorithm assumes that if there
are no jobs running there must be some job whose dependencies are done.
That is true if the job graph has no cycles.

Improving the error message from sg-execute-flight is left as an
exercise for the future.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
6 years agocs-bisection-step: Refactor $subjobs calculations a bit
Ian Jackson [Tue, 12 Jun 2018 15:20:09 +0000 (15:20 +0000)]
cs-bisection-step: Refactor $subjobs calculations a bit

Parse the runvar name earlier, adding job and orgflight members to the
row hashes we got from the db.  This slightly unifies the call to
preparejob, but more relevantly, makes the effective job and flight
information available earlier.  That will be useful in a moment.

No functional change.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
6 years agocs-bisection-step: Improve a message
Ian Jackson [Tue, 12 Jun 2018 15:18:27 +0000 (15:18 +0000)]
cs-bisection-step: Improve a message

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
6 years agodb_retry: Honour new OSSTEST_DB_ALWAYS_ABORT variable
Ian Jackson [Tue, 12 Jun 2018 15:18:00 +0000 (15:18 +0000)]
db_retry: Honour new OSSTEST_DB_ALWAYS_ABORT variable

This is useful for debugging.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
6 years agoseabios: Switch from git:// to https://
Ian Jackson [Tue, 12 Jun 2018 11:01:17 +0000 (12:01 +0100)]
seabios: Switch from git:// to https://

Currently git.seabios.org is down.  https is better anyway.

CC: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoTestSupport: guest_var_boolean: Understand `y' and `1' as well
Ian Jackson [Mon, 11 Jun 2018 13:06:16 +0000 (14:06 +0100)]
TestSupport: guest_var_boolean: Understand `y' and `1' as well

Previously this would treat `y' and `1' as false, which is very
confusing.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoTestSupport: substeps: work if steps in ad-hoc tests take >1s
Ian Jackson [Wed, 30 May 2018 15:50:24 +0000 (16:50 +0100)]
TestSupport: substeps: work if steps in ad-hoc tests take >1s

When running by hand, OSSTEST_TESTID is not set.  We provide a value
with the time and the pid in it, so that rerunning the script by hand
works, even though in production this would result in multiple
identically-named substeps.

But we need to fix this value for the duration of the script.
Otherwise when it calls substep_finish, if the time has moved on, it
computes a different OSSTEST_TESTID and therefore a different substep
name, and then the substep machinery smells a rat and bombs out.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agosg-run-job: add some comments about guest state
Ian Jackson [Mon, 11 Jun 2018 13:11:16 +0000 (14:11 +0100)]
sg-run-job: add some comments about guest state

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agots-xen-install: DebianExtraPackages: call apt-get -f install
Ian Jackson [Tue, 12 Jun 2018 11:26:29 +0000 (12:26 +0100)]
ts-xen-install: DebianExtraPackages: call apt-get -f install

Currently this is just a precaution.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoconfig: ExtraDebs: replace with DebianExtraPackages
Ian Jackson [Tue, 12 Jun 2018 11:24:39 +0000 (12:24 +0100)]
config: ExtraDebs: replace with DebianExtraPackages

`ExtraDebs' is a silly name.  Also the semantics are rather
inflexible; we might want to install specific packages rather than
the contents of a whole directory.

And, document it.

This variable has only just been introduced, so hopefully it is OK to
replace and rename it now without causing too much disruption.

(osstest's own production runs each use their own copy of the config,
so they will be fine.  It's just downstreams, or users whose config is
set up to use one not in their own tree, who will be affected.)

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
------------------------------

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoResourceCondition: Provide PropEq
Ian Jackson [Mon, 11 Jun 2018 16:45:20 +0000 (17:45 +0100)]
ResourceCondition: Provide PropEq

This can be used, for example, with the following entry in a hostflags
runvar:
   PropEq:Firmware:uefi

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoResourceCondition: Break out PropCompareBase
Ian Jackson [Mon, 11 Jun 2018 16:45:08 +0000 (17:45 +0100)]
ResourceCondition: Break out PropCompareBase

Make a base class so we can easily invent other kinds of resource
property condition.  The child is responsible only for stringification
and the actual comparison.

These classes does not need Exporter, so drop all that.  Use `use
parent' to import the base class.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoTestSupport: Break out target_extract_distpart
Ian Jackson [Wed, 2 May 2018 14:54:45 +0000 (15:54 +0100)]
TestSupport: Break out target_extract_distpart

No functional change.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agosg-run-job: Allow suppression of consequences of per-host-ts fail
Ian Jackson [Wed, 2 May 2018 15:20:39 +0000 (16:20 +0100)]
sg-run-job: Allow suppression of consequences of per-host-ts fail

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agocs-adjust-flight: Allow adjusting play flights after start
Ian Jackson [Mon, 14 May 2018 15:29:28 +0000 (16:29 +0100)]
cs-adjust-flight: Allow adjusting play flights after start

Specifically, rather than simply bombing out, if the flight already
has steps, we call dbfl_check again with an empty list of OK
blessings.  dbfl_check will then bomb out, unless the flight's
blessing or intended blessing is `play'.  If it doesn't bomb out, we
print a message.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agots-xen-install: Drop obsolete --check and $checkmode
Ian Jackson [Wed, 2 May 2018 15:00:26 +0000 (16:00 +0100)]
ts-xen-install: Drop obsolete --check and $checkmode

Since 5edec3222ff14b8200d5b41ed9af3c8d04c27314
  ts-xen-build-check: reimplementation ...
in 2011 we have a fully general version, and the --check option
is no longer used.

And since 467d6239daa352483ec8fef003bd4fc723702b77
  pygrub: guest kernel install: move target_extract_jobdist_path into Osstest
also in 2011, --check has not worked properly, because that
commit moved the relevant code somewhere where $checkmode was
not available and simply dropped the check.

So remove the vestigial code in ts-xen-build.  As for @ARGV, we simply
die if we see something that looks like an option.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agosg-report-flight: When justifying, disregard out-of-flight build jobs
Ian Jackson [Thu, 7 Jun 2018 11:31:20 +0000 (11:31 +0000)]
sg-report-flight: When justifying, disregard out-of-flight build jobs

When we are looking for a previous job which justifies a failure, we
need to check that the putative justifying job used the same revision
as the baseline we are judging against.  So we investigate the build
jobs referred to by that putative justifying job.

However, there are cases where this is not appropriate.  Currently,
the most obvious example is freebsdbuildjob.

The freebsd arrangements involve referencing an anointed
freebsdbuildjob, which was in turn built from a previous
freebsdbuildjob, eventually terminating in some kind of ad-hoc job.
We would not want to investigate all of those even if we were trying
to analyse a flight on a freebsd branch.

The real thing we want to check that the build jobs *in the same
flight as the justifying job* used the right revisions.  Build jobs
from other flights were either (i) build jobs for components not being
targed for testing by this branch, but which were necessary for the
justifying job and for which we decided to reuse another build job
(in which case we don't really care what versions they used, even
if underlying it all there might be a different version of a tree
we are actually interested in (ii) the kind of continuous update
thing seen with freebsdbuildjob.

There is no corresponding issue with cs-bisection-step, because it
only looks for the *buildjob runvars of the test it is actually
interested in, and does not recurse.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
6 years agomfi-*: Set appropriate PropMinVer:XenMin: hostflags, to honour XenMin property
Ian Jackson [Wed, 6 Jun 2018 10:46:08 +0000 (11:46 +0100)]
mfi-*: Set appropriate PropMinVer:XenMin: hostflags, to honour XenMin property

* In test_matrix_iterate, where most_hostflags is set, include a
  PropMinVer:XenMin: hostflag.  This is derived from $xenbranch.
  When $xenbranch is xen-unstable, don't add that hostflag.

* But this is wrong for the migrate upgrade tests, which use both this
  and the previous version of Xen.  It is sufficient to check the
  previous version, so we strip out the existing PropMinVer if there
  is one.  We (ab)use select_prevxenbranch to calculate the old Xen
  branch name (version).

The motivation right now for this is that Xen 4.10 and earlier do not
boot xen.gz on UEFI.  In earlier versions, one has to chainload
xen.efi.  We don't support that in osstest right now on x86 (and it
probably isn't worth fixing that logic).

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agomfi-*: Provide hostflags_strip
Ian Jackson [Wed, 6 Jun 2018 10:45:05 +0000 (11:45 +0100)]
mfi-*: Provide hostflags_strip

This utility function saves us having to fragment the *_hostflags
variables any further when adding special cases.  A particular special
case can strip out things it doesn't like.

No callers yet.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agomfi-*: Reformat/refactor migrupgrade test generation slightly
Ian Jackson [Wed, 6 Jun 2018 10:43:11 +0000 (11:43 +0100)]
mfi-*: Reformat/refactor migrupgrade test generation slightly

* Introduce a variable "$hf" containing the hostflags.
* Properly indent the job_create_test call.

No functional change.  This will make the substantive change easier to
read.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agomg-repro-setup: Print flight number as soon as we have it
Ian Jackson [Tue, 29 May 2018 11:12:23 +0000 (12:12 +0100)]
mg-repro-setup: Print flight number as soon as we have it

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoOsstest/Debian: bootloader: Fix grub parsing for XSM and multiboot1
Ian Jackson [Tue, 29 May 2018 11:09:33 +0000 (11:09 +0000)]
Osstest/Debian: bootloader: Fix grub parsing for XSM and multiboot1

bca3edb4ac0d670098b7618cbaccf7577aca267a
  "Osstest/Debian: bootloader: Understand multiboot2 syntax"
was supposed to change `multiboot' and `module' in the grub2 menu
parser to `multiboot2?' and `module2?'.  But the entry for matching
XSM policy file lines was missing the ?, which broke all multiboot1
XSM tests.  Fix this.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
6 years agoap-common: Switch to Linux 4.14 by default on X86.
Ian Jackson [Fri, 25 May 2018 14:41:54 +0000 (15:41 +0100)]
ap-common: Switch to Linux 4.14 by default on X86.

Linux 4.9 is getting a bit long in the tooth.  4.14 is an LTS branch
and the osstest-tested version seems reasonably good.  I ran a special
report[1] to see what to expect and it reported no regressions.

Accordingly I am going to switch to using Linux 4.14 by default for
most X86 runs in osstest.  ARM tests are not affected at this time;
they use their own linux-arm-xen branch which is updated by the Xen
ARM maintainers.

[1] ./sg-report-flight --that-linux=6ba89b52ba6916bc7a3d390d70951e992c0ca39e --this-linux=d88700f79448fc8f03617d4f1929c39676f8d1e4 --branches-also=linux-4.9,linux-4.14,linux-arm-xen 122974 |less

CC: Boris Ostrovsky <boris.ostrovsky@oracle.com>
CC: Juergen Gross <jgross@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Wei Liu <wei.liu2@citrix.com>
CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Julien Grall <julien.grall@linaro.org>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agofreebsd: Expect a freebsd-10 hostflag for freebsd tests
Ian Jackson [Fri, 18 May 2018 15:32:47 +0000 (16:32 +0100)]
freebsd: Expect a freebsd-10 hostflag for freebsd tests

This will allow us to exclude certain hosts.  For example, right now,
we have no support for booting FreeBSD on UEFI hosts.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
6 years agots-xen-install: Install additional .debs for UEFI
Ian Jackson [Thu, 17 May 2018 17:50:44 +0000 (18:50 +0100)]
ts-xen-install: Install additional .debs for UEFI

grub2 from stretch cannot boot Xen under UEFI.  But that from buster
can, and it can be simply installed, even on jessie.  So do that.

I have copied the binaries for 2.02+dfsg1-4 to
images/grub2-uefi-amd64-2018-04-01 in Massachusetts.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years ago20_linux_xen: Use multiboot2 when Xen supports it
Ian Jackson [Thu, 17 May 2018 17:33:15 +0000 (18:33 +0100)]
20_linux_xen: Use multiboot2 when Xen supports it

This is necessary for UEFI.  The patch is similar in spirit to the
upstream commit
  http://git.savannah.gnu.org/cgit/grub.git/commit/?id=b4d709b6ee789cdaf3fa7a80fd90c721a16f48c2

A backport of that commit to Debian buster was requested in
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=898947
so hopefully this will not be necessary after stretch.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agogrub: Move 20_linux_xen to suite-specific overlays
Ian Jackson [Thu, 17 May 2018 14:33:59 +0000 (15:33 +0100)]
grub: Move 20_linux_xen to suite-specific overlays

stretch still needs some of this, in particular the XSM changes.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoDebian.pm: debian_overlays: Honour suite-specific overlays
Ian Jackson [Thu, 17 May 2018 14:26:37 +0000 (15:26 +0100)]
Debian.pm: debian_overlays: Honour suite-specific overlays

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoDebian.pm: debian_overlays: Allow local overlay to override supplied one
Ian Jackson [Thu, 17 May 2018 14:18:42 +0000 (15:18 +0100)]
Debian.pm: debian_overlays: Allow local overlay to override supplied one

I think, no change with any reasonable configs.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoDebian.pm: debian_overlays: Internal default for tarball name
Ian Jackson [Thu, 17 May 2018 14:18:01 +0000 (15:18 +0100)]
Debian.pm: debian_overlays: Internal default for tarball name

No functional change.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoDebian.pm: debian_overlays: Do not make $func callback for nonexistent dirs
Ian Jackson [Thu, 17 May 2018 14:16:48 +0000 (15:16 +0100)]
Debian.pm: debian_overlays: Do not make $func callback for nonexistent dirs

This means that it is now OK not to have an `overlay-local'.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoOsstest/Debian: bootloader: Understand multiboot2 syntax
Ian Jackson [Fri, 18 May 2018 15:40:09 +0000 (16:40 +0100)]
Osstest/Debian: bootloader: Understand multiboot2 syntax

We are going to sometimes switch to the multiboot2 protocol, which has
different directives with very similar effect.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoOsstest/Debian: bootloader: Ignore `.config' files
Ian Jackson [Fri, 18 May 2018 15:38:31 +0000 (16:38 +0100)]
Osstest/Debian: bootloader: Ignore `.config' files

Some versions of the bootloader scripts will make menu entries for
`.config' files, containing the hypervisor config.  These should be
ignored.

(It is not clear to me, given our 20_linux_xen hack, whether this is
in fact an upstream bug, or a bug in 20_linux_xen.)

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoDebian: Pass $ho to debian_overlays
Ian Jackson [Thu, 17 May 2018 14:11:07 +0000 (15:11 +0100)]
Debian: Pass $ho to debian_overlays

No functional change.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agomfi-common: Fall back to anointed builds in Executive mode
Ian Jackson [Thu, 17 May 2018 11:01:05 +0000 (12:01 +0100)]
mfi-common: Fall back to anointed builds in Executive mode

Previously, `make-*-flight' would not work unless FREEBSD_*_BUILDJOB
was set.  Now we use the anointed values if we can find them.

If we can't, mg-anoint retrieve will print a warning.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
6 years agomfi-common: set_freebsd_runvars: Never set freebsd_distpath to `/amd64' etc.
Ian Jackson [Thu, 17 May 2018 10:54:48 +0000 (11:54 +0100)]
mfi-common: set_freebsd_runvars: Never set freebsd_distpath to `/amd64' etc.

Logically, the final branch of the if should be qualified with a check
for the emptiness of FreeBSDDist.  This is awkward in the current
structure, since we really want to do the distpath lookup only if
needed.  (This is not very important right now, but we are about to
add another case which will do a more-likely-to-bomb-out and
more-likely-to-block-on-the-db lookup.)  So refactor into `return'
style.  This lets us introduce local variables in each branch.

Now gate the final branch appropriately.  The overall result is that
if no useful FreeBSD build is found, we simply do not set the
freebsd_* runvars, rather than setting them to wrong values (eg,
`freebsd_distpath=/i386'.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
6 years agomg-anoint: Support mg-anoint retrieve --tolerate-unprepared
Ian Jackson [Thu, 17 May 2018 11:05:48 +0000 (12:05 +0100)]
mg-anoint: Support mg-anoint retrieve --tolerate-unprepared

make-*-flight is going to want this.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
6 years agomg-anoint: Make readonly operations "work" in standalone mode
Ian Jackson [Thu, 17 May 2018 10:51:35 +0000 (11:51 +0100)]
mg-anoint: Make readonly operations "work" in standalone mode

This makes `mg-anoint' in standalone mode a view onto an empty set of
anointments.  So now it becomes ok to call mg-anoint in make-*-flight.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
6 years agoPerl @INC path: fix a few more scripts to use BEGIN
Ian Jackson [Thu, 17 May 2018 10:37:40 +0000 (11:37 +0100)]
Perl @INC path: fix a few more scripts to use BEGIN

Three more files which missed out on
  dea987c5ab11 "PERLLIB, @INC: Use BEGIN { }"

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
6 years agoREADME.dev: Make example commisioning runes use $hn variable
Ian Jackson [Thu, 17 May 2018 10:23:32 +0000 (11:23 +0100)]
README.dev: Make example commisioning runes use $hn variable

This makes them better for cutting-and-pasting.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoREADME.dev: Discuss setting Firmware for UEFI machines
Ian Jackson [Thu, 17 May 2018 10:22:59 +0000 (11:22 +0100)]
README.dev: Discuss setting Firmware for UEFI machines

This must occur before mknetbootdir, or mknetbootdir does not set
things up for UEFI booting.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoREADME.dev: Fix a typo
Ian Jackson [Thu, 17 May 2018 10:22:24 +0000 (11:22 +0100)]
README.dev: Fix a typo

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoOsstest/Debian: Use X64 bootloader for UEFI i386
Ian Jackson [Fri, 18 May 2018 15:27:43 +0000 (16:27 +0100)]
Osstest/Debian: Use X64 bootloader for UEFI i386

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agoOsstest/Debian: preseed: Force UEFI install regardless
Ian Jackson [Wed, 16 May 2018 16:04:43 +0000 (16:04 +0000)]
Osstest/Debian: preseed: Force UEFI install regardless

This suppresses:

   Partition disks
   ---------------

   This machine's firmware has started the installer in UEFI mode but it looks
   like there may be existing operating systems already installed using "BIOS
   compatibility mode". If you continue to install Debian in UEFI mode, it might
   be difficult to reboot the machine into any BIOS-mode operating systems later.

   If you wish to install in UEFI mode and don't care about keeping the ability to
   boot one of the existing systems, you have the option to force that here. If
   you wish to keep the option to boot an existing operating system, you should
   choose NOT to force UEFI installation here.
   Force UEFI installation?
     1: Yes      2: No
     Prompt: '?' for help>

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
6 years agoOsstest/TestSupport: Use right arch for UEFI grub setup
Ian Jackson [Wed, 16 May 2018 16:03:32 +0000 (16:03 +0000)]
Osstest/TestSupport: Use right arch for UEFI grub setup

This table was erroneously never used.  Also, the value for arm64 is
wrong: it should be AA64.  We fix the table value, and substitute it
in, for no overall change on amd64.  On other arches we now do not
hardcode the wrong value.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
CC: Julien Grall <julien.grall@linaro.org>
6 years agoOsstest/Debian.pm: Remove a spurious `my $kernel'.
Ian Jackson [Thu, 17 May 2018 18:12:43 +0000 (18:12 +0000)]
Osstest/Debian.pm: Remove a spurious `my $kernel'.

This variable is not used, and is shadowed by the one which is
initialised a few lines later.  This produces a warning.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
6 years agocr-daily-branch: When reporting, always compare to real flights
Ian Jackson [Mon, 21 May 2018 14:20:20 +0000 (15:20 +0100)]
cr-daily-branch: When reporting, always compare to real flights

When we're running sg-report-flight, at the end of the flight, we
shouldn't try to compare it to play flights, but real ones (if any).
play flights might contain junk (which might even cause
sg-report-flight to crash).

CC: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agots-xen-build: run `make build' before `make', by default
Ian Jackson [Wed, 9 May 2018 15:53:57 +0000 (16:53 +0100)]
ts-xen-build: run `make build' before `make', by default

The Xen build system has some quirks.  One of them is that `make' is a
version of `make dist' which is a version of `make install', which
runs `make install' in each subdir - but there are subdirs where `make
install' is a no-op which does not depend on `make build'.  Also,
`make all' does not do `make build'.  Additionally, the default target
differs in the toplevel, compared to subdirectories.  Perhaps this is
all mistaken, but it's not something we can correct in stable
branches.

The result is that we might miss bugs where `make build' fails; and in
particular, bugs where simply `make' may fail in a subdirectory.  Eg,
the recently discovered build failures in the emulator tests, due to
backported changes, which occur with `make -C tools' but not with
`make all' or `make tools'.

Detect these by running `make build' before `make' (unless our caller
has specified some other build arguments).  In the future perhaps we
should do tools and hypervisor builds entirely separately.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
v2: Use `make build' instead of `make all' since the former actually
    detects the bug in a buggy unpatched Xen 4.8.  Fix a syntax
    error.  Improve the commit message.

6 years agoms-planner: Fix a message to have the right quoting
Ian Jackson [Fri, 18 May 2018 16:05:24 +0000 (17:05 +0100)]
ms-planner: Fix a message to have the right quoting

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
6 years agomg-adjust-flight-makexrefs: Repair after "Use ^ for excluding jobs"
Ian Jackson [Fri, 18 May 2018 13:42:13 +0000 (13:42 +0000)]
mg-adjust-flight-makexrefs: Repair after "Use ^ for excluding jobs"

In
  3b433e39382b13dda5d25aebecaf4864ef69c8d4
  "mg-adjust-flight-makexrefs: Use ^ for excluding jobs, not !"
a shell glob pattern was changed:
  -    !*)    ifmatch=$tokeep; action=$todelete ; glob="${glob#!}" ;;
  +    [!^]*) ifmatch=$tokeep; action=$todelete ; glob="${glob#?}" ;;

But in globbing, ! inside [ ] is a character class complement, not a
literal.  The result is that mg-adjust-flight-makexrefs would
generally replace jobs willy-nilly.

Fix this by using two separate glob patterns, and no character class.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
7 years agomg-schema-test-database: New --max-flight option
Ian Jackson [Mon, 3 Jul 2017 16:53:11 +0000 (17:53 +0100)]
mg-schema-test-database: New --max-flight option

This can be useful when testing things which involve old data, rather
than things which just involve new data.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agomg-schema-test-database: Apply updates, regardless of compatibility
Ian Jackson [Mon, 3 Jul 2017 16:53:26 +0000 (17:53 +0100)]
mg-schema-test-database: Apply updates, regardless of compatibility

The test database should be just like the real one, even if the schema
compatibility looks wrong.  So pass -ff to mg-schema-update.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agostep logfiles: Rely on new logfile column
Ian Jackson [Thu, 29 Jun 2017 16:13:50 +0000 (17:13 +0100)]
step logfiles: Rely on new logfile column

These are the three places which read logfile from the db, but had a
fallback to a computation involving stepno and step.

But, after steps-logfile-constraint, the logfile column is NOT NULL
(and populated with computed default data if need be) so this is not
needed any more

This is part of a "Populate-then-rely" schema change, as
described in schema/README.updates.  Specifically, the step:
10. Optionally commit: code which relies on new column, and does not
   necessarily tolerate NULL/DEFAULT; changing `constraint' to Needed.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agomg-schema-update: print timestamp when Applying
Ian Jackson [Fri, 4 May 2018 14:30:21 +0000 (14:30 +0000)]
mg-schema-update: print timestamp when Applying

This makes it easier to see the retry rate etc. if a schema update
needs to be retried due to db conflicts.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
7 years agoStandalone HostFlags: Use ^ for negation, not !
Ian Jackson [Thu, 3 May 2018 14:46:45 +0000 (15:46 +0100)]
Standalone HostFlags: Use ^ for negation, not !

The ! here doesn't cause any shell rune trouble in, but we want to
move to using ^ everywhere for consistency.

We still honour ! to support old configs.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agomg-adjust-flight-makexrefs: Use ^ for excluding jobs, not !
Ian Jackson [Thu, 3 May 2018 14:41:26 +0000 (15:41 +0100)]
mg-adjust-flight-makexrefs: Use ^ for excluding jobs, not !

The ! here doesn't cause shell rune trouble in practice very much, but
we want to move to using ^ everywhere for consistency.

We still honour !.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agomg-hosts: Use ^ for flag negation, not !
Ian Jackson [Thu, 3 May 2018 14:40:31 +0000 (15:40 +0100)]
mg-hosts: Use ^ for flag negation, not !

We still honour (and document) !

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agomg-allocate: Use ^ for deallocation, not !
Ian Jackson [Thu, 3 May 2018 14:28:59 +0000 (15:28 +0100)]
mg-allocate: Use ^ for deallocation, not !

! is annoying because some shells enable !-history expantion by
default even though few users have any idea about it.  In general users
are confused by the error message and do not know what to do next.

We still honour ! for the benefit of old wrapper scripts, finger
macros, etc.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agosg-report-flight: Provide correct links to test history pages
Ian Jackson [Fri, 27 Apr 2018 14:12:47 +0000 (15:12 +0100)]
sg-report-flight: Provide correct links to test history pages

The files are actually called `ALL.html' and `<branch>.html'.  See the
assignments to $html_file in sg-report-job-history near l.251.

I think this may have previously worked in Massachusetts (prior to the
recent upgrades) due to content negotiation, but this should not be
relied on.

Reported-by: Julien Grall <julien.grall@linaro.org>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agoproduction-config: Use something outside ~osstest/.ssh for TestHostKeypairPath
Ian Jackson [Fri, 27 Apr 2018 13:43:56 +0000 (14:43 +0100)]
production-config: Use something outside ~osstest/.ssh for TestHostKeypairPath

ansible nowadays chmods ~/.ssh to 700 for every user whose
authorized_keys it touches.  This includes osstest@osstest.

The result is that other users on osstest.test-lab cannot access this
file.  I have cp -a'd the keys, which are a piece of static
configuration we don't expect to change often, to a different
directory which will not be attacked by ansible.  Refer to them there.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agoproduction-config: Get ssh public keys from file where ansible will write them
Ian Jackson [Fri, 27 Apr 2018 13:38:36 +0000 (14:38 +0100)]
production-config: Get ssh public keys from file where ansible will write them

We had a hardcoded set of public keys ssh in production-config.  This
is not really sensible, and it causes annoyance for new users.

Instead use a file which will be generated by ansible.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agocr-for-branches: Add linux-4.14
Ian Jackson [Tue, 24 Apr 2018 11:19:04 +0000 (12:19 +0100)]
cr-for-branches: Add linux-4.14

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agodb schema: Make the testid column NOT NLLL
Ian Jackson [Mon, 3 Jul 2017 16:54:19 +0000 (17:54 +0100)]
db schema: Make the testid column NOT NLLL

We have to fix some old data.  We insist that the old data is indeed
old (more than 5 years old) and not part of proper flights (ie,
blessed "play" or "crashed" or "unknown").

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agoms-planner*: Improve debugging a bit
Ian Jackson [Fri, 13 Apr 2018 13:20:13 +0000 (14:20 +0100)]
ms-planner*: Improve debugging a bit

* Use confess a few times instead of die
* Fix failure of ms-planner-debug to DTRT

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agoMerge remote-tracking branch 'cam-daemons/master' into wip
Ian Jackson [Mon, 23 Apr 2018 14:49:22 +0000 (15:49 +0100)]
Merge remote-tracking branch 'cam-daemons/master' into wip

7 years agoproduction-config-cambridge: Drop all arm64 tests as we have no such hardware
Ian Jackson [Tue, 10 Apr 2018 11:00:16 +0000 (12:00 +0100)]
production-config-cambridge: Drop all arm64 tests as we have no such hardware

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agomfi-common: Honour BuildArches and TestArches config settings
Ian Jackson [Mon, 9 Apr 2018 15:36:31 +0000 (16:36 +0100)]
mfi-common: Honour BuildArches and TestArches config settings

These settings are currently not provided, and the defaults are
unchanged, so no functional change.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agoproduction-config-cambridge: Update TftpDiVersion with kernel NUMA bugfix
Ian Jackson [Mon, 9 Apr 2018 15:05:31 +0000 (16:05 +0100)]
production-config-cambridge: Update TftpDiVersion with kernel NUMA bugfix

http_proxy=http://localhost:3128/ OSSTEST_SPECIALKERNELDEB_jessie_amd64=$PWD/linux-image-3.16.0-4-amd64_3.16.51-3~a.test_amd64.deb ./mg-debian-installer-update-all

See 5fc9697df33a "Update jessie amd64 kernel for NUMA bugfix".

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agoemail output: Add MIME headers
Ian Jackson [Thu, 5 Apr 2018 14:40:00 +0000 (15:40 +0100)]
email output: Add MIME headers

We universally use UTF-8 in git commit messages and other kinds of
messages.  The RFC-*822 default is us-ascii.  Fix this by providing a
set of MIME headers.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agocr-ensure-disk-space: Actually quit before taking lock if all is well
Ian Jackson [Thu, 5 Apr 2018 14:38:39 +0000 (15:38 +0100)]
cr-ensure-disk-space: Actually quit before taking lock if all is well

5d2466dc0f26 "cr-ensure-disk-space: Correct stdout output" was
supposed to change an `exit 0' into a `quit_ok' but erroneously
changed it into `check_space'.  Fix this.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agomake-flight: Run some shadow paging tests (`hap=false')
Ian Jackson [Thu, 5 Apr 2018 13:01:19 +0000 (14:01 +0100)]
make-flight: Run some shadow paging tests (`hap=false')

Add four tests to most flights:

    test-amd64-amd64-xl-shadow
    test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow
    test-amd64-i386-xl-shadow
    test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow

These are the same as the corresponding ones without -shadow, except
that they set xen_boot_append to `hap=false', so that that will be
passed to the hypervisor to force shadow paging.

CC: Jan Beulich <jbeulich@suse.com>
CC: George Dunlap <george.dunlap@citrix.com>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Partially-Reviewed-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agomake-flight: do_hvm_debian_test_one: new testname_sfx and testvars args
Ian Jackson [Thu, 5 Apr 2018 13:00:32 +0000 (14:00 +0100)]
make-flight: do_hvm_debian_test_one: new testname_sfx and testvars args

Currently no callers pass these, so no functional change.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agoadhoc-revtuple-generator: Recognise http://example.net/example.git/ as git
Ian Jackson [Thu, 5 Apr 2018 12:24:24 +0000 (13:24 +0100)]
adhoc-revtuple-generator: Recognise http://example.net/example.git/ as git

In some circumstances the trailing slash appears, in a way that is
outside our control.  Eg some people with git submodules.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agocrontab-cambridge: Remove departed employee
Ian Jackson [Wed, 4 Apr 2018 14:17:28 +0000 (15:17 +0100)]
crontab-cambridge: Remove departed employee

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agocrontabs: Add warning not to just "crontab -e"
Ian Jackson [Wed, 4 Apr 2018 14:16:26 +0000 (15:16 +0100)]
crontabs: Add warning not to just "crontab -e"

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agoREADME.dev: Say to use mg-force-push for force pushes
Ian Jackson [Tue, 27 Mar 2018 15:00:17 +0000 (16:00 +0100)]
README.dev: Say to use mg-force-push for force pushes

Reported-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
7 years agots-xen-install: Add async-show-all to hypervisor options, globally
Ian Jackson [Tue, 6 Mar 2018 11:00:03 +0000 (11:00 +0000)]
ts-xen-install: Add async-show-all to hypervisor options, globally

This will help produce better debugging

CC: Jan Beulich <JBeulich@suse.com>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agorumpkernel: clone from github rather than the official URL
Ian Jackson [Mon, 5 Mar 2018 15:48:57 +0000 (15:48 +0000)]
rumpkernel: clone from github rather than the official URL

Because, on wheezy:

  $ GIT_SSL_NO_VERIFY=1 HOME=/ git clone http://repo.rumpkernel.org/rumprun
  Cloning into 'rumprun'...
  error: RPC failed; result=22, HTTP code = 501
  fatal: The remote end hung up unexpectedly
  $

strace shows a baroque sequence of redirects etc. involving servers
from rumpkernel.org, github.com, and some kind of gandi.net CDN.

On jessie it seems to just work.  This commit should therefore be
reverted at some point, when all the instances are running jessie or
later.  (Right now the VMs in the Mass colo are mostly wheezy.)

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agopv-in-pvh: add a pv shim test
Roger Pau Monne [Fri, 16 Feb 2018 10:37:40 +0000 (10:37 +0000)]
pv-in-pvh: add a pv shim test

The new shim tests uses the same approach as the PVH one, but doesn't
differentiate between AMD and Intel.

This is the (trimmed) diff of the output from mg-show-flight-runvars:

+test-amd64-amd64-xl-pvshim    all_host_di_version    2017-12-14
+test-amd64-i386-xl-pvshim     all_host_di_version    2017-12-14
+test-amd64-amd64-xl-pvshim    all_host_suite         jessie
+test-amd64-i386-xl-pvshim     all_host_suite         jessie
+test-amd64-amd64-xl-pvshim    all_hostflags          arch-amd64,arch-xen-amd64,suite-jessie,purpose-test
+test-amd64-i386-xl-pvshim     all_hostflags          arch-i386,arch-xen-amd64,suite-jessie,purpose-test
+test-amd64-amd64-xl-pvshim    arch                   amd64
+test-amd64-i386-xl-pvshim     arch                   i386
+test-amd64-amd64-xl-pvshim    buildjob               build-amd64
+test-amd64-i386-xl-pvshim     buildjob               build-i386
+test-amd64-amd64-xl-pvshim    debian_arch            amd64
+test-amd64-i386-xl-pvshim     debian_arch            i386
+test-amd64-amd64-xl-pvshim    debian_kernkind        pvops
+test-amd64-i386-xl-pvshim     debian_kernkind        pvops
+test-amd64-amd64-xl-pvshim    debian_shim            1
+test-amd64-i386-xl-pvshim     debian_shim            1
+test-amd64-amd64-xl-pvshim    debian_suite           jessie
+test-amd64-i386-xl-pvshim     debian_suite           jessie
+test-amd64-amd64-xl-pvshim    kernbuildjob           build-amd64-pvops
+test-amd64-i386-xl-pvshim     kernbuildjob           build-i386-pvops
+test-amd64-amd64-xl-pvshim    kernkind               pvops
+test-amd64-i386-xl-pvshim     kernkind               pvops
+test-amd64-amd64-xl-pvshim    toolstack              xl
+test-amd64-i386-xl-pvshim     toolstack              xl
+test-amd64-amd64-xl-pvshim    xenbuildjob            build-amd64
+test-amd64-i386-xl-pvshim     xenbuildjob            build-amd64

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agosg-report-host-history: Multiply size of reported history by 10
Ian Jackson [Wed, 31 Jan 2018 11:18:55 +0000 (11:18 +0000)]
sg-report-host-history: Multiply size of reported history by 10

Right now,
  http://logs.test-lab.xenproject.org/osstest/results/host/laxton1.html
contains ~200 jobs as expected, but that covers only 4 days.  We
obviously would like more like a month.

The effect ought to be some more db work, but not worse concurrency.

CC: Julien Grall <julien.grall@linaro.org>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agodaily-cron-email-*: Replace lists.xensource.com with lists.xenproject.org
Ian Jackson [Mon, 29 Jan 2018 17:27:18 +0000 (17:27 +0000)]
daily-cron-email-*: Replace lists.xensource.com with lists.xenproject.org

The .xensource.com domain is quite deprecated now.

Reported-by: Doug Goldstein <cardoe@cardoe.com>
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agomg-hosts: Call db_readonly_report inside, not outside, db_retry
Ian Jackson [Mon, 29 Jan 2018 17:24:04 +0000 (17:24 +0000)]
mg-hosts: Call db_readonly_report inside, not outside, db_retry

Newer postgresql prints:
  WARNING:  SET TRANSACTION can only be used in transaction blocks
and it is right.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agomg-force-push: unshift . onto @INC
Ian Jackson [Mon, 29 Jan 2018 17:23:28 +0000 (17:23 +0000)]
mg-force-push: unshift . onto @INC

This script seems to have missed out on the bulk commit fixing this
problem.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agosmoke tests: Fix job reuse globs in cr-daily-branch
Ian Jackson [Thu, 14 Dec 2017 16:28:21 +0000 (16:28 +0000)]
smoke tests: Fix job reuse globs in cr-daily-branch

A symptom that the old patterns lack !build-arm64-xsm, so the xsm job
might be reused.  The overall cause is that it contained a (partial)
list of architectures.

Instead, we observe that:
 * The things we want to avoid reusing are Xen and libvirt (which
   builds against Xen.
 * Non-Xen builds are invariably build-<arch>-<thing> (or even longer)
   so we can match them all with build-*-*.
 * We need to exclude the Xen builds and the libvirt builds.  The
   libvirt builds are obvious.  The Xen builds are either build-<arch>
   which does not match build-*-*, or build-<arch>-xsm.

CC: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Julien Grall <julien.grall@linaro.org>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agosmoke tests: Build arm64 with XSM, instead of without
Ian Jackson [Thu, 14 Dec 2017 16:03:44 +0000 (16:03 +0000)]
smoke tests: Build arm64 with XSM, instead of without

The smoke flight contains test-arm64-arm64-xl-xsm so it should contain
build-arm64-xsm (and not contain build-arm64).

I have checked the results with
  OSSTEST_CONFIG=standalone-config-example eatmydata ./standalone-generate-dump-flight-runvars
and looking at the diff shows precisely the expected change.

CC: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Julien Grall <julien.grall@linaro.org>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agoproduction-config: Update jessie amd64 kernel for NUMA bugfix
Ian Jackson [Thu, 14 Dec 2017 16:15:51 +0000 (16:15 +0000)]
production-config: Update jessie amd64 kernel for NUMA bugfix

Bump TftpDiVersion_jessie.  This installer was generated by me today,
with the git branch including the di_special_kernel series, using this
rune:

 OSSTEST_SPECIALKERNELDEB_jessie_amd64=$PWD/linux-image-3.16.0-4-amd64_3.16.51-3~a.test_amd64.deb ./mg-debian-installer-update-all

The file linux-image-3.16.0-4-amd64_3.16.51-3~a.test_amd64.deb
came from here

 https://people.debian.org/~benh/packages/jessie-pu/linux-image-3.16.0-4-amd64_3.16.51-3~a.test_amd64.deb

apropos of this comment in the Debian bug report:

 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=883938#170

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
7 years agomg-debian-installer-update: Honour OSSTEST_SPECIALKERNELDEB_<suite>_<arch>
Ian Jackson [Thu, 14 Dec 2017 15:40:22 +0000 (15:40 +0000)]
mg-debian-installer-update: Honour OSSTEST_SPECIALKERNELDEB_<suite>_<arch>

This variable can be set to the absolute pathname of a kernel .deb to
use.  It will be used only for hosts for which the corresponding
hostflag "need-kernel-deb-<suite>-special" is set.

There is not currently any facility for more than one special kernel
for each architecture.

As with backports kernels, the normal (Debian-supplied) kernel is
available too, and is used for hosts without any special hostflag.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agomg-debian-installer-update: Introduce $specialkernel
Ian Jackson [Thu, 14 Dec 2017 15:37:25 +0000 (15:37 +0000)]
mg-debian-installer-update: Introduce $specialkernel

* In the first half of the backports kernel processing, set
  the new variable specialkernel to the string "backports".
  (This token occurs in the output .deb and kernel name, and
  is also referenced by hostflags of the form
     need-kernel-deb-<suite>-backports.)

* Break out the second half of the backports procesing into its
  own section, conditional on $specialkernel.

* Replace occurrences of the "backports" token, after that point,
  with $specialkernel.

Overall, this will allow other kinds of special kernel to be
introduced.  But there is, for now, no functional change.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
7 years agodi_special_kernel: Use in preseed_create
Ian Jackson [Thu, 14 Dec 2017 12:28:08 +0000 (12:28 +0000)]
di_special_kernel: Use in preseed_create

This abolishes yet another open-coding of need-kernel-deb-* handling.

Again, there is little functional change.  A significant change is
that now if the special kernel deb does not exist, we do not fail.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
7 years agodi_special_kernel: Provide $tp; Regularise $kernel, $cpio
Ian Jackson [Thu, 14 Dec 2017 15:52:07 +0000 (15:52 +0000)]
di_special_kernel: Provide $tp; Regularise $kernel, $cpio

Make both of these paths relative to $ho->{Tftp}{Path}.  Previously
$kernel was relative to that, but $cpio contained it.

Adjust all callers, so no functional change.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
7 years agodi_special_kernel: Use di_installer_path
Ian Jackson [Thu, 14 Dec 2017 13:09:52 +0000 (13:09 +0000)]
di_special_kernel: Use di_installer_path

This avoids the caller having to supply $d_i.  This is good because
there is a site we want to call this from which uses that name for a
different value!

No functional change.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
7 years agodi_installer_path: Use in ts-host-install
Ian Jackson [Thu, 14 Dec 2017 13:07:02 +0000 (13:07 +0000)]
di_installer_path: Use in ts-host-install

No significant functional change.  We now honour cfg_tftp_di_version
if the $ho doesn't have the information.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
7 years agodi_installer_path: Break out of preseed_create
Ian Jackson [Thu, 14 Dec 2017 13:04:31 +0000 (13:04 +0000)]
di_installer_path: Break out of preseed_create

No functional change.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
7 years agodi_special_kernel: Replace open-coding in ts-host-install
Ian Jackson [Thu, 14 Dec 2017 12:23:24 +0000 (12:23 +0000)]
di_special_kernel: Replace open-coding in ts-host-install

The effect is simply to reuse the loop in di_special_kernel.  The
extra tests etc. to compute $k and $c in di_special_kernel are of no
import here, and are harmless.  We have already called
di_special_kernel so if it was going to fail due to this extra
computation, it would do so earlier.

No overall functional change.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
7 years agodi_special_kernel: Pass $kp to $fn
Ian Jackson [Thu, 14 Dec 2017 12:23:12 +0000 (12:23 +0000)]
di_special_kernel: Pass $kp to $fn

Adjust the one current caller.  No functional change

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
7 years agoDebian: Factor out di_special_kernel from ts-host-install
Ian Jackson [Thu, 14 Dec 2017 12:09:53 +0000 (12:09 +0000)]
Debian: Factor out di_special_kernel from ts-host-install

No functional change.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>