[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v3 0/7] osstest: add a FreeBSD host


The following series enables setting up a FreeBSD PVH Dom0 host. Although 
this is marked as "v3" it should clearly have the RFC tag, I just haven't 
added it because previous "v2" version was much reduced in functionality and 
didn't have it.

The following extract from an IRC conversation with Ian Jackson should set 
the basis of what I'm trying to accomplish:

< Roger> IanJ: how should I add new trees to OSSTest (like tree_xen), is it 
only a matter of adding it in the invocation of cs-job-create in mfi-common?
< IanJ> Roger: What kind of a tree ?  I mean, what are you trying to do ?
< IanJ> Perhaps this thing (whatever it is) needs a push gate.  Is it cloned 
by the Makefiles inside xen.git ?
< Roger> IanJ: something similar to what is done for pvops, but with 
FreeBSD, but I'm not sure I'm getting it right...
< IanJ> Roger: So you're trying to make a new kind of build job ?
< IanJ> ts-freebsd-build or something ?
< Roger> IanJ: yup, I think I already have that
< Roger> ts-freebsd-host-build
< IanJ> So how does that obtain the source code ?
< Roger> it doesn't compile itself yet, it just installs from a base image
< IanJ> Does it use build_clone ?
< IanJ> But you want to change it to build ?
< Roger> IanJ: OK, let me explain the whole picture because you will be able 
to understand it better
< IanJ> The way we do it with Linux is we install a distro kernel on the 
build host, and build the kernel we are going to want to use using our 
distro's binary packages for compiler etc.
< IanJ> Then for the test hosts we install the OS with a distro kernel and 
then put our own kernel on afterwards.
< Roger> IanJ: in order to install FreeBSD from bare metal I use something 
called mfsBSD, which generates an image that can be booted by pxelinux and 
contains the FreeBSD installer
< Roger> IanJ: in order to bootstrap it, I have placed a stable mfsBSD image 
on the tftp server, that installs the last stable release 10.1
< IanJ> Roger: How do you run mfsBSD if you don't already have a BSD box ?
< Roger> IanJ: you can't
< Roger> that's the thing...
< IanJ> Ah right.
< Roger> IanJ: then I fetch the sources for FreeBSD and mfsBSD, and build an 
updated image, that I reinstall using pxelinux again...
< IanJ> So this is a kind of bootstrap image which performs roughly the same 
role as our debian-installer image files ?
< Roger> IanJ: yes, but we need a FreeBSD box in order to generate up to 
date images
< IanJ> And the osstest test runner VM isn't BSD.  I see the problem.
< Roger> IanJ: so ideally I was thinking that this job should only run once 
a week, and generate a new image from upstream, test it, and mark it as OK, 
so that regular OSStest use it straigh away
< IanJ> Roger: That sounds plausible.
< Roger> IanJ: now, I have no idea how to implement this, is there something 
half-similar I can look at?
< IanJ> The difficulty is that osstest's push gate is designed to push vcs 
revisions, not images.
< IanJ> I think in fact that most of what's in cr-daily-branch would be 
stuff which gets in the way.
< Roger> IanJ: so you for example rebuild the pvops kernel every time, even 
if the vcs revision is the same?
< IanJ> Yes (except that the bisector can reuse builds).
< IanJ> What form is the upstream in ?
< Roger> IanJ: I was using git (although the master FreeBSD repo is svn)
< IanJ> So you have something which automatically updates the git source ?  
So we can treat it as git from osstest's pov.
< Roger> IanJ: I mean, I was using an official git mirror
< IanJ> Right, jolly good.
< Roger> IanJ: that's the plan, so we get bisection and a push gate also
< IanJ> Roger: So how about this: we somehow make cr-daily-branch, if it 
decides to push the freebsd branch, also copy the generated image somewhere 
where other things will pick it up.
< Roger> IanJ: that sounds OK to me, I think I should send my OSSTest 
patches so you can see the mess I did and continue this on email

The crappy way I'm currently testing this is by doing the following steps:

$ OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=dt51 
./ts-freebsd-host-install host=dt51 version=10.1-RELEASE
$ OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=dt51 
./ts-freebsd-create-mfsbsd host=dt51 
$ rm -rf tmp/t.known_hosts_standalone.build-amd64-freebsd # there's no way to 
tell mfsBSD to generate an image with preseed ssh-keys.
$ OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=dt51 
./ts-freebsd-host-install host=dt51 
$ OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=dt51 
./ts-xen-build-prep-freebsd host=dt51
$ OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=dt51 
./ts-xen-build host=dt51
$ ./cs-adjust-flight -v standalone runvar-set build-amd64-freebsd buildjob 
build-amd64-freebsd runvar-set build-amd64-freebsd xenbuildjob 
$ OSSTEST_FLIGHT=standalone OSSTEST_JOB=build-amd64-freebsd OSSTEST_HOST=dt51 
./ts-xen-install-freebsd host=dt51

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.