Folks,
This week I acquired an ODroid U2, which is an Exynos4 (quad-core A9 at
1.7GHz each), 2GB RAM, and a massive heat-sink (which even has power supply
for a fan).
I ran some ball-park compilation time benchmarks, comparing to the
Chromebook, and the results are interesting. The ODroid with an SDCard
(32GB Sandisk Ultra HC-1) is faster than the Chromebook with an external
USB 3.0 / SATA hard-drive.
LLVM Build Times (min)ChromebookODroidODroid-USBBuild1008180Check-all545
Test-suite424038
The test-suite and check-all results are statistically equivalent, but the
build time is better because of the number of CPUs, but not twice better.
Disk is more of an issue on the test-suite, which can be clearly seen above
(-j2 for Chromebook, -j4 for ODroid, but same time).
My USB stick is not the best, so that doesn't mean much. Also, I can't get
the ODroid to even recognize the SATA disk when I plug in because of the
power it needs. So, we'll have to do with those numbers. I'm using the
ODroid Ubuntu image (based on 13.04), which worked out of the box (except
the SATA disk and HDMI).
I'll let the board run for a week at home (room temperature ~ 25C) as a
buildbot, with the fan on all the time and see if it copes with constant
load for such a long time. Pandas couldn't do that, Chromebooks can.
Since the ODroid U2 is a dev board, which has a small form-factor, can be
turned on/off remotely and won't sleep when the lid is closed, has a decent
Ethernet port (Chromebook's wired adapters are *horrible*, and having
dozens of Wireless clients in the lab is just not possible), and don't have
the risk of being turned off by someone else, like the Calxedas, I'd say
that it might end up as the best buildbot yet. (The new XU is an Exynos5
octo-core monster, might be even better).
After the initial week load test, if all goes well, I want to bootstrap GCC
and run some tests on it, so I'll be calling for volunteers to help me.
cheers,
--renato
== Progress ==
* 2013.08 4.8 release:
-- merged many backports
- sorted a few dependencies problems between patches
- spawned all intermediate jobs (ie merge commits) to make sure
there was no regression
* 2013.08 4.7 release:
- made a trial branch merge to confirm that all builds succeed
(Matthias reported a build failure for aarch64)
* trunk validation:
- continued to work on internal validation of trunk using our
compute farm (build+cross validation) to help catch regressions early.
== Plan ==
* 2013.08 4.8 release:
- final backports
- actual release
* Resume work on aarch64 frame layout.
* Resume work on disabling peeling.
Last week
* tried cbuildv2 and sent Rob some bug fixes, bug reports, and feature requests
* ported previous testsuite fixes to trunk
This week
* send patch to gcc-patches
* find the next thing to fix
Issues
* need to take desktop PC back to supplier to fix CPU overheating
== Progress ==
* Finished gdb catch syscall support work and performed testing on ARM
and x86. Trying to eliminate a couple of testsuite failures on arm.
* Short week due to Eid Holidays.
== Plan ==
* Evaluate arm catch syscall support patch recently submitted by some
other developer.
* Work on reverse debug support on arm.
* Independence Day Public Holiday on 14th August.
* Getting documents ready and attend UK Visa appointment on 15th August.
== Progress ==
* Libssp support for AArch64 TCWG 23:
Patch was tested for aarch64-none-elf and passed. Sent for internal review.
Looking at supporting stack guard in glibc. Understanding TCB data structure
and looking at ports on how they initialize the stack guard in th TCB.
* TCWG-20 gprof support patches.
Reply to Marcus comments and rework and code mcount routine in assembly.
Ref: http://gcc.gnu.org/ml/gcc-patches/2013-08/msg00148.html
== Plan ==
* Continue Libssp support for AArch64 in GCC and glibc TCWG-23
* Update review comments and upstream gprof patches
== Issues ==
* LTO/PGO work stopped now since libssp support priority is more
Misc
------
15-August Public holiday in India.
== Issues ==
* No idea to fix eglibc backtrace issue.
== Progress ==
* Commit (FSF 4.8 and trunk) the fix for lp: 1189445/1208676.
* Enhance Linaro crosstool-ng:
- Fix gcc respin version issue in README.
- Update big-endian multiarch triplet name.
* Investigate eglibc backtrace issue:
- Test case: linaro-crosstool-ng/contrib/linaro/tests/misc/sort.c.
- gdb report: Backtrace stopped: previous frame identical to this
frame (corrupt stack?)
- Try to rebuild eglibc with gcc 4.7 and -gdwarf-2. But still not work.
* Conditional compare
- Send for Linaro internal review.
- Workaround a new fail case.
- Test the prototype on x86-64 port.
== Plan ==
* Conditional compare RFC review.
== Panned leaves ==
* Aug. 19-20: annual leaves
* Sept. 3-5: ARM internal meeting.
== Progress ==
* spec2k comparison between ARM and x86
- Read papers/documents that list gcc optimization/problem for arm
- Acovea runs fails in Chromebook; Looking into it
- continuing with analysing individual results
* VRP based zero/sign extension elimination
- Final checks ongoing before posting the patch
== Plan ==
* Continue with spec2k comparison between ARM and x86
* post VRP based zero/sign extension elimination patch
== Misc ==
* Was on Leave Thursday/Friday (3 Day week)
* Watched Cauldron 2013 archives
== Progress ==
* Lots more malloc work, slowly progressing
* Created a patch queue in preparation for glibc coming out of freeze
* New strlen code
* Other bugfixes and minor improvements
== Issues ==
* None
== Plan ==
* Move house (Wednesday and Thursday off)
* Submit glibc patches
* Get malloc implementation functionally complete
--
Will Newton
Toolchain Working Group, Linaro
Progress:
* v7 mach-virt upstreaming:
** sent out mach-virt patchset for v7
** thinking/discussions about how to handle the host maybe not being
able to provide a guest CPU; this has converged on a sensible design
based around using "-cpu host" to mean "please give me a VCPU that's
the same as the host's CPU"
** review of the OVS v2 aarch64-kvm-support patchset
* QEMU maintenance:
** rebased qemu-linaro on upstream master
** fixed some minor bugs revealed by clang warnings
** wrote and sent out a cleanup patchset which removes the now
unnecessary 'arm_pic' shim around the CPU
** implemented debug logging of exceptions/interrupts for ARM TCG
(helpful for identifying when a guest has gone into an infinite
loop of taking exceptions)
-- PMM
== Progress ==
* Cbuildv2 can now do a full cross toolchain build ala crosstool-ng.
* Cbuildv2 integrated to work under LAVA team's Jenkins for
automated cross builds.
* Cbuildv2 now allows one to select the version of each toolchain
component.
== Plans ==
* Add support to Cbuildv2 to run 'make check' and create XML files
for MySQL and Junit (which Jenkins uses).
* Add newlib building support to Cbuildv2 as part of "--build all".
== Leave ==
* Off to climb Grand Teton in Wyoming, taking long weekend.
- rob -