<div dir="ltr">Renato, thanks for your elaborate walk-through of the issues with ARM boards.  I'm trying to add some of this to the "How to Build on ARM" document and will submit a patch later on.<div><br></div>
<div>I already ran into the problem of cores disappearing, but on Arch Linux (which uses a fairly recent kernel), the missing cores come back as soon as the load falls to zero.</div><div><br></div><div>Unfortunately, my personal budget does not allow me more than a single Odroid XU board for the time being.  So I'll have to do with only one board.  I happen to have an eMMC card and it is fairly fast.</div>
<div><br></div><div>By the way, how do you set the CPU scheduler to "performance" (procfs something?).  Just so that it can be added to the docs.</div><div><br></div><div>-- Mikael<br></div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">2013/11/14 Renato Golin <span dir="ltr"><<a href="mailto:renato.golin@linaro.org" target="_blank">renato.golin@linaro.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 14 November 2013 02:13, Sean Silva <span dir="ltr"><<a href="mailto:chisophugis@gmail.com" target="_blank">chisophugis@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>I love Arch, but it is probably a bit too unstable for a long-term buildbot. CC'ing Renato who might have some suggestions.</div>

</div></div></div></blockquote><div><br></div><div>Mikael, Sean,</div><div><br></div><div>I think having an Arch buildbot is a great idea. At Linaro, we normally test on Debian-derived distros, and having something else entirely is a good stress test for the compiler, the build configuration, the buildbot scripts and the test infrastructure.</div>

<div></div></div><br></div><div class="gmail_extra">Regarding what to test, I'd begin with Clang+LLVM check-all. There are already configurations on Zorg for that kind of setup. You can copy from the A9 bots and change to "A15". I recommend you to disable make clean (Clean=false), so that the cycle time becomes minutes, not hours. You should set this up locally, on your own build master, and let it run for a few days, and if it's stable, you can go to stage 2.</div>

<div class="gmail_extra"><br></div><div class="gmail_extra">Stage 2 is either to put it in production (ie. moving the configuration to Zorg and connecting your bot to LLVM's master), or enhance the testing capabilities of your bot. The former is *very* simple, but the latter depends on what you want. Stage 3 would be to put it into production.</div>

<div class="gmail_extra"><br></div><div class="gmail_extra">Normally, the rules of thumb for ARM bots:</div><div class="gmail_extra"> * I woulnd't have bots running check-all AND the test-suite/lldb, because I want them to be orthogonal, ie. I don't want the test-suite bot stopping short of testing because of a silly breakage in a new test.</div>

<div class="gmail_extra"> * I wouldn't test lldb if you don't care about it. (I don't, yet). lldb is a separate project and I had trouble setting it up to run on ARM before.</div><div class="gmail_extra"> * Always have more than one buildbot on any configuration. Build time can be huge, and dev boards are notoriously faulty. I had huge problems with Panda boards in the past, to the point where I removed them all from the build rota. The odroid U2 seems more stable, but the XU has some hardware/kernel problems (randomly re-mounting partitions read-only, disabling CPUs and never re-enabling them again, cache flush between every big.LITTLE switch, amongst others).</div>

<div class="gmail_extra"> * Create boot scripts to check for those problems, plus set the CPU scheduler to "performance" on ALL CPUs. This eases most CPU problems.</div><div class="gmail_extra"> * Create a stable configuration and save the image as it will run in production, to make it easier to re-create bots on the spot</div>

<div class="gmail_extra"> * Have extra spare boards to replace a broken bot, as most of the time, the easiest path is to re-flash, but you need something running while you do it</div><div class="gmail_extra"> * Running the build on SDcards is ok, but they are more prone to failures than good quality USB sticks, and those are more prone to failures than external hard-drives (those are also a lot faster). So, at least, I'd recommend you to buy a SanDisk Ultra USB stick.</div>

<div class="gmail_extra"> * Make sure you have a decent power supply (dozens of dollars worth) that can provide *at least* 4amps.<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">All that may seem daunting, but there is one critical issue of hosting a buildbot: reliability of the test is equals to reliability of the platform.</div>

<div class="gmail_extra"><br></div><div class="gmail_extra">In the beginning, there were only a handful of ARM boards, and they were broken most of the time, and ARM was not considered a stable target. We changed it by introducing lots of new bots, test-suite and fixing all the bugs, but once my Pandas starting to fail randomly, the popular belief was that "failures on ARM are due to the board stability, not my commits", and sure enough, bugs started to creep in. We don't want that.</div>

<div class="gmail_extra"><br></div><div class="gmail_extra">So, while I welcome new buildbots for ARM, we must do it right, from the beginning. We still don't have enough critical mass to be able to have a faulty bot, unfortunatelly.</div>

<div class="gmail_extra"><br></div><div class="gmail_extra">cheers,<br></div><div class="gmail_extra">--renato</div></div>
</blockquote></div><br></div>