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

[Xen-devel] [HACKATHON] Toolstack session

Toolstack session


 - Build system
 - Stubdom
 - Testing
 - {o/c}xenstored

Wei: what downstream consumers expect from the build system. Xen has a top 
level makefile that builds everything, by pulling other projects source 
code. Trying to make it cleaner.

George: someone recommended to pull grub2 into the Xen build system, but it 
was seen as too much. Try to remove other pieces that Xen build system pull 
in in order to perform a build. Package Raisin in a way that includes all 
the needed dependencies (source).

Doug: Gentoo/Yocto build system based on the one from Debian. It's not good 
to pull things from the internet when performing a build. Yocto build system 
disables network access when performing a build, custom patches are needed 
in order to fix that. XenServer has to do the same.

George: In general people packaging Xen needs to work around the fact that 
Xen pulls things from the internet while building

Doug: this doesn't work for stubdom

Olaf: it's possible to do the same for stubdom, Suse does it.

Doug: stubdom build always call the git binary, even if the code it's 
already there.

Ian: Debian doesn't build stubdom.

Wei: it's a PITA that the Xen build system downloads stuff while building. 
Need to solve this.

Ian: two different things in the build system:

 - Our build process downloads stuff while building. This annoys packagers, 
but it's probably important for users that build Xen from source. We cannot 
force them to download stuff manually.
 - Release tarballs _still_ need to download more stuff while building 

How to fix:
 - Everything controlled by the Xen build system, make it clear what will be 
downloaded, have a target to download the required sources.
 - Use Raisin or something similar, that pulls in everything.

George: difficulties building things from outside, like blktap. Requires 
libxc, which is inside the Xen build system.

Juergen: add the download section to configure.

Ian: seems worse than adding it to the makefile.

Olaf: configure to select what to download/install.

Ian: add download options to configure, add a download target to the build 
makefile. Default to stay the same as it is now.

Konrad: configure to create a list of what Xen build wants to download.

Ian: hard to make it declarative.

****: the build process is taking very long. Sometimes it fails, shouldn't 
re-download things again.

Ian: clean only cleans objects, distclean cleans everything downloaded. 
Maybe add a configure or make target to pull and build pvgrub2?

George: some distros might only want to compile core, and use Qemu/pvgrub2.. 
from other distro packages.

Doug: important to keep in sync with upstream, having custom (cherry-picked) 
patches on top of upstream repos makes it harder for distro to use the 
already present-packages.

George: try to clean things up, clear separation between download and build 

Andrew: it would be interesting to be able to pass libraries or object files 
to the Xen build system, instead of only pointing it to source 

George: Raisin would help with that.

Ian: hard to modify Raisin to do this, will take a long time to get there. 
Maybe will take care of those changes, will try to make things not harder 
for people that wants to build things independently.


Wei: stubdom in tree, it's not getting much attention.

Ian: not to be confused with rump-kernels. Should Wei continue working on 
splitting up stubdom? Should it be split from the Xen source tree?

Doug: different release cadence.

Ian: would make it easier for distros to consume maybe.

Wei: I will post patches to split stubdom from the repo.

****: What about using Linux in stubdoms?

Roger: Linux kernel can only be built on Linux.

George: have a script that you can call to build it?

David: use things already present in order to build Linux distros, like 
Yocto or even the Debian packages.

Ian: in any case, it should be an opt-in disabled by default, since it's not 
possible to build Linux on != Linux. We should also have a clear protocol 
about how a stubdom interacts with the toolstack. Toolstack needs to tell 
stubdom which devices will be available to the guest.

Wei: I've done some fixes to it, seems better ATM.

Doug: get the protocol into a standard, in a way that stubdoms would be 
interchangeable (Linux/MiniOS/rump).

Wei: Linux stubdom can become a separate project, but there needs to be a 
clear and standard protocol.


Wei: Upstream relies on OSSTest, tracks both Xen and other projects (Linux, 
QEMU, SeaBIOS...). Tight on resources, more machines would help testing 
things faster. 

Doug: other projects do more tests before anything even reaching staging.

Luis: 0-day testing has been offered to Xen, need to speak about which Xen 
or Linux versions should be tested.

David: that runs on top of KVM, so it would only allow us to the test PV 

Andrew: that's what needs more testing.

David: reduce some load, reduce the number of Linux branches that we test.

Ian: remove maybe every Linux branch except for Linus master and the stable 
branches. Improve performance by reducing the number of re-installs of 
certain jobs, we would have a performance boost of 20% maybe.

Ian: a dedicated build box doesn't seem to have a lot of difference. The 
real delay is availability of test boxes.

Andrew: smoke test only runs every 4h, and takes 3h to finish. XenServer 
test system is much faster.

Ian: OSSTest lacks machines in order to test more often/faster. Maybe split 
to a model where there are several input branches that get merged into the 
main repository, this would force committers to keep their branch in good 

****: How to split the threes?

****: by committers, or by code areas (x86, tools...).


Luis: oxenstore is smaller, more performant, is it the default?

Andrew: if ocaml is found, it is compiled by default.

George: also start the ocaml one by default.

Luis: can we get rid of the C one?

Andrew: no, it's used by the xenstore stubdom, would need someone to port 
the xenstore to MirageOS.

****: almost every distro/OS has a ocaml compiler, so it *could* be made the 

Andrew: XenServer has been using it for ~9 years.

Dario: add a test for cxenstored-stubdom, so that we can make the ocaml one 
the default, and still get test coverage on the C one.

Ross: it should be quite easy to get the MirageOS oxenstored stubdom.

Xen-devel mailing list



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