= Progress ==
* Core mark benchmark and report for PGO and PGO + LTO (TCWG-544) (6/10)
Going by CPU cycles adding LTO gains in x86 and degrades in Aarch64 .
Looked at hot functions and examining assembly the code generation seems to
be same. X86_64 does alignment of code. Also branch misses decreased in
X86_64 compared to Aarch64 with -flto + -O3.
Also profiled for instruction counts on Aarch64 with linaro compiler. These
profiles say that we are executing less instructions with LTO and PGO for
Aarch64.
* PR 63173- Reproduced the issue and changed the test case to work with
trunk. Now Looks like someone else has a patch for it. (1/10). so will
work on other bugs.
* Misc [3/10]
Internal work, emails, AMD meetings and 1-1 with inline manger.
1-1 with Maxim, christophe and 1-1 with ryan
== Plan ==
* Coremark benchmark and profiling.
Investigate trunk degradation for O3+ PGO + LTO and report.
== leaves ==
Diwali holiday (22-24)
== Issues ==
* Still no network at home and will not be fixed before at least one week :(
== Progress ==
* GCC 4.9 2014.10 (8/10)
- Merged FSF 4.9 branch
- Released Linaro 4.9 2014.10
* Misc: (2/10)
- Various meetings.
== Plan ==
* Analyse some failures that occur only in --enable-release.
== Progress ==
Catch up with work after return from Eid ul Adha and Annual Holidays [7/10]
* Hong Kong visa application
* UPS repairs and office cleanup
* Catching up with work, gdb roadmap and open/running cards.
* Emails/Patch scrolling/Meetings etc
* Sick day off on Monday
GDB Tracepoints/Fast Tracepoints support on arm [TCWG-480] [3/10]
* Getting re-synced with code where I left.
== Plan ==
Further progress on GDB Tracepoints/Fast Tracepoints support on arm [TCWG-480]
Investigate possibility of AArch64 trace-point work without
availability of hardware.
Check for GDB status on ARM and AArch64 vs x86.
== Progress ==
* Zero/sign extension elimination with widening types (TCWG-546 - 9/10)
- Fixed ICEs and now can build the cross compiler and do the regression
testing with qemu
- some test-cases are failing due to condition that rely on overflow;
this need fixing.
- Bootstrapping on AArch64 still fails (but much later than previously).
- Verified CRC is optimized
* Improve block memory operations by GCC (TCWG-142 - 1/10)
- Looked at the changes since the card was drafted
== Plan ==
* Continue with Zero/sign extension pass.
== Progress ==
* GCC trunk/4.9 validation (CARD-647) (3/10)
- committed testsuite patch to test if -shared is supported
- forcing -mword-relocations flags when compiling testglue works on
my Ubuntu machines, but does not in the Compute Farm RHEL5 servers.
- investigating why, all the more as it made me incorrectly report
failures in the 4.9 branch
* Validation (2/10)
- compared cbuild2 schroot-test branch and master
the results of this manual run does not seem to match Jenkins results
* Neon intrinsics tests (1/10)
- fixed .exp harness to support parallelization
- looking at how to pre-support fp16, will probably skip it for now,
and add dedicated tests later
* AArch64 sanitizer (1/10)
- GCC trunk seems to need to cherry pick a sanitizer patch when
building using recent kernel headers
- tried to use Jenkins to build trunk and trunk+cherry-pick, but the
results are not consistent
needs more investigation
* Misc (3/10)
- calls, meetings, irc
== Next ==
* GCC trunk/4.9 cross-validation
- fix -mword-relocations support
- investigate abi_check test
* AArch64 sanitizer
* Neon intrisics tests update
* cbuild2:
- analyze previous results (mostly check the logs....)
- look at backport-test script + logs
Short next week: off Wednesday/Thursday
== Progress ==
* Respin of malloc single-thread optimizations (4/10, TCWG-436)
- Create a generic header, include AArch64 in series
* Further work on malloc app benchmark framework (4/10, TCWG-441)
- Cleaned up, improved reliability, added comments
- Committed to cortex-malloc.git
* Email, meetings, etc. (1/10)
* Upstream work (1/10, CARD-341)
- glibc patch review and pings
- Look into some bug reports and testsuite failures
== Issues ==
* Electricians and gas engineers turning off power/heating at various points
== Plan ==
* Hopefully get some resolution of single thread atomic stuff for glibc
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* Linux Plumbers (6/10)
- Attended conference, Android/Tools/LLVM tracks
- Presented 2 talks (GCC+LLVM and LLVM+ARM)
* Buildbots (TCWG-76 2/10)
- Made the Compiler-RT bot green! Now on to the libc++ one
* Background (2/10)
- Code review, meetings, discussions, etc.
- Internet upgrade, re-wiring the house, building works
== Plan ==
* Add libc++abi buildbot
* Follow up on the fpu issues on Clang/asm
FYI.
The whole thread is available here:
http://article.gmane.org/gmane.linux.ports.arm.omap/119412
---------- Forwarded message ----------
Date: Thu, 16 Oct 2014 01:18:01 +0100
From: Russell King - ARM Linux <linux(a)arm.linux.org.uk>
To: Peter Hurley <peter(a)hurleysoftware.com>
Cc: Nathan Lynch <Nathan_Lynch(a)mentor.com>,
David Laight <David.Laight(a)ACULAB.COM>,
Otavio Salvador <otavio(a)ossystems.com.br>,
Linus Torvalds <torvalds(a)linux-foundation.org>,
Nicolas Pitre <nico(a)fluxnic.net>,
Linux OMAP Mailing List <linux-omap(a)vger.kernel.org>,
linux-arm-kernel(a)lists.infradead.org
Message-ID: <20141016001801.GQ12379(a)n2100.arm.linux.org.uk>
Subject: Re: [PATCH] ARM: Blacklist GCC 4.8.0 to GCC 4.8.2 - PR58854
On Wed, Oct 15, 2014 at 06:18:30PM -0400, Peter Hurley wrote:
> On 10/15/2014 05:56 PM, Russell King wrote:
> > I was in two minds whether to include 4.8.3 as Linaro released a buggy
> > toolchain which identifies itself as 4.8.3, but I decided that's also
> > a distro problem. IMHO Linaro should really think about taking that
> > compiler down given the seriousness of this bug and it being
> > indistinguishable from the fixed stock version.
>
> Maybe it's unfair to blame them; Linaro just took a snapshot and
> released what was there.
>
> If gcc is going to retain the "change release number then add all the
> new features" model, some kind of prerelease indicator would help
> eliminate this kind of problem. And that indicator should be both
> a preprocessor define and parseable from the command line :)
My comment is not to attribute blame to them, my comment is entirely
on a technical level.
My reasoning is that the bug is just as prevalent in userspace, though
it will occur less often. Any program which uses signal handlers is
a candidate for exactly the same kind of corruption, since you can
receive that signal between the point that the stack pointer is
modified and the function loads the parent context.
Of course, there are ways around that: don't use signal handlers, or
if you do, use alternate signal stacks. Neither of those can be
guaranteed for any program though.
So, let me put this another way: a compiler with this bug is _completely_
unsuitable for use for compiling programs for use under the Linux
kernel _as well_ as the Linux kernel itself.
The difference is that the Linaro compilers come with an expectation
that they are usable on ARM... whereas stock versions cover a lot more
and so the ARM arch is probably very small number of their users.
Hence why I recommend that Linaro takes down their buggy compiler.
Their 4.8.3 version should not be used *anywhere*, just the same as
the stock 4.8 to 4.8.2 inclusive should also not be used anywhere on
ARM either.
== Progress ==
Neon vld/vst [4/10]
. submitted v2 of vldN_lane patch (respin of patches 1&2 only)
. continued ML discussion about patches 3&4.
Tried out jenkins/cbuild infrastructure [1/10]
. hardest part was getting git.linaro.org/people to hold my test tree
. https://wiki.linaro.org/Platform/Systems/GitServer#Creating_new_repositories
. if it doesn't work, ask ITS to check you are in the git-users group
. still need to find where the results go.
bug 403/418 wrong line number on neon error messages [2/10]
. experimented with a couple of ways to solve this
bug 715 [2/10]
. investigated and closed as only affects deprecated old ABI
Misc [1/10]
== Plan ==
Benchmark 2014.10 release
Continue bug 403/418 work
== Progress ==
* Further work on malloc single-thread optimizations (2/10, TCWG-436)
- Still pending some resolution on direction from upstream
* Upstream work (1/10, CARD-341)
- Patch review
- Applied binutils patch for missing AArch64 relocs
* Further work on malloc app benchmark framework (2/10, TCWG-441)
- Found a possible way to get memory statistics without hacks, should improve
speed and reliability of the benchmark framework
* Email, meetings, etc. (1/10)
* Thursday and Friday annual leave (4/10)
== Issues ==
* None
== Plan ==
* Get malloc app benchmark framework into shape and committed
* Figure out direction for malloc single thread optimization work
--
Will Newton
Toolchain Working Group, Linaro
cbuild2 benchmarking - TCWG-360 [7/10]
* Fixed/worked around some especially resilient bugs
** Mostly relate to running benchmarks through LAVA, which may be less
important in the near future
* Wrote a doc
* Upstreamed some code that works about as I want it to
Meetings/mail/etc [3/10]
=Plan=
cbuild2 benchmarking
* Work through TODO list from connect
* Tidy up behaviour on shutdown
* Storage issues
* (Maybe) persuade a LAVA Juno to work for benchmarking or configure spec
Hopefully pick up something else
= Progress ==
* Core mark benchmark and report for PGO and PGO + LTO (4/10)
More profiling and collected numbers and reported. JIRA card TCWG-181 updated.
Adding LTO gains in x86 and degrades in Aarch64 .
* Addressed machine bring up issues, debugged and installed necessary
packages for both x86 and Aarch64 (1/10)
* PR 62308 - Analyzed RTL dumps. Looks to be similar issue solved in
trunk. Git bisected and found the passing revision in trunk. posted my
comments. waiting for feedback. (2/10)
* Misc [3/10]
Internal work, emails, AMD meetings and 1-1 with inline manger.
1-1 with Maxim, christophe and 1-1 with ryan
Linaro status call
== Plan ==
* Coremark benchmark and profiling for PGO and PGO + LTO. Investigate
LTO degradation causes and report.
* Investigate PR 63173
* Setup Cbuildv2 build in internal machine.
== Issues ==
Experiencing Hardware connection issues and kernel instability issues
with my local machines.
== Holiday ==
* Public Holiday (2/10)
* Leave (4/10)
== Progress ==
* Zero/sign extension elimination with widening types (4/10)
- Started experimented with a pass for widening type.
- Verified for one simple test-case.
- Bootstrapping is failing and looking into it.
== Plan ==
* Continue with Zero/sign extension pass.
== Progress ==
* Automation Framework (CARD-1378 1/10)
- Planning LAVA server for new TCWG gateway
* Buildbots (TCWG-76 7/10)
- Fixing Compiler-RT buildbot (from 69 to 4 failures)
* Background (2/10)
- Code review, meetings, discussions, etc.
- Re-testing a change in inst combine that broke bots before
- Reviewing CMake builder for Windows builds
- Discussing clang-reformat on lld's codebase
== Plan ==
* Continue fixing the Compiler-RT buildbot
* Present 2 talks at Linux Plumbers
== Progress ==
* GCC trunk/4.9 cross-validation (CARD-647) (2/10)
- trunk build for aarch64 reported to fail because libsanitizer
requires an update. Pinged libsanitizers maintainers but got no answer
so far.
- posted testsuite patch to test if -shared is supported
- managed to find how to force target-dependent -mword-relocations
flags to compile testglue, without needing a testuite patch :-)
* Validation (3/10)
- compared cbuild2 schroot-test branch using (default) shared libs
and forcing static libs
Using static libs causes many unresolved and unsupported tests
- compared using unix.exp and arm-linux.exp: the latter causes
creates instability in the results
* Neon intrinsics tests (2/10)
- rebased on trunk, applied requested changes
- the make-check parallelization support has changed mid-September,
took some time to discover that my .exp harness was now incompatible.
* Misc (3/10)
- calls/meetings
== Next ==
* GCC trunk/4.9 cross-validation
- continue investigation of abi_check test
* Neon intrinsic tests update, trying to take float16 types into account
* cbuild2:
- compare results + validation time of stable and schroot-test branches
- look at backport-test script + logs
cbuild2 benchmarking - TCWG-360 [7/10]
* Cleaned up and upstreamed some code that works
* Fixed a couple of issues raised by LAVA people
** No longer scraping the logs
** No longer assuming stable IP addresses
lowlevellock.h comments - CARD-341 [1/10]
* Respun based on Carlos' comments
Meetings/mail/etc - [2/10]
=Plan=
cbuild2 benchmarking
* Upstream code-with-fixes
* Write a doc
* Invite people to start using this thing
** Assuming that the storage questions get resolved
* Work through list of tweaks
Get up to speed on glibc vector math thread
== Progress ==
* Investigate a number of bugs in Linaro toolchain (2/10)
- Submitted patches for cbuild build failure with eglibc and i686
- Investigated BZ #675, gdb baud rate issue. Should be fixed by
switch to cbuild
- AArch64 PIE support seems to be ok?
* Submitted a patch to add all missing relocs from AArch64 ABI 1.0 to
binutils (1/10)
* Email, meetings, etc. (1/10)
* More malloc single-thread optimizations (6/10, TCWG-436)
- Patches submitted to the list
== Issues ==
* None
== Plan ==
* More atomics work
* Tidy up and commit malloc app benchmarks
* Out Thursday and Friday for a wedding
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* LR register not used in leaf functions (TCWG-539) (1/10)
Reviewed Jiong's changes.
* bug #412 (2/10)
- Seems to have been fixed but since there is not specific test-case
except that it happens with spec2k gcc, need more work to be entirely sure.
* AArch64 Spec2006 int regression (1/10)
- Looked at bug databases and mailing list archive for more information
* armv3 (bug #85 and bug #410) (2/10)
- Looked at both the outstanding bug to find more information
- proposed using -mno-lra for armv3 after discussion with the team
* Misc (2/10)
- Public holiday (2/10)
- Annual Leave (2/10)
== Plan ==
* zero/sign extension elimination with widening types
== Holidays ==
* 06/10/2014 - Public holiday
* 07/10/2014 and 07/10/2014 - Annual leave
== This week ==
* TCWG-515 - Neon intrinsic testing part 1 (5/10)
- Developed fix for vclz DejaGnu failure
- Tested on ARM hardware
* Linaro bugzilla 602 - gcc 4.7.3 compiler internal error while building
hsail components (1/10)
- Unable to reproduce with either Linaro 4.8 or 4.9
* Linaro Bugzilla 540 - Median of three has unneeded register moves (1/10)
- Results of Triage indicate generated code has improved though still
not optimal
- No plans for further improvement
* Misc. (1/10)
- Completed ARM annual review paperwork
* Out sick Friday, October 3rd (2/10)
== Next week ==
- Full validation testing on vclz bug fix
- Create patch for vclz bug fix and send to gcc-patches list
- Resolve any blocking issues to patch for bugzilla 331
= Progress ==
* Core mark benchmark and report for PGO and PGO + LTO (2/10)
Collected benchmark scores and report sent internally.
Adding PGO benefits coremark. LTO seems to hurt. More runs and profiling
next week. Tired few experiments with -funroll-all-loops and seems to
benefit.
* Misc [2/10]
Internal meeting and 1-1 with Ryan and inline manger.
Revisited and closed PR61442
Short week leave on 29 Sep, 2 and 3rd Oct (6/10).
== Plan ==
* Coremark benchmark and profiling for PGO and PGO + LTO
* Investigate PR 62308
* Setup Cbuildv2 build in internal machine.