Mikael Lyngvig
2013-Nov-14 01:28 UTC
[LLVMdev] Quad-Core ARMv7 Build Slave Seeks Noble Purpose
Hi Dmitri, I am not using any kind of cache (didn't even know of ccache). I have now installed ccache. Perhaps ccache should be mentioned in the buildbot document so that every buildbot owner knows about it? It is currently running Arch Linux ARM. if there are good reasons to switch to something else, I'll be happy to do that, although I am generally very happy about Arch Linux. What do you want me to build? LLVM? Clang? Both plus test suite? Sincerely, Mikael 2013/11/14 Dmitri Gribenko <gribozavr at gmail.com>> On Wed, Nov 13, 2013 at 4:53 PM, Mikael Lyngvig <mikael at lyngvig.org> > wrote: > > Hi guys, > > > > I have this ODROID XU (quad-core ARMv7 Cortex A15 1,6 GHz) box that I > want > > to make available to the LLVM project. I can see that LLVM already has > an > > ARMv7 Cortex A9 system doing Clang, but how should this box be used, if > at > > all? We're talking a long-term commitment within the realm of being a > > buildbot slave. It builds LLVM in about 40 minutes, excluding the test > > suite. > > Hi Mikael, > > 40 minutes is a good iteration time for an ARM CPU. Are you using > some kind of caching mechanism to speed up compilation (ccache?) If > not, it could be even faster :) > > I think this buildbot will be very useful for the community. What OS > is it running? > > You can find instructions on adding a buildbot here: > > http://llvm.org/docs/HowToAddABuilder.html > > I am also CC'ing Galina. > > Dmitri > > -- > main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if > (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/ >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131114/bb54b8f8/attachment.html>
Dmitri Gribenko
2013-Nov-14 01:48 UTC
[LLVMdev] Quad-Core ARMv7 Build Slave Seeks Noble Purpose
On Wed, Nov 13, 2013 at 5:28 PM, Mikael Lyngvig <mikael at lyngvig.org> wrote:> Hi Dmitri, > > I am not using any kind of cache (didn't even know of ccache). I have now > installed ccache. Perhaps ccache should be mentioned in the buildbot > document so that every buildbot owner knows about it?Possibly.> It is currently running Arch Linux ARM. if there are good reasons to switch > to something else, I'll be happy to do that, although I am generally very > happy about Arch Linux. > > What do you want me to build? LLVM? Clang? Both plus test suite?Personally, I see more value in building LLVM, Clang, possibly lld, without test suite. This is the way that most build bots operate. Test suite takes a long time to run, and this increases the iteration time. As an example, you could look at the configuration in zorg repository that corresponds to this buildbot: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-debian-fast It uses CMake/ninja, which will give you the best possible iteration time. In order to use ccache, you need ensure that these environment variables are set: CC="ccache clang" CXX="ccache clang++" CCACHE_CPP2=yes export CC CXX CCACHE_CPP2 (Of course, you can use gcc/g++ as compilers.) Dmitri -- main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/
Sean Silva
2013-Nov-14 02:13 UTC
[LLVMdev] Quad-Core ARMv7 Build Slave Seeks Noble Purpose
On Wed, Nov 13, 2013 at 8:28 PM, Mikael Lyngvig <mikael at lyngvig.org> wrote:> Hi Dmitri, > > I am not using any kind of cache (didn't even know of ccache). I have now > installed ccache. Perhaps ccache should be mentioned in the buildbot > document so that every buildbot owner knows about it? > > It is currently running Arch Linux ARM. if there are good reasons to > switch to something else, I'll be happy to do that, although I am generally > very happy about Arch Linux. >I love Arch, but it is probably a bit too unstable for a long-term buildbot. CC'ing Renato who might have some suggestions. -- Sean Silva> > What do you want me to build? LLVM? Clang? Both plus test suite? > > > Sincerely, > Mikael > > > 2013/11/14 Dmitri Gribenko <gribozavr at gmail.com> > >> On Wed, Nov 13, 2013 at 4:53 PM, Mikael Lyngvig <mikael at lyngvig.org> >> wrote: >> > Hi guys, >> > >> > I have this ODROID XU (quad-core ARMv7 Cortex A15 1,6 GHz) box that I >> want >> > to make available to the LLVM project. I can see that LLVM already has >> an >> > ARMv7 Cortex A9 system doing Clang, but how should this box be used, if >> at >> > all? We're talking a long-term commitment within the realm of being a >> > buildbot slave. It builds LLVM in about 40 minutes, excluding the test >> > suite. >> >> Hi Mikael, >> >> 40 minutes is a good iteration time for an ARM CPU. Are you using >> some kind of caching mechanism to speed up compilation (ccache?) If >> not, it could be even faster :) >> >> I think this buildbot will be very useful for the community. What OS >> is it running? >> >> You can find instructions on adding a buildbot here: >> >> http://llvm.org/docs/HowToAddABuilder.html >> >> I am also CC'ing Galina. >> >> Dmitri >> >> -- >> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if >> (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/ >> > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131113/9cb7fed5/attachment.html>
Sean Silva
2013-Nov-14 02:17 UTC
[LLVMdev] Quad-Core ARMv7 Build Slave Seeks Noble Purpose
On Wed, Nov 13, 2013 at 8:48 PM, Dmitri Gribenko <gribozavr at gmail.com>wrote:> On Wed, Nov 13, 2013 at 5:28 PM, Mikael Lyngvig <mikael at lyngvig.org> > wrote: > > Hi Dmitri, > > > > I am not using any kind of cache (didn't even know of ccache). I have > now > > installed ccache. Perhaps ccache should be mentioned in the buildbot > > document so that every buildbot owner knows about it? > > Possibly. > > > It is currently running Arch Linux ARM. if there are good reasons to > switch > > to something else, I'll be happy to do that, although I am generally very > > happy about Arch Linux. > > > > What do you want me to build? LLVM? Clang? Both plus test suite? > > Personally, I see more value in building LLVM, Clang, possibly lld, >I think LLD would especially benefit from testing on other architectures, since LLD is the most prone to accidentally having something architecture-dependent (e.g. assuming pointers are 64 bits, endianness, alignment, etc) and so testing it on more architectures will turn up bugs. -- Sean Silva> without test suite. This is the way that most build bots operate. > Test suite takes a long time to run, and this increases the iteration > time. > > As an example, you could look at the configuration in zorg repository > that corresponds to this buildbot: > > http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-debian-fast > > It uses CMake/ninja, which will give you the best possible iteration time. > > In order to use ccache, you need ensure that these environment > variables are set: > > CC="ccache clang" > CXX="ccache clang++" > CCACHE_CPP2=yes > export CC CXX CCACHE_CPP2 > > (Of course, you can use gcc/g++ as compilers.) > > Dmitri > > -- > main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if > (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/ > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131113/a30ad0b3/attachment.html>
Mikael Lyngvig
2013-Nov-14 02:36 UTC
[LLVMdev] Quad-Core ARMv7 Build Slave Seeks Noble Purpose
A quick question while I am adding a tiny section on ccache to the HowToAddABuilder document: Why do you set CCACHE_CPP2 to yes? From reading the manual, I get the impression that this is much slower than the default and that it should only be used with tricky compilers or when debugging. Is Clang such a tricky compiler? If so, I suppose Clang should be fixed, not the ccache configuration. -- Mikael 2013/11/14 Dmitri Gribenko <gribozavr at gmail.com>> On Wed, Nov 13, 2013 at 5:28 PM, Mikael Lyngvig <mikael at lyngvig.org> > wrote: > > Hi Dmitri, > > > > I am not using any kind of cache (didn't even know of ccache). I have > now > > installed ccache. Perhaps ccache should be mentioned in the buildbot > > document so that every buildbot owner knows about it? > > Possibly. > > > It is currently running Arch Linux ARM. if there are good reasons to > switch > > to something else, I'll be happy to do that, although I am generally very > > happy about Arch Linux. > > > > What do you want me to build? LLVM? Clang? Both plus test suite? > > Personally, I see more value in building LLVM, Clang, possibly lld, > without test suite. This is the way that most build bots operate. > Test suite takes a long time to run, and this increases the iteration > time. > > As an example, you could look at the configuration in zorg repository > that corresponds to this buildbot: > > http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-debian-fast > > It uses CMake/ninja, which will give you the best possible iteration time. > > In order to use ccache, you need ensure that these environment > variables are set: > > CC="ccache clang" > CXX="ccache clang++" > CCACHE_CPP2=yes > export CC CXX CCACHE_CPP2 > > (Of course, you can use gcc/g++ as compilers.) > > Dmitri > > -- > main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if > (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/ >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131114/63c88442/attachment.html>
Renato Golin
2013-Nov-14 09:27 UTC
[LLVMdev] Quad-Core ARMv7 Build Slave Seeks Noble Purpose
On 14 November 2013 02:13, Sean Silva <chisophugis at gmail.com> wrote:> I love Arch, but it is probably a bit too unstable for a long-term > buildbot. CC'ing Renato who might have some suggestions. >Mikael, Sean, 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. 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. 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. Normally, the rules of thumb for ARM bots: * 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. * 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. * 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). * Create boot scripts to check for those problems, plus set the CPU scheduler to "performance" on ALL CPUs. This eases most CPU problems. * 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 * 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 * 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. * Make sure you have a decent power supply (dozens of dollars worth) that can provide *at least* 4amps. 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. 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. 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. cheers, --renato -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131114/1ef1a19a/attachment.html>
Reasonably Related Threads
- [LLVMdev] Quad-Core ARMv7 Build Slave Seeks Noble Purpose
- [LLVMdev] Quad-Core ARMv7 Build Slave Seeks Noble Purpose
- [LLVMdev] Quad-Core ARMv7 Build Slave Seeks Noble Purpose
- [LLVMdev] Quad-Core ARMv7 Build Slave Seeks Noble Purpose
- [LLVMdev] Quad-Core ARMv7 Build Slave Seeks Noble Purpose