On Mon, Sep 07, 2020 at 10:30:20PM +0100, Richard Purdie wrote:
On Mon, 2020-09-07 at 17:19 -0400, Tom Rini wrote:
On Mon, Sep 07, 2020 at 10:03:36PM +0100, Richard Purdie wrote:Its the tun/tap device requirement that tends to be the pain point.
On Mon, 2020-09-07 at 16:55 -0400, Tom Rini wrote:Which issues do you run in to with qemu networking? I honestly don't
The autobuilder is setup for speed so there aren't VMs involved, its
'baremetal'. Containers would be possible but at that point the kernel
isn't the distro kernel and you have permission issues with the qemu
networking for example.
know if the U-Boot networking tests we run via qemu under Docker are
more or less complex than what you're running in to.
Being able to ssh from the host OS into the qemu target image is a
central requirement of oeqa. Everyone tells me it should use
portmapping and slirp instead to avoid the privs problems and the
container issues which is great but not implemented.
Ah, OK. Yes, we're using "user" networking not tap.
Removes some, yes, but creates a whole set of other issues.
Speed is extremely important as we have about a 6 hour build test timeThe reason I was thinking about containers is that it should remove some
but a *massive* test range (e.g. all the gcc/glibc test suites on each
arch, build+boot test all the arches under qemu for sysvinit+systemd,
oe-selftest on each distro). I am already tearing my hair out trying to
maintain what we have and deal with the races, adding in containers
into the mix simply isn't something I can face.
We do have older distros in the cluster for a time, e.g. centos7 is
still there although we've replaced the OS on some of the original
centos7 workers as the hardware had disk failures so there aren't as
many of them as there were. Centos7 gives us problems trying to build
of what you have to face.
Paul may or may not want to chime in on howThe machines are in fact pretty much off the shelf distro installs so
workable it ended up being for a particular customer, but leveraging
CROPS to setup build environment of a supported host and then running it
on whatever the available build hardware is, was good. It sounds like
part of the autobuilder problem is that it has to be a specific set of
hand-crafted machines and that in turn feels like we've lost the
thread, so to speak,
not hand crafted.
Sorry, what I meant by hand-crafted is that for it to work for older
installs, you have to have this particular dance to provide various host
tools, that weren't required at the time.
about having a reproducible build system. 6 hoursHere we get onto infrastructure as we're not talking containers on our
even beats my U-Boot world before/after times, so I do get the dread of
"now it might take 5% longer, which is a very real more wallclock time.
But if it means more builders could be available as they're easy to spin
up, that could bring the overall time down.
workers but on general cloud systems which is a different proposition.
We *heavily* rely on the fast network fabric between the workers and
our nas for sstate (NFS mounted). This is where we get a big chunk of
speed. So "easy to spin up" isn't actually the case for different
Its quite simple:
So this plan is the best practical approach we can come up with toSince I don't want to put even more on your plate, what kind of is the
allow us to be able to build older releases yet not change the
autobuilders too much and cause new sets of problems. I should have
mentioned this, I just assume people kind of know this, sorry.
reasonable test to try here? Or is it hard to say since it's not just
"MACHINE=qemux86-64 bitbake world" but also "run this and that and
something else" ?
MACHINE=qemux86-64 bitbake core-image-sato-sdk -c testimage
MACHINE=qemux86-64 bitbake core-image-sato-sdk -c testsdkext
are the two to start with. If those work, the other "nasty" ones are
oe-selftest and the toolchain test suites. Also need to check kvm is
We have gone around in circles on this several times as you're not the
first to suggest it :/.
Thanks for explaining it again. I'll go off and do some tests.