Benchmark automation - TCWG-360 [5/10]
* Flushed the rest of the easy stuff from my 'small fixups' to my
'staging' branch
* Started rolling generic patches from my backport-benchmark branch into gerrit
* Prodded at the prototype backport-benchmark job until the pieces worked
** Ran out of time to try an end-to-end run
* Thought a little about permissions for access to source/results
* Use of nc.traditional appears to have introduced a race condition
catomics - TCWG-436 [2/10]
* Tried a run on A15 - same story as A57, good improvement on g8 libc
ubenchmark that doesn't translate into SPEC subset
* Performance counting the ubenchmark suggests variation around cache
accesses on the catomic vs not-catomic code, didn't have any time to
think about what, if anything, this means
Misc [3/10]
* Featuring an unusual level of ARM interruption
* Especially concerns about change from multiarch to non-multiarch
sysroot in binary releases
=Plan=
Confirm backport benchmarking working, roll remaining generic patches
into gerrit
Investigate the nc.traditional race
Add a retry loop around LAVA boot (occasionally see LAVA-fail here)
Create unit tests
Follow up on (non-)multiarch sysroot issue
=== Progress ===
* Get TSAN building for Aarch64 on 42-bit VMA systems. (4/10) (-pie mode only)
Expected Passes : 253
Expected Failures : 2
Unsupported Tests : 1
Unexpected Failures: 13
The failures are categorized into three types.
(1) setjmp and longjmp implementation in assembly needs to written for Aarch64 .
ThreadSanitizer :: longjmp.cc
ThreadSanitizer :: longjmp2.cc
ThreadSanitizer :: longjmp3.cc
ThreadSanitizer :: longjmp4.cc
ThreadSanitizer :: signal_longjmp.cc
(2) FATAL: ThreadSanitizer: failed to intercept pthread_cond_init. I
need to debug and see why this happens.
ThreadSanitizer :: bench_mutex.cc
ThreadSanitizer :: cond.c
ThreadSanitizer :: cond_cancel.c
ThreadSanitizer :: cond_race.cc
ThreadSanitizer :: cond_version.c
ThreadSanitizer-Unit :: rtl/TsanRtlTest/Posix.CondBasic
(3) TLS descriptions ThreadDescriptorSize (), GetTls () and ThreadSelf
() defintions are needed for aarch64.
tls_race.cc
tls_race2.cc
Some ptrace defintions are needed PTRACE_GETREGS, PTRACE_SETREGS
PTRACE_GETFPREGS, PTRACE_SETFPREGS for sanitizer, but they are not
implemented for Aarch64. I am planning to switch off that code in
TSAN.
* ASAN/TSAN documentation. ASAN documentation complete. TSAN in progress. (4/10)
* Emails, meetings. (2/10)
* Linaro 1-1 with christophe, Ryan.
* AMD meetings/event, 1-1 with AMD manager, status meeting.
* GCC mailing list.
===Plan ===
Complete TSAN documentation.
Analyze remaining failures for TSAN.
Push LLVM tree to git.linaro.org for handover.
* Backports (3/10)
- Backports validated and commited to SVN for April release
- 219724 - Add a new scheduling description for the ARM
Cortex-A57 processor
- 219746 - Fix broken 219724
- 220103 - A57 pipeline model
- 220399 - Add support for -mcpu=cortex-a72 and
-mcpu=cortex-a72.cortex-a53
- 220413 - Add support for -mcpu=cortex-a72
* Illness (6/10)
* Misc (1/10)
- Conference calls
== Next week ==
- Begin backports for May release
- Continue TCWG 110 investigation
== This Week ==
TCWG-619:
* Compiled chromium on ARM without LTO with following hack to resolve
error: undefined reference to 'clock_gettime', version 'GLIBC_2.17'
- chromium uses prebuilt sysroot in
src/chrome/installer/linux/debian_wheezy_arm-sysroot
and it has libc-2.13.so, libc.so.6 is symbolic link to libc-2.13.so in
the sysroot. However it appears minimum libc-2.17 is required (version
'GLIBC_2.17'). I replaced libc-2.13.so by abe-built
libc-2.20-2014.11-1-git.so, and symlinked libc.so.6 to
libc-2.20-2014.11-1-git.so and that worked (for non LTO build).
Curiously I didn't require to do this for building chromium with
linaro prebuilt toolchain.
* Found a way to disable LTO for building lib/libblink_web.so by manually
removing -flto from web_blink.ninja and Webkit/source/core/*.ninja,
which worked.
* Chromium non LTO build issues on ARM:
a) Fails with gcc-5 due to error in chromium:
https://code.google.com/p/chromium/issues/detail?id=340312
To compile chromium, I applied a patch to cp/typeck2.c to shut
narrowing conversion errors (ideally the fix should be to chromium).
b) ld.bfd (linaro branch) fails with undefined references to many functions
in libattr1: http://pastebin.com/ju4SCDSE
Not sure if this is ld.bfd bug, or me building it wrongly.
Haven't tested yet with trunk ld.bfd.
Works fine with gold.
* Target independent Chromium LTO issues with trunk
a) Top-level asm and LTO (PR57703) - This appears to be not supported.
* Chromium LTO issues on ARM with trunk:
a) ICE in lib/libblink_web.so (PR65576).
b) Target specific builtin not available: http://pastebin.com/2ANsEyMn
Seems related to:
https://code.google.com/p/chromium/issues/detail?id=408997
c) ICE during LINK chrome: http://pastebin.com/DpjJ5M7g
d) GNU ld appears to segfault compiling in LTO mode.
* Chromium LTO issues with linaro-4.9 branch:
a) ICE elf section out of range (PR57208) - fixed in trunk
b) gold - Ran out of file descriptors: fixed in trunk.
Seems the following patch which is in trunk but not in linaro branch fixes it:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blobdiff;f=gold/…
I tried to backport it but got errors, possibly depends on other commits.
* v8 ARM LTO issues:
- Assembly error - offset out of range (PR65778). Possibly invalid bug.
== Next Week ==
- Create reduced test case for PR65576
- Figure out how to disable LTO for building lib/libblink_web.so in .gyp files
- PR49551
- Exams on 20th and 24th April.
# Progress #
* arm gdb, [6/10] many fails are fixed in the last two weeks.
1034->153 FAILs of -marm, 1008->143 FAILs of -mthumb, and 627->71
FAILs of -mfloat-abi=soft/-marm/-march=armv4t. There are 367 FAILs
in total, and 205 FAILs are about reverse debugging, which has been
broken for many years.
** TCWG-769, patch is committed upstream.
** TCWG-567, two patches are committed, and another two patches are in
progress. Existing HW watchpoint resource counting in GDB doesn't
work well on arm boards which doesn't have HW watchpoint support.
** TCWG-509, many arm gdb test fails are fixed. In progress.
* FSF GDB patch review. [3/10]
Test Pedro's "all-stop on top of non-stop" patch series V3 on both arm
and aarch64. Results are much better.
* Misc, meeting. [1/10]
# Plan #
* Fix test fails for arm and aarch64 gdb.
* Upstream patches review.
--
Yao
Hi,
I (and several other people) am (are) having trouble to build busybox with the latest aarch64-linux-gnu 2014.11 binaries we got from linaro.org.
It seems none of the built-in library search paths (gcc -print-search-dirs) allow to find crt[1i].o. They seem to be expected in a multiarch location but aren't (libc/usr/lib64). We're working around this with a symlink. Is this a bug? Have you seen similar issues?
Here's a failing command-line and the associated error message:
/path/to/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -Wall -Wshadow -Wwrite-strings -Wundef -Wstrict-prototypes -Wunused -Wunused-parameter -Wunused-function -Wunused-value -Wmissing-prototypes -Wmissing-declarations -Wno-format-security -Wdeclaration-after-statement -Wold-style-definition -fno-builtin-strlen -finline-limit=0 -fomit-frame-pointer -ffunction-sections -fdata-sections -fno-guess-branch-probability -funsigned-char -static-libgcc -falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 -fno-unwind-tables -fno-asynchronous-unwind-tables -Os -static -o busybox_unstripped -Wl,--start-group applets/built-in.o archival/lib.a archival/libarchive/lib.a console-tools/lib.a coreutils/lib.a coreutils/libcoreutils/lib.a debianutils/lib.a e2fsprogs/lib.a editors/lib.a findutils/lib.a init/lib.a libbb/lib.a libpwdgrp/lib.a loginutils/lib.a mailutils/lib.a miscutils/lib.a modutils/lib.a networking/lib.a networking/libiproute/lib.a networking/udhcp/lib.a printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a sysklogd/lib.a util-linux/lib.a util-linux/volume_id/lib.a archival/built-in.o archival/libarchive/built-in.o console-tools/built-in.o coreutils/built-in.o coreutils/libcoreutils/built-in.o debianutils/built-in.o e2fsprogs/built-in.o editors/built-in.o findutils/built-in.o init/built-in.o libbb/built-in.o libpwdgrp/built-in.o loginutils/built-in.o mailutils/built-in.o miscutils/built-in.o modutils/built-in.o networking/built-in.o networking/libiproute/built-in.o networking/udhcp/built-in.o printutils/built-in.o procps/built-in.o runit/built-in.o selinux/built-in.o shell/built-in.o sysklogd/built-in.o util-linux/built-in.o util-linux/volume_id/built-in.o -Wl,--end-group -Wl,--start-group -lm -Wl,--end-group
==========
/work/integration/envs/latest/tools/gcc/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/4.9.3/../../../../aarch64-linux-gnu/bin/ld: cannot find crt1.o: No such file or directory
/work/integration/envs/latest/tools/gcc/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/4.9.3/../../../../aarch64-linux-gnu/bin/ld: cannot find crti.o: No such file or directory
collect2: error: ld returned 1 exit status
make: *** [busybox_unstripped] Error 1
Thank you!
Regards,
Kévin
-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782
== Progress ==
Bank Holiday [2/10]
Backports [2/10]
. started and abandoned backport of 217440 due to unbackported dependent patch
. FSF 4.9 branch is missing from our git mirror - this is still
wasting time after 7 months
Vectorization (TCWG-735) [3/10]
Benchmarking [1/10]
. started 2015.03 benchmarking
Misc [2/10]
raspberry pi config
calls/mailing lists
== Progress ==
LLDB development
-- Patch update, test and re-submission native Linux register context
for Arm. [1/10] [TCWG-650]
-- Patch update, test and re-submission POSIX register context for
Arm. [1/10] [TCWG-755]
-- Tested lldb armhf native build on ubuntu utopic, build fine but
lacks of VFP support is a blocker. [1/10] [TCWG-647]
-- Initial investigation on hardware watchpoint support for lldb arm
linux. [2/10] [TCWG-770]
-- Initial investigation on hardware watchpoint support for lldb
aarch64 linux. [2/10] [TCWG-771]
-- Fix lldb build and test environment for arm and aarch64. [2/10] [TCWG-651]
Miscellaneous [1/10]
-- Meetings, emails, discussions etc.
== Plan ==
LLDB development
-- Progress towards hardware watchpoint support for lldb arm linux.
-- Progress towards hardware watchpoint support for lldb aarch64 linux.
-- Bug fixing, patch reviews etc
== Issue ==
* none
== Progress ==
* [TCWG-762] - GCC Maintenance (9/10)
- PR65648 (ARMv6 IRA clobbering issue): Worked on a testcase that exhibit
the issue and don't conflict with various multilib configs.
Generic part of the
patch accepted, ARM related part needs to be reviewed by a ARM maintainer.
- PR65710 (LRA ICE in Thumb1): Proposed a quick workaround for this bug,
Proper fix was committed by Vlad.
- PR65729 (LRA ICE on arm-linux-gnueabhif): Proposed a fix, which is a stage1
material. Issue workarounded on trunk to avoid extensive
validation for the RC.
* [TCWG-702] Merge FSF 4.9 branch
- Merged up to revision 221939
- Will do another one to include needed LRA fixes.
* Misc (1/10)
- Various meetings
== Plan ==
- FSF branch merge #2
- Back on a Thumb2 insn fix
catomics - TCWG-436 [4/10]
* Fiddled with SPEC runs with unstripped binaries on tiny Juno discs
* Got a run for the interesting subset of SPEC, non-atomic catomics
still show no effect
* Tried a few catomics variations with the glibc malloc
microbenchmark, here non-atomic catomics show a significant effect
* Tried firing a perf shotgun at the malloc microbenchmark to see if
it suggests anything - results pending
Benchmark automation - TCWG-360 [3/10]
* Fixed Jira benchmarking
* Flushed some of the backlog out of my 'small fixups' branch
Misc [1/10]
Holiday [2/10]
catomics - TCWG-436 [4/10]
* Fiddled catomics to not use atomics at all, set off a new SPEC run
* Not using atomics seems wrong in general, but OK for malloc/free
Benchmark automation - TCWG-360 [1/10]
* Quick look at Tyler's LAVA console streamer
* Ported benchmark scripts to work on Debian
** Turns out there are two versions of netcat and Debian and Ubuntu
default to different ones
* Checked lab transition plan for benchmark-affecting points
Misc [1/10]
Holiday [4/10]
== Progress ==
* Public holiday (2/10)
* Sick (2/10)
* TCWG-620 (4/10)
- regression tested a version of patch
- few regressions lead to reworked it
- have a version that passes regression
* TCWG-753 and Bug 1373 (1/10)
- Al the Back-ports committed
- closing the card
* Misc (1/10)
- gcc-patchs and gcc-bugs list
== Plan ==
* Start with the RA issue during vectorization
* TCWG-521
== This Week ==
* TCWG-619
* V8
- aarch64 v8 LTO build with different options
- found workaround for v8 LTO build on ARM
* Chromium
- statically linking libstdc++ works for building chromium with
linaro-4.9-branch
- patched cp/typeck2.c to shut up on narrowing conversion errors to build
chromium with master branch.
- weird issue, chromium build hangs consistently at:
AR obj/components/libomnibox.a
due to patch to WebGLRenderingContextBase.idl, reverting that worked fine.
* PR49551
- git bisect shows ICE cannot be reproduced after r221297.
* Misc
- Preparatory Leave from college, semester ended.
== Issues ==
- ABE bugs: 1362, 1439, 665
- Can't access BlueJeans from Firefox on pc, gets stuck on
"Initialization" window.
== Next Week ==
- Complete LTO build v8 with different options on ARM, AArch64 and x86.
- Chromium LTO build on x86 with different LTO options.
- Chromium LTO and non LTO build on ARM.
- PR 49551.
UK Holiday on 06 April [2/10].
# Progress #
* arm gdb test fail fixing. [4/10]
** TCWG-767, patch is committed.
** TCWG-769, patch is posted upstream for review.
** TCWG-765, triaged this issue. It is a test case or test harness
bug, rather GDB's. Need more time to investigate how to run "echo"
command on remote target through dejagnu.
** Fix a bug in my ARM displaced stepping code written in 2011.
** TCWG-509, patch is approved upstream, but will be combined into
other's patches.
** TCWG-567, Skip incorrect tests in gdb.base/watchpoint-reuse-slot.exp
for arm. Patch is committed.
* FSF GDB patch review. [3/10]
Test Pedro's "all-stop on top of non-stop" patch series on both arm
and aarch64. Some regressions are found and exchange thoughts on
them.
* meeting, [1/10]
# Plan #
* Test fails fixing for arm and aarch64 gdb.
* Upstream patches review.
--
Yao
== Progress ==
* Public holiday (2/10)
* zero/sign extension - TCWG-521 (2/10)
- Looked at profile results
- Starting aarch64 benchmarking
* TCWG-620 (2/10)
- Ran into missing pattern issue
- Discussed it with Maxim and Jim
* TCWG-753 (2/10)
- orted few issues with my backporting set-up after talking to Yvan
- Started all the backports
- Backport testing in progress
* Bug 1373 (1/10)
- Backport testing in progress
* Misc (1/10)
- gcc-patchs and gcc-bugs list
== Plan ==
* TCWG-620 and TCWG-521
Holiday: 03/04 [2/10]
# Progress #
* aarch64 gdb, 8 FAILs are fixed but 6 FAILs are introduced by the new
test case. [2/10]
** KFAIL two tests in gdb.threads/no-unwaited-for-left.exp for remote
target. Done.
* TCWG-509, arm gdb, 1034 FAILs of -marm, 1008 FAILs of -mthumb, and
627 FAILs of -mfloat-abi=soft/-marm/-march=armv4t. [4/10]
** Look at fails in gdb.threads/non-stop-fair-events.exp. Root cause is
almost identified, and patches are being tested.
* TCWG-757, FSF GDB, [1/10]
** Review two committed patches causing some problems for arm. Will
raise questions on them later. Looks I need to allocate more time on
upstream reviewing to prevent these arm-unfriendly patches go in.
* meeting, [1/10]
# Plan #
* Take more care on arm gdb.
* Upstream patches review, especially on all-stop-on-top-of-non-stop
patch set.
* Fix the rest of 10+ fails in aarch64 gdb.
--
Yao
== Issue ==
* none
== Progress ==
* [TCWG-762] - GCC Maintenance (9/10)
- Linaro bugzilla 1399 identified as an upstream bug (PR65647)
Now fixed on trunk and backported in FSF 4.9, will be in our
branch in the coming branch merge.
* [TCWG-699] Backports
- Committed them into our SVN FSF repo.
* Misc (1/10)
- Various meetings
== Plan ==
- FSF branch merge
- Back on a Thumb2 insn fix
== Progress ==
LLDB development
-- Completed implementation and submited native Linux register context
for Arm upstream [3/10] [TCWG-650]
-- Completed implementation and submitted POSIX register context for
Arm upstream [3/10] [TCWG-755]
-- Fixing LLDB build and dev environment issues [1/10]
Miscellaneous [3/10]
-- 3rd April Swap day for 23rd March Public Holiday
-- Meetings, emails, discussions etc.
== Plan ==
LLDB development
-- Bug Fixing and Test result improvement.
-- Patch reviews and upstream commits.
Miscellaneous
-- Try LLDB armhf builds and figure out a way to do gcc 4.8 softfloat build.
4 day work week (03-Apr good Friday) (2/10)
* ASAN 32bit allocator failures on amd-01 (4/10)
Completed analyzing failures. Sent a patch to Address sanitizes
community for review. Applied patch to latest LLVM trunk and ran
tests. found one failure. But it was due to the test case assuming
that return value from "getpwnam_r" all is always zero. Fixed the
test case by removing the assert and all LLVM tests passes.
[ Renato tested the patch on APM (39 bit VA) ].
* Again there is some discussion in GCC bugzilla on deciding which
allocators to use for Aarch64 42 bit VA*.
I have a patches for both allocators and posted it to ASAN group
64 bit allocators wont work on juno. So for ASAN there is a need to
have some kind of dynamic address space detection mechanism. Set the
allocators type and required mappings at runtime for Aarch64.
But that needs to be decided by ASAN group whether to do that or use
my 32 bit allocator patch . I am planning to stop it here and wait as
suggested by renato.
* Get TSAN building for Aarch64 on 42-bit VMA systems. (2/10) (-pie mode only)
Applied patch that I had on GCC tree on LLVM trunk. Build failed need
to set kVdsoBeg and kMadviseRangeBeg. I set some default value to
allow TSAN build to complete. right now clang does not recognize
aarch64 target for aarch64 although I enabled it under TSAN. looking
at the issue.
* Emails, meetings. (2/10)
* Linaro 1-1 with christophe, Ryan, status meet
* AMD meetings/event, 1-1 with AMD manager, status meeting.
* GCC mailing list.
== Plan ==
* Get TSAN building for Aarch64 on 42-bit VMA systems. (-pie mode only)
* Document TSAN/ASAN work and patch details in wiki.
== Issues ==
* ASAN patch cannot be up streamed unless we decide on allocator to use.