Dario Faggioli [Wed, 25 Jun 2014 15:16:02 +0000 (17:16 +0200)]
mg-unixbench-download: make it generic
so that it can handle the retrieval of different
benchmarks. The name of the benchmark to fetch should
be among the supported one, and is passed as an argument.
XXX This is a stab. As detailed in the cover letter, I
just wanted to give an idea of how things would look
like, if we take this path. I personally prefer it
like this, but let's talk about it.
Of course, if we decide to go this way, the name
will be changed from mg-unixbench-download to
mg-bench-download, and I'll structure the file
like this from the beginning.
Dario Faggioli [Tue, 24 Jun 2014 14:53:12 +0000 (16:53 +0200)]
make-flight: introduce a new -t option
to make it possible to call the new make-bench-flight,
and generate the benchmarking jobs. It's best combined
with -f, so that one can create a benchmarking flight
with all the benchmarking jobs.
It is generic, so, when passing '-t sometype', a script
called make-sometype-flight is what will be invoked.
XXX Just FTR, this was also part of that conversation
with IanC.
Dario Faggioli [Tue, 24 Jun 2014 14:55:49 +0000 (16:55 +0200)]
make-bench-flight: to create a benchmarking flight
instead of polluting make-flight.
Two bench-unixbench based jobs are created, one using
credit, the other credit2.
XXX - Wheter or not to create a new script was discussed
briefly with IanC (the last time I was in Cambridge).
- As for the previous patch, this is mostly a proof of
concept... We can do everything here, let's discuss
about it!
Dario Faggioli [Tue, 24 Jun 2014 14:58:13 +0000 (16:58 +0200)]
sg-run-job: new recipe for a unixbench job
Installs and run unixbench inside a PV and an HVM guest.
XXX - The HVM case needs that a few fixup are performed
after ts-debian-hvm-install. I'll do that as a
separate and independent patch.
- This is mostly a proof of concept. I think the
recipes it defines are actually useful, but of
course we can discuss of what is the best course
of actions, depending how we want to achieve.
Dario Faggioli [Wed, 25 Jun 2014 01:40:06 +0000 (03:40 +0200)]
ts-unixbench-reslts: for retrieving the results
and store them in $c{Stash}/$flight/$job/results.
XXX: - I think $c{Stash}/<flight>/<job>/results is a fine
place (very similar to what build jobs do, IMO). If
a different location should be used, please advise.
- This is, for now, only fetching the results. Of
course we'd like to do something with them
(printing, plotting, storing for long term usage
or comparison, etc.). Let's have a discussion
about this and I'll implementi it too
Dario Faggioli [Mon, 23 Jun 2014 15:17:18 +0000 (17:17 +0200)]
ts-unixbench-prep: prep the environment for running unixbench
by installing some dependencies, shipping the archive, untaring
and building the sources.
This accepts two parametrs, in the form 'host=somehost someguest',
as most of the ts-guest-xxx scripts. If only the first one is
provided, it must be 'host=somehost', and the script will prep
the host.
XXX: I see it useful that this works for the host too, as
at some point we may want to run benchmarks on dom0
or even bare metal.
Dario Faggioli [Tue, 24 Jun 2014 14:00:47 +0000 (16:00 +0200)]
mg-unixbench-download: new script for downloading the unixbench archive
The script fetches it, and saves it in c{Images}/benchs.
Default values for URL and actual filename are in ap-common, and
can be overridden as usual.
XXX: this may or may not be something suitable to do in a
function in cri-common, called by ap-fetch-version. It's
not a git tree, and it's not something that changes much
so I think it's fine like it is in this patch. If it is
not, advise otherwise and I'll cope.
Ian Jackson [Fri, 23 May 2014 09:55:51 +0000 (10:55 +0100)]
ap-qemu-revision: Make it actually work
This is used (only) for obtaining lists of the corresponding qemu
revisions (for the report email) when doing a Xen push. It has never
worked because we didn't provide a type argument to git-cat-file.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Ian Jackson [Thu, 22 May 2014 11:24:19 +0000 (12:24 +0100)]
Default vcs to git
adhoc-revtuple-generator and cs-bisection-step try to guess the VCS
from the URL, by looking at the end of the URL for a suitable file
extension. If none was found, things would break.
This relies on a convention about tree URLs which is sadly no longer
being widely observed. In particular many projects have git URLs
which do not mention git.
Instead, have these scripts assume that urls which don't end in .git
or .hg are for git.
This renders hg into a second-class VCS in osstest, which is (I think)
tolerable. If it isn't, then someone ought to come up with some
better way of ensuring that the vcs is explicitly specified to
adhoc-revtuple-generator and cs-bisection-step. That would probably
be doable but is too much work right now.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Ian Jackson [Wed, 21 May 2014 11:36:02 +0000 (12:36 +0100)]
sg-run-job: Do blocked check globally, in run-job
Only run-job can fully abandon the whole job. With the previous
arrangements (in bc63a901), a blocked build job would go on to try to
run ts-logs-capture and become broken (rather than blocked).
The downside of this is that it is not possible in the future to
introduce a kind of job which can selectively carry on if some of its
dependencies fail. This notion is IMO an acceptable casualty.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Ian Jackson [Wed, 21 May 2014 10:37:48 +0000 (11:37 +0100)]
crontab: Rearrange actually-daily branches
Make them start at roughly the same time, by using cr-for-branches for
them all in one go. That increases the extent to which build hosts
will be reused (saving on reinstallations), and hence also the extent
to which the build hosts' ccache will be effective (saving on cpu).
Set them off at 04:18 UK time (currently equivalent to 21:18 Pacific
time), in the hope that at least some of them might have produced
answers during following the UK working day.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Ian Jackson [Wed, 21 May 2014 10:42:37 +0000 (11:42 +0100)]
rumpuserxen: Increase build timeout for grievous bodge
This involves copying 90Mby of data. If the test machine is busy (in
the worst case, running the kernel side of resize2fs which due to
Linux's poor IO scheduling hogs the entire IO system) it can take a
long time. In flight 26359 it was still running after 280s, when the
machine was released.
Increase the timeout to 2000s.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Ian Campbell [Mon, 19 May 2014 11:32:16 +0000 (12:32 +0100)]
production-config: Update to pickup latest Debian Installer
Pickup the changes made in
mg-debian-installer-update: Updates for newer armhf kernels from backports.
mg-debian-installer-update: grab Xen PV domU capable images too
I have run
for i in i386 amd64 armhf ; do
OSSTEST_CONFIG=production-config ./mg-debian-installer-update wheezy $i 'firmware-bnx2'
done
on the osstest vm. Point the config to these new versions.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Campbell [Thu, 15 May 2014 10:30:39 +0000 (11:30 +0100)]
sg-run-job: check for prerequisite builds when running build jobs
For example build-$ARCH-libvirt depends on build-$ARCH for the Xen bits.
Performing this check early saves allocating, installing, preparating etc a
host just to find the prerequisite is missing.
Rename ts-xen-build-check to ts-build-check while we are there. The script
checks all prerequisite builds, not just Xen.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Campbell [Thu, 15 May 2014 10:30:35 +0000 (11:30 +0100)]
Add a flight to test seabios.org's master branch
Most of this is the usual stuff for adding a new branch.
cr-daily-branch needed to set REVISION_SEABIOS for the seabios branch and leave
it blank for others (so that Config.mk's version will be used). ts-xen-build
already consumes the resulting version runvar but needed to be taught about the
tree URL runvar.
make-flight and mfi-common are updated to only build+test seabios on x86.
The new branch is added to cr-daily-branches.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Campbell [Thu, 15 May 2014 10:30:34 +0000 (11:30 +0100)]
Add a flight to test qemu.org's ("mainline") master branch.
The naming here is slightly confused because we call our branches of qemuu on
xenbits "qemu-upstream-foo", so I went with qemu-mainline to be distinct.
I've introduced $qemuubranch along the lines of $xenbranch, it is normally set
to qemu-upstream-{X.Y,unstable} but for the qemu-mainline flight it instead
points to qemu-mainline.
I've run up to the make-flight bit of cr-daily-branch and it differs only in
the expected ways from a standard xen-unstable branch (i.e. uses xen.git#master
and qemu.git#master).
I did consider causing make-flight:job_create_test_filter_callback to omit any
test which didn't use qemuu but I decided not to because it is used for PV
qdisk backends too.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Campbell [Thu, 15 May 2014 10:35:44 +0000 (11:35 +0100)]
cr-daily-branch: Only build oldkern for xen-unstable flights
This is just supposed to be a build test, it doesn't actually get used.
There's no need to be doing this for every flight, doing it for xen-unstable
is enough
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Campbell [Mon, 28 Apr 2014 09:18:38 +0000 (10:18 +0100)]
mg-debian-installer-update: Updates for newer armhf kernels from backports.
In newer kernels sd_mod.ko requires crypto symbols, so include
kernel/crypto/*.ko in the installer overlay cpio.
Also prefer the newest versions of packages pulled in from backports, by
reversing the sort. Anchor the linux-image package name to we only pick up the
-armmp flavour and not -armmp-lpae (which is unnecessary in an installer
environment).
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Ian Jackson [Thu, 15 May 2014 15:48:56 +0000 (16:48 +0100)]
rump kernels: Provide a build job
Provide:
- test script ts-rumpuserxen-build
- recipe build-rumpuserxen
- in flights, job build-i386-rumpuserxen
- in ap-common, TREE and TREEVCS for RUMPUSERXEN and RUMPUSERXEN_RUMPSRC
mfi-common also honours REVISION_RUMPUSERXEN, but provides no way to
specify the revisions of the subtrees (the two submodules and
rumpsrc). The upstream rumpuser-xen git repository contains the
commit hashes of those.
We had to do some pretty unpleasant things to get the rumpuser-xen
build system to work with rumpsrc we cloned ourselves.
During bisection the bisector must choose a unification of the various
trees' revision graphs, into a single graph. But we do not here teach
adhoc-revtuple-generator about these interrelationships. As a result
the bisector may choose a unification inconsistent with the subtree
references in rumpuser-xen.git. This might impair the performance of
the bisector in the presence of cross-tree version incompatibilities,
but the results should be tolerable for now.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Ian Jackson [Thu, 15 May 2014 15:01:13 +0000 (16:01 +0100)]
BuildSupport: Provide some support for git submodules
* Provide a new "submodulefixup" function which, given a cloned
tree which has submodules:
- massages the .gitmodules file according to the tree_*
runvars and massage_url
- arranges for the submodules to be fetched and checked out
- stores the revisions of the submodules, as necessary
- honours any revision_ tags for the submodules
- allows the caller to give the submodules names which are
suitable for use in runvars etc. (and might differ from
the names or paths used in the supermodule)
* In a submodule, .git is actually a file containing a reference
to a subdirectory of the main git tree. Cope with that.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Ian Jackson [Wed, 14 May 2014 13:30:54 +0000 (14:30 +0100)]
BuildSupport, ts-*-build: Remove some clone-and-hack
Introduce Osstest::BuildSupport containing selectbuildhost,
builddirsprops and prepbuilddirs. The corresponding replicated code
from the various ts-*-build scripts is abolished.
Also break out xendist, which we are going to want to reuse.
No functional change.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Ian Jackson [Mon, 12 May 2014 13:36:10 +0000 (14:36 +0100)]
adhoc-people-touched-filter: Include patch authors
The git "Author:" tag of each commit should be included.
(We used to include only special pseudo-headers from the patch
comment, because the old hg practice used to be to put the committer
in the hg commit author. But git separates committer and author.)
This involves a slight refactoring.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
Ian Campbell [Fri, 2 May 2014 13:08:04 +0000 (14:08 +0100)]
libvirt: Fixes for older versions of Xen
libvirt supports Xen 4.2 onwards. However:
- We were not correctly setting the libvirtbuildjob runvar on 4.3 and
earlier.
- Xen 4.2 installs to /usr not /usr/local so the CFLAGS/LDFLAGS used to build
libvirt were wrong.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Jackson [Fri, 9 May 2014 11:04:19 +0000 (12:04 +0100)]
TestSupport: stash installer files etc.
Stash the pxeboot config file, the preseed file, et al. This is done
centrally in file_link_contents.
We don't stash things whose $contents is actually a coderef because
(a) doing so would be inconvenient and (b) many of them are large and
not very interesting.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
Ian Campbell [Tue, 29 Apr 2014 12:16:34 +0000 (13:16 +0100)]
ts-debian-hvm-install: increase boot_timeout to 200s
Tianocore can be slow to post, especially on large guests. We've been hitting
the 100s timeout on lake-frog and fire-frog. Even when succeeding the duration
is 90s+.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Ian Campbell [Mon, 28 Apr 2014 07:55:06 +0000 (08:55 +0100)]
production-config: Update di version again.
This contains the current version for amd64 and i386 (actually the same as
yesterday) which picks up the latest point release but for armhf this is a link
to the old (2013-12-12) image since armhf uses a backports kernel and is
unaffected by the point release but does seem to have a deendency on some newer
infrastructure (depmod et al, I think) which needs sorting out.
Ian Campbell [Wed, 23 Apr 2014 10:07:01 +0000 (11:07 +0100)]
Add libvirt build and test jobs.
I have run this through a "cr-daily-branch --real" and the push gate machinery
seem functional. The test cases run through to starting a guest which fails
because virsh support has not been implemented yet.
The libvirt.git initscript is horribly redhat specific, and the debian package
one is large and complex, so ts-libvirt-build inserts its own simple
initscript.
I have observed the autogen.sh phase taking 34 minutes on army (arm build
cluster) hence the surprisingly large timeout of an hour. The build took around
20 minutes on the same system, but I used a timeout of an hour anyway to be
safe.
The standalone wrapper is updated to handle path_libvirt in set-paths.
libvirt.git's autogen.sh involves initialising/cloning a git submodule, which
doesn't use osstest's git cache and introduces unpredicability into what is
built. Therefore ap-* are taught about a new libvirt-gnulib tree (prefixed
libvirt incase we end up with other users of gnulib in the future). However
this doesn't use the usual push gate mechanism, since this was deemed to be
overkill and just always uses the tip of gnulib. The results are recorded
though so the bisector can still operate over this tree in the event of
breakage.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Jim Fehlig <jfehlig@suse.com> Cc: Dario Faggioli <dario.faggioli@citrix.com>
Ian Jackson [Thu, 10 Apr 2014 17:20:18 +0000 (18:20 +0100)]
cr-*, ap-*: Facilities for testing linux-next
* Define the new branch's git source repo in ap-common.
* Provide a branch-settings file which disables running additional
baseline tests, listing changesets in flight reports, pushing,
and which arranges for the baseline revision for the flight
report to be determined "late", ie after the to-be-tested
versions of everything have been decided.
* When the baseline revision is to be determined "late", run
the new script ap-fetch-version-baseline-late. This is another
collection of per-branch rules. We introduce currently one
per-branch rule, for linux-next:
* The baseline version for a test of linux-next is
- the version tested by the most recent flight on the
linux-linus branch;
- provided that said version is an ancestor of the linux-next
version under test;
- otherwise we try an earlier linux-linus flight.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Ian Jackson [Thu, 10 Apr 2014 17:18:54 +0000 (18:18 +0100)]
sg-check-tested: support --git-ancestor-of
This will be used for the linux-next branch, whose baseline is the
most recently tested linux-linus which is an ancestor of the
being-tested linux-next.
We do not provide this for any VCS other than git. Hopefully we will
never need to.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Ian Jackson [Thu, 17 Apr 2014 15:06:05 +0000 (16:06 +0100)]
ts-xen-install: nodhcp: Make idempotent
If run more than once, this function would erroneously determine that
xenbr0 was the primary physical interface name and try to enroll it
into the bridge (also named xenbr0).
Instead, spot the "bridge_ports" line and use it to extract the
physical interface name. Eliminate from consideration any interfaces
matching xenbr\d+.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> Tested-by: Ian Campbell <ian.campbell@citrix.com>
Ian Jackson [Thu, 17 Apr 2014 15:32:33 +0000 (16:32 +0100)]
cr-daily-branch: Print better message re lack of push
wantpush might be false because
- OSSTEST_PUSH is false (only set to true in daily-cron-settings-real)
- baseline untested (what we had here)
- "$tree" is unknown (although I think this would fail elsewhere)
- input and output revisions are the same
Print the message "Published tested tree is already up to date" only
if that's actually the case.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> Tested-by: Ian Campbell <Ian.Campbell@citrix.com>
Ian Jackson [Thu, 17 Apr 2014 11:00:36 +0000 (12:00 +0100)]
preseed_base: drop obsolete references to NetGateway and NetNetmask
NetGateway and NetNetmask are not honoured (their lines in the preseed
file are commented out) and I'm not aware of anyone who sets them.
They have been there from the dawn of time.
Removing them gets rid of this warning (which appears twice)
Use of uninitialized value in concatenation (.) or string at Osstest/Debian.pm line 432.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
Wei Liu [Mon, 14 Apr 2014 11:04:34 +0000 (12:04 +0100)]
ts-debian-hvm-install: fix guest memory size
If the host has more than 5G free memory, change guest memory size to 5G
to catch any error that triggers by crossing 4G boundary. Otherwise
guest memory size is set to 768 MB (taken from ts-redhat-install) which
should be a safe value to run this testcase on every host.
Signed-off-by: Wei Liu <wei.liu2@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Campbell [Mon, 14 Apr 2014 10:31:15 +0000 (11:31 +0100)]
standalone: force an explicit default config
Some scripts (e.g. cri-args-hostlists) default to production-config instead of
the more expected ~/.xen-osstest/config. I keep forgetting this, so set the
more appropriate default in the helper script.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Campbell [Mon, 14 Apr 2014 10:31:00 +0000 (11:31 +0100)]
ts-xen-build: remove frobbing of xen.git/buildconfigs/enable-xen-config
This shouldn't be touched since osstest.git commit c1fba9810435 "import
enable-xen-config from xen.git, use for ts-kernel-build" and is just wrong
since xen.git 40305629dc48 "build: remove Linux kernel build integration."
since the file no longer exists.
Of the options which were being set here only CONFIG_HIGHPTE isn't already
handled by ts-kernel-build. I don't think CONFIG_HIGHPTE needs to be forced to
off these days (pvops kernels do it automagically). If I'm wrong I'm sure
osstest will tell us...
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Jan Beulich <JBeulich@suse.com>
Wei Liu [Wed, 4 Dec 2013 17:19:32 +0000 (17:19 +0000)]
Introduce ts-debian-hvm-install
This is debian hvm guest test case. It resembles ts-redhat-install:
1. prepare a auto install CD
2. install debian hvm guest, currently using OVMF
3. test if the guest is up
The installtion CD is also bootable with seabios.
Signed-off-by: Wei Liu <wei.liu2@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Campbell [Fri, 4 Apr 2014 08:55:56 +0000 (09:55 +0100)]
make-flight: really drop the stray xend test from 4.5 onwards
The precedence rules meant the test was:
( xend enabled AND arch = i386 ) OR ( arch = amd64 )
rather than the intended:
( xend enabled ) AND ( arch = i386 OR arch = amd64 )
I've confirmed that a xen-instable flight no longer has test jobs with
toolstack == xend and that a Xen 4.4 flight is unchanged.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>