o 4 days week.
o LLVM
* 7.0.1-rc2:
- Miscompare on AArch64 is related to host compiler, still digging.
* Machine Outliner on ARM prototype:
- IR Outliner experiments:
Commented upstream, and reducing problematic test case.
o Misc
* Various meetings and discussions.
Four day week (Happy Thanksgiving, all you Europeans)
[Upstream]
Posted patches making bswap during qemu_ld/st optional. The prompt was
reviewing the tcg/riscv/ patch set, but I've wanted to do this for ages.
This should avoid the need for reservation of scratch registers on some hosts
that can ill afford it -- in particular i386 and aa32.
In the process I ran into two other places that x86 used those scratch
registers: stores from non-q-registers and bsd-user.
I included patches for both of those (freebsd only; net/openbsd will work so
long as guest_base == 0 and will abort at runtime otherwise).
I still need to audit the other hosts before dropping the call-clobbering from
user-only within tcg.c.
r~
== Progress ==
* FDPIC
- Cortex-M uClibc-ng patch merged
- GCC: no feedback yet on v4 patches
* GCC upstream validation:
- reported a few regressions
- dealing with some random results, again
- trying qemu-3.1.0-rc1, maybe some memory consumption problems, tbc
* GCC:
- bug report on aarch64 about misaligned accesses. I do not have
access to LHG gerrit, Maxim will look at isolating the problem.
- rebased ubsan / bare-metal patches. Really need to look at how to
merge them into LLVM
* misc (conf-calls, meetings, emails, ....)
- reviewing infra script patches
- ran Spec2006 using gcc-8.2 sysroot, to avoid differences caused by
glibc versions. Fortran benchmarks could not run when compiled with
gcc-5/gcc-6 because libgfortran changed .so version compared to gcc-8.
== Next ==
FDPIC:
- GCC: handle feedback on v4 patches
- uclibc-ng: look at how to test fdpic mode with openadk
Benchmarks:
- collect results
Validation:
- check if qemu-3.1.0-rc1 is OK for my GCC validations
[LLVM-486] Error id user defines _GLOBAL_OFFSET_TABLE_ (upstream review)
[LLVM-484] Fix linker script dynamic relocations combination into a single
output section (upstream review)
[LLVM-483] cortex-a53 erratum fix interaction with TLS relaxation (upstream
review)
[LLVM-489] Measure (cross) linking performance of LLD for AArch64 and Arm.
Looking for large projects that I can build for Arm and AArch64
- Firefox seems to have some ARM Android cross build support but it does
not appear to be working too well.
- Chrome can cross build to ARM and AArch64 Android. Have been able to
build AArch64 so far.
Notably both projects don't support building natively on AArch64, there are
quite a few build dependencies for which only x86 support is available.
Raised Jira tickets for recent PRs fixed
2019 Planning
- Drafted objectives document for LLVM team
- Drafted some Jira suggestions for TCWG
QEMU Tooling ([VIRT-252])
=========================
[VIRT-252] https://projects.linaro.org/browse/VIRT-252
QEMU plugin support ([VIRT-280])
- continued reviewing Emilio's {RFC 00/48} Plugin support Message-Id:
<20181025172057.20414-1-cota(a)braap.org>
- port my example tools to his framework :todo
[VIRT-280] https://projects.linaro.org/browse/VIRT-280
Upstream Work ([VIRT-109])
==========================
- finished reviewing {RFC PATCH v2 00/23} KVM: arm64: Initial support
for SVE guests Message-Id:
<1538141967-15375-1-git-send-email-Dave.Martin(a)arm.com>
[VIRT-109] https://projects.linaro.org/browse/VIRT-109
Other Tasks
===========
- started The QEMU initiative thread Message-Id:
<87wop4gezg.fsf(a)linaro.org> for JIRA discussion
Completed Reviews [3/3]
=======================
{RFC PATCH v2 00/23} KVM: arm64: Initial support for SVE guests
Message-Id: <1538141967-15375-1-git-send-email-Dave.Martin(a)arm.com>
- CLOSING NOTE [2018-11-22 Thu 15:36]
My only major concern is if the query API is too gold plated.
{RFC PATCH 0/2} docker: Add gentoo-mipsr5900el-cross image
Message-Id: <20181118203312.5376-1-f4bug(a)amsat.org>
{PATCH} docker: dockerfile for openSUSE Leap
Message-Id: <87k1lai2vo.fsf(a)linaro.org>
Absences
========
- Christmas Holidays
- Connect BKK19 (1-5th April 2019)
Current Review Queue
====================
* {RFC 00/48} Plugin support
Message-Id: <20181025172057.20414-1-cota(a)braap.org>
* {Qemu-devel} {PATCH for-4.0 v2 00/37} tcg: Assorted cleanups
Message-Id: <20181123144558.5048-1-richard.henderson(a)linaro.org>
* {Qemu-arm} {PATCH v5 00/16} gdbstub: support for the multiprocess extension
Message-Id: <20181110081147.4027-1-luc.michel(a)greensocs.com>
* {Qemu-arm} {PATCH 00/13} Support disabling TCG on ARM
Message-Id: <20181113165247.4806-1-sameo(a)linux.intel.com>
* {PATCH 0/7} Acceptance Tests: basic architecture support
Message-Id: <20181004151429.7232-1-crosa(a)redhat.com>
* {PATCH v7 00/19} Fixing record/replay and adding reverse debugging
Message-Id: <20181010133333.24538.53169.stgit@pasha-VirtualBox>
--
Alex Bennée
Progress:
* VIRT-65 [QEMU upstream maintainership]
- release work
- code review
- sent patch fixing Coverity issue in Xen PCI device passthrough
(this was our last outstanding issue with no patch on the list!)
* VIRT-268 [QEMU support for dual-core Cortex-M Musca board]
- some initial investigation of what changes are going to be needed
for heterogenous-cpu support in QEMU
- started on a test case using the existing xnlx-zcu102 board (which
has a heterogenous config that works only by accident)
thanks
-- PMM
== Progress ==
# Monday off
# [LLVM-479] Check current status of GlobalISel
- Looked into new patterns that can be selected by TableGen and
forked LLVM-481 and LLVM-482 out of that
- Ran a test-suite and a selfhost with GlobalISel and had a look at
the fallbacks
# [LLVM-481] [ARM GlobalISel] Test BFC
- Committed upstream
# [LLVM-482] [ARM GlobalISel] Enable CLZ
- Most of the work is done, ready to commit next week
== Plan ==
Wrap up LLVM-482 and LLVM-479
Fork more stories out of LLVM-479
The Linaro Toolchain Working Group (TCWG) is pleased to announce the
2018.11 snapshot of Linaro GCC 6 source package.
o This Linaro GCC 6 snapshot[1] is based on FSF GCC 6.5+svn265890 and
includes performance improvements and bug fixes backported from
mainline GCC. This snapshot will be part of the final maintenance release,
as the upstream GCC 6 branch is at the end of its maintenance lifespan.
This snapshot tarball is available on:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.5-2018.11/
Interesting changes in this GCC source package snapshot include:
* Updates to GCC 6.4+svn265890
o Subscribe to the important Linaro mailing lists and join our IRC channels to
stay on top of Linaro development.
** Linaro Toolchain Development "mailing list":
http://lists.linaro.org/mailman/listinfo/linaro-toolchain
** Linaro Toolchain IRC channel on irc.freenode.net at @#linaro-tcwg@
* Bug reports should be filed in Bugzilla against GCC product:
http://bugs.linaro.org/enter_bug.cgi?product=GCC
* Interested in commercial support? inquire at "Linaro support":
mailto:support@linaro.org
[1]. Source package snapshots are defined when the compiler is only
put through unit-testing and full validation is not performed.
Mark Murray Staff Software Engineer | Arm
. . . . . . . . . . . . . . . . . . . . . . . . . . .
p: +44 1223 405082
arm.com <http://www.arm.com>
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.
o 4 days week.
o LLVM
* 7.0.1-rc2:
- Uploaded ARM and AArch64 binaries
- Investigating miscompare on AArch64
* Machine Outliner on ARM prototype:
- IR Outliner experiment gave interesting code size reduction
o Misc
* Various meetings and discussions.
* CI patch reviews
Three day week.
[GNU-180 # Fix gcov crash on program exit]
Fiddled around with TI-RTOS for a while before I realized that was sort of
beside the point. Gave the reporter a method do avoid dumping during the
global destructors. Still need to look into where the reported stack space
problem might be.
[Upstream]
Out-of-line softmmu patches got some work. Added ppc64 support. Fixed a race
and a code removal crash. Emilio verified -5% aa64 boot+shutdown time, but it
performed less well on spec2006.
Reviewed risc-v host patch set.
r~
QEMU Tooling ([VIRT-252])
=========================
QEMU plugin support ([VIRT-280])
- started reviewing Emilio's {RFC 00/48} Plugin support Message-Id:
<20181025172057.20414-1-cota(a)braap.org>
- port my example tools to his framework :todo
[VIRT-280] https://projects.linaro.org/browse/VIRT-280
Upstream Work ([VIRT-109])
==========================
- started looking at {RFC PATCH v2 00/23} KVM: arm64: Initial support
for SVE guests Message-Id:
<1538141967-15375-1-git-send-email-Dave.Martin(a)arm.com>
[VIRT-109] https://projects.linaro.org/browse/VIRT-109
Other Tasks
===========
- [Video for KVM Forum QEMU status report] is up
- the rest of the [sessions are here]
- posted {PULL for 3.1 0/2} Testing tweaks Message-Id:
<20181114131008.27599-1-alex.bennee(a)linaro.org>
[Video for KVM Forum QEMU status report]
https://www.youtube.com/watch?v=GZBd3jt5iA8
[sessions are here]
https://www.youtube.com/channel/UCRCSQmAOh7yzgheq-emy1xA/videos
Completed Reviews [3/3]
=======================
{PATCH} tests/tcg/multiarch: fix 32bit linux-test on 64bit host
Message-Id: <20181113175437.26492-1-laurent(a)vivier.eu>
{Qemu-devel} {PATCH} hax: Support for Linux hosts
Message-Id: <20181114130428.32326-1-asanchez(a)kryptoslogic.com>
{Qemu-devel} {PATCH} target: hax: replace g_malloc with g_malloc0
Message-Id: <1542261954-4060-1-git-send-email-liq3ea(a)gmail.com>
Absences
========
- Christmas Holidays
- Connect BKK19 (1-5th April 2019)
Current Review Queue
====================
* {RFC PATCH v2 00/23} KVM: arm64: Initial support for SVE guests
Message-Id: <1538141967-15375-1-git-send-email-Dave.Martin(a)arm.com>
* {Qemu-arm} {PATCH v5 0/4} target/arm: KVM vs ARMISARegisters
Message-Id: <20181113180154.17903-1-richard.henderson(a)linaro.org>
* {Qemu-devel} {PATCH for-4.0 00/17} tcg: Move softmmu out-of-line
Message-Id: <20181112214503.22941-1-richard.henderson(a)linaro.org>
* {Qemu-arm} {PATCH 00/13} Support disabling TCG on ARM
Message-Id: <20181113165247.4806-1-sameo(a)linux.intel.com>
* {Qemu-devel} {PATCH for-4.0 00/17} tcg: Move softmmu out-of-line
Message-Id: <20181112214503.22941-1-richard.henderson(a)linaro.org>
* {Qemu-arm} {PATCH v5 00/16} gdbstub: support for the multiprocess extension
Message-Id: <20181110081147.4027-1-luc.michel(a)greensocs.com>
--
Alex Bennée
LLD bug fixing and triage
pr39678 Calculation of DT_PLTRELSZ with strange linker script.
pr39662 Request to add more emulations
pr39634 LTO and references from inline symbols
D54474 Fix for incorrect relocation span out of ifunc review
D54624 Redefinition of _GLOBAL_OFFSET_TABLE_
=== Work done during the past 2 weeks ===
* Resurrect code size optimization for fmul/dmul from Tony Wang: bootstraping
+ rework slightly to better deal with switch of section and deal with
several possible section layout
+ start anew with a new approach based on symbol visibility
-> works without -gc-sections and does not rely on section layout
* Fix -mslow-flash-data: ready to upstream on Monday
+ some more cleanup and code improvement
* LLVM-432 (Support arithmetic on FileCheck regex variable):
+ started reworking parsing code to be separate from evaluation and support
more complex expression
* Infrastructure code review
=== Plan for week 47 ===
* LLVM-432 (Support arithmetic on FileCheck regex variable):
+ extend testcase coverage (add tests for latest syntax change and
add more negative testing)
+ finish cleaning up the code
* Try to reproduce perf issue mentioned in week #30's weekly report on
latest perf
* Line management.
Progress:
* VIRT-251 [AArch32 Hyp/running microvisors]
- fixes to the issues running L4Re/Fiasco have now been committed
to QEMU master for the 3.1 release
- some minor remaining missing functionality not needed for these guests
has been recorded as subtasks of VIRT-65
- this Epic is now closed!
* VIRT-65 [QEMU upstream maintainership]
- release work
- looked again at automation of uploads to the Coverity Scan service
(last try was last year); sent out revised patchset
- code review:
+ "sbsa reference board" model
+ LOR, HPD, AA32HPD extension support (rth)
+ Minimize TLB flushing for ASID changes (rth)
+ Support for loading uboot "noload" uimage files
+ better PMUv3 emulation
+ micro:bit SoC device models
thanks
-- PMM
== Progress ==
* FDPIC
- Cortex-M uClibc-ng patch still pending
- GCC: updated patches and sent v4
Tried to isolate the regressions observed on xtensa uclinux
toolchain with my patches.
Built a qemu-system-arm -based platform to run tests involving the
kernel. Built and ran a few LTP tests.
Unfortunately, LTP has dropped/is dropping support for uclinux
configs, for lack of interest
* GCC upstream validation:
- reported a few regressions
- dealing with some random results, again
* GCC:
- bug report on aarch64 about misaligned accesses. Waiting for more
details to reproduce the problem.
* misc (conf-calls, meetings, emails, ....)
- reviewing infra script patches
== Next ==
FDPIC:
- GCC: handle feedback on v4 patches
- uclibc-ng: look at how to test fdpic mode with openadk
== Progress ==
* Catch up on things
- Remind myself what a laptop looks like, install updates etc etc
- Figure out new links, machines etc
- Clean up inbox
* [LLVM-59] Small changes to the LLVM helper scripts
- Had a look at all the remaining issues and closed them as obsolete
or already implemented
* [LLVM-479] Check current status of GlobalISel
- Read the mailing list to see what I’ve missed
- Started looking at the code
- Trying to run the test-suite on a TK1
* Misc
- Fixed a simple buildbot breakage
- Meetings
== Plans ==
* LLVM-479
== This Week ==
* GNU-405: Implement division using vrecpe/vrecps (1/10)
- Committed patch
* SVE ACLE (2/10)
- Continue work on shift intrinsics
* PR83750 (1/10)
- Addressing upstream comments
* Holidays (6/10)
- Diwali festival
== Next Week ==
- Continue working on SVE ACLE and PR83750
o 4 days week.
o LLVM
* 7.0.1-rc2:
- Built ARM and AArch64 binaries
- Investigating miscompare on AArch64
* Machine Outliner on ARM prototype:
- Investigating issues in PIC mode
- Testing IR Outliner
o Misc
* Various meetings and discussions.
[VIRT-241 # QEMU ARMv8.x support ]
The new ARM ARM was released (DDI0487 D_a) including ARMv8.4.
Add jira cards for all of the v8.4 features. Rearrange all of
the stories into a hierarchy so that it's easier to track which
cards belong to which architecture revision.
[VIRT-263 # ARMv8.1-VHE Virtual Host Extensions ]
Working my way through this rather large extension:
* Cleanup (most) direct uses of hcr_el2.
* Add new hypervisor virtual timer.
* Add contextidr_el2 and use it in breakpoint matching.
* Add system register aliasing and redirection.
* Added a new mmu_idx for the NS EL2&0 regime;
working through all the places that should be handled.
[Upstream]
Posted kvm-vs-idregs patch set v3.
r~
== Progress ==
* FDPIC
- Cortex-M uClibc-ng patch still pending
- GCC: handling feedback on v3 patches.
Managed to build/check xtensa uclinux toolchain with my patches.
Largely better, but a few new failures.
- working on kernel + qemu-system env to run more tests. Got help from
Nicolas Pitre.
* GCC upstream validation:
- reported a few regressions
- dealing with some random results, again
* GCC:
- bug report on aarch64 about misaligned accesses. Waiting for more
details to reproduce the problem.
* misc (conf-calls, meetings, emails, ....)
- reviewing infra script patches
== Next ==
FDPIC:
- GCC: followup v3 patches
- uclibc-ng: look at how to test fdpic mode with openadk
- use qemu-system mode to run more tests
Progress:
* VIRT-65 [QEMU upstream maintainership]
- code review
+ more microbit device models
+ some raspi device model improvements
- sent patches for more Coverity issue fixes
- put together a list of source files still with legacy
non-QOM device models (about 60 files total)
- tagged QEMU 3.1.0 rc0
* VIRT-251 [aarch32 Hyp/running microvisors]
- tracked down a regression affecting L4Re guest: we had
misimplemented HCR.{VI,VF}. Sent patchset reverting the
broken version and implementing the correct semantics.
- finally tracked down why the 32-bit version of L4Re/Fiasco was
crashing -- we were incorrectly implementing Hyp mode as having
a banked r14, but it shares that register with User and System modes.
- These patches fix all the known issues with these guests.
thanks
-- PMM
=== Work done during the past week ===
* Resurrect code size optimization for fmul/dmul from Tony Wang:
+ clean up new testsuite directive andd testcases
* Fix -mslow-flash-data:
+ resurrect / rebase Arm internal patch to fix -mslow-flash-data
once and for all
+ many fixes to make it pass all testsuite with -mslow-flash-data without ICE
* Line management.
=== Plan for week 45 ===
* LLVM-432 (Support arithmetic on FileCheck regex variable):
+ extend testcase coverage (add tests for latest syntax change and
add more negative testing)
+ finish cleaning up the code
* Try to reproduce perf issue mentioned in week #30's weekly report on
latest perf
o Two days off.
o LLVM
* Machine Outliner on ARM prototype:
- catch-up after vacation
- re-based prototype branch on upstream
- Investigating issues in PIC mode
== This Week ==
* PR83750: CSE erf/erfc pair (6/10)
- Submitted patch upstream
* SVE ACLE (2/10)
- Started working on shift intrinsics
* GNU-235 (1/10)
- Cancelled card after I realized vrp does not support floating point ranges -:/
* Misc (1/10)
- Meetings
== Next Week ==
- PR83750: Address upstream comments
- GNU-405: Benchmark patch to provide more evidence to make it acceptable.
- SVE ACLE: Continue work on shift intrinsics.
[VIRT-241 # QEMU ARMv8.3 support ]
Finished filling out the sub-tasks for v8.3. Added some implementation
notes to some of those tasks as I reread the relevant documentation.
[VIRT-246 # ARMv8.1-LOR Limited Ordering Regions ]
Posted a trivial implementation.
[VIRT-247 # ARMv8.1-HPD and ARMv8.2-AA32HPD ]
Posted.
[Upstream]
Dirty tlb patches and decodetree changes squeeked in for softfreeze.
Another round of tlb flush reduction for aa64. This time exposing
asid's to the softmmu core and allowing it to flush when necessary.
Some more work toward moving x86 softmmu load sequences out of line.
The bulk of the code for 32-bit is now written, but it doesn't work yet.
Fix my thinko wrt divdeu and power7.
[GCC]
The cleanup part of my atomics patch set has been approved and committed.
Posted v3 of the out-of-line atomics part as well.
r~
Upstream Work ([VIRT-109])
==========================
- reviewed {Qemu-arm} {RFC v4 00/71} per-CPU locks Message-Id:
<20181025151103.GA19931@flamenco>
- this is a precursor to Emilio's {RFC 00/48} Plugin support
Message-Id: <20181025172057.20414-1-cota(a)braap.org>
[VIRT-109] https://projects.linaro.org/browse/VIRT-109
QEMU Tooling ([VIRT-252])
=========================
[VIRT-252] https://projects.linaro.org/browse/VIRT-252
QEMU plugin support ([VIRT-280])
- go through Emilio's {RFC 00/48} Plugin support Message-Id:
<20181025172057.20414-1-cota(a)braap.org> :todo
- port my example tools to his framework
[VIRT-280] https://projects.linaro.org/browse/VIRT-280
Kernel Debug via gdbstub
- started re-spin of [KVM/QEMU guest debug fix]
- reviewed/tested problem fixed by {Qemu-devel} {PATCH 0/5}
target/arm: KVM vs ARMISARegisters Message-Id:
<20181024113709.16599-1-richard.henderson(a)linaro.org>
- found a weird bug w.r.t single-stepping first instruction
- started down the debugging rabbit hole
[KVM/QEMU guest debug fix]
https://github.com/stsquad/qemu/tree/kvm/fix-breakpoints-v2
Other Tasks
===========
- Wrote up [KVM Forum 2018 report]
- started looking at {RFC PATCH v2 00/23} KVM: arm64: Initial support
for SVE guests Message-Id:
<1538141967-15375-1-git-send-email-Dave.Martin(a)arm.com>
[KVM Forum 2018 report]
https://collaborate.linaro.org/display/CR/20181024+KVM+Forum+2018
Completed Reviews [2/2]
=======================
{PATCH v2 0/3} Modern shell scripting (use $() instead of ``)
Message-Id: <20181018031723.23459-1-maozhongyi(a)cmss.chinamobile.com>
- CLOSING NOTE [2018-10-31 Wed 15:37]
The bit that touched bootstrap was fine
{Qemu-arm} {RFC v4 00/71} per-CPU locks
Message-Id: <20181025151103.GA19931@flamenco>
- CLOSING NOTE [2018-10-31 Wed 16:58]
Looks good, needs a minor tweak for linux-user mode. Will check
final patches on the next iteration.
Absences
========
- Christmas Holidays
- Connect BKK19 (1-5th April 2019)
Current Review Queue
====================
* {RFC 00/48} Plugin support
Message-Id: <20181025172057.20414-1-cota(a)braap.org>
* {RFC PATCH v2 00/23} KVM: arm64: Initial support for SVE guests
Message-Id: <1538141967-15375-1-git-send-email-Dave.Martin(a)arm.com>
* {PATCH 0/7} Acceptance Tests: basic architecture support
Message-Id: <20181004151429.7232-1-crosa(a)redhat.com>
* {PATCH v7 00/19} Fixing record/replay and adding reverse debugging
Message-Id: <20181010133333.24538.53169.stgit@pasha-VirtualBox>
* {PATCH v2 0/3} Bootstrap Python venv and acceptance/functional tests
Message-Id: <20181009041826.19462-1-crosa(a)redhat.com>
* {Qemu-arm} {PATCH 00/13} target/arm: Implement v8M stack limit checks
Message-Id: <20181002163556.10279-1-peter.maydell(a)linaro.org>
--
Alex Bennée
Progress:
* VIRT-65 [QEMU upstream maintainership]
- code review
- target-arm pull requests
- lots of pull request processing (softfreeze was this week)
- investigated and sent patches to fix a bug where a PC related
pullrequest was failing tests on my merge test setup (turned
out to be a build system issue where we were doing things in
configure that meant make didn't notice it needed to rerun it)
- some simple patches for coverity issues
thanks
-- PMM
[LLVM-203] Code-Size investigation with PGO
- Finished up the remain tasks and resolved the ticket.
- Tidied up the patches and added tests so that I can potentially
share them with other interested parties.
-- Writing tests took a lot longer than I thought as it involves
faking a profile and there were quite a few caveats to doing that.
Some prototyping in LLVM and LLD for some internal ABI discussions.
* 1 day off
== Progress ==
* FDPIC
- Cortex-M fix for binutils committed. uClibc-ng patch on-going
- GCC: handling feedback on v3 patches.
Trying to build/check xtensa uclinux toolchain to check my patches
do not affect it. No satisfactory reference build yet.
* GCC upstream validation:
- reported a few regressions
- one of last week's regressions is causing timeouts on some
validations, thus delaying the full queue. I haven't isolated the
cause yet
- dealing with some random results, again
* GCC:
- bug report on aarch64 about misaligned accesses. Waiting for more
details to reproduce the problem.
* misc (conf-calls, meetings, emails, ....)
- Benchmarking harness hopefully fixed
- reviewing infra script patches
- bugzilla cleanup
== Next ==
FDPIC:
- GCC: followup v3 patches
- uclibc-ng: look at how to test fdpic mode with openadk
- use qemu-system mode to run more tests
Benchmarking:
- fix harness until they support gcc-8
=== Work done during this past week ===
* GNU-296 / GCC PR85434 / CVE-2018-12886: upstream review
+ avoid useless cmp after eors
+ fix another missing earlyclobber
+ full Thumb-1, Thumb-2 and Arm bootstrap with testing with and
without -fPIC, with and without -fstack-protector-all
* Continue patch to further update cpus and architectures in bfd:
external review
+ also teach GAS about Armv5TEJ and newer wrt. bfd architectures tags
+ fix ld action in run_dump_test
+ add testing for all this and submit for external review
* Resurrect code size optimization for fmul/dmul from Tony Wang:
+ rebase on trunk
* Line management
=== Plan for week 43 ===
* LLVM-432 (Support arithmetic on FileCheck regex variable):
+ extend testcase coverage (add tests for latest syntax change and
add more negative testing)
+ finish cleaning up the code
* Try to reproduce perf issue mentioned in week #30's weekly report on
latest perf
* Line management
Progress:
* Attended OSS Europe/KVM Forum
- as usual, a good week (helpful conversations, interesting sessions)
- full conference writeup later in the week
thanks
-- PMM
[VIRT-198 # QEMU: SVE Emulation Support ]
Last of the patches merged to mainline. Epic is now closed.
[VIRT-282 # QEMU: Accelerate TCG with KVM ]
A hallway talk with Paolo lead to a write-up, and Alex encouraged me to create
the epic. The epic description contains a link to the write-up, if anyone is
interested. I'd like to at least create a vm, measure some round-trip costs,
and properly gauge the level of difficulty. Beyond that... we'll see.
[Upstream]
Patch review:
- risc-v decodetree patches v2.
Produced some patches against decodetree itself in response.
I'm hopeful to see a much cleaner v3.
- per-cpu locks
[KVM Forum]
- Unsurprisingly, lots of people worked on speculation mitigation this year.
- Lots of focus on "ram", and the allocation and management thereof.
- Four talks on improving nested virtualization.
- The rest to follow in the trip report.
r~
== Progress ==
* FDPIC
- Posted binutils and uClibc-ng patches to fix cortex-M support, under
discussion
- GCC: handling feedback on v3 patches.
Experimented thumb-1 builds, failed.
* GCC upstream validation:
- reported a few regressions
- dealing with some random results, again
* GCC:
- bug report on aarch64 about misaligned accesses. Waiting for more
details to reproduce the problem.
* misc (conf-calls, meetings, emails, ....)
- Working on fixes of our benchmarking harness to support new gcc-8 releases.
== Next ==
FDPIC:
- GCC: followup v3 patches
- uclibc-ng: look at how to test fdpic mode with openadk
- use qemu-system mode to run more tests
Benchmarking:
- fix harness until they support gcc-8
== This Week ==
* GNU-405: Implement division using vrecpe / vrecps (4/10)
- Patch validated and posted upstream.
* SVE ACLE intrinsics (4/10)
- Going thru documentation.
* GNU-235: Provide value-range info for erf family of functions (1/10)
- Working on patch.
* Misc (1/10)
- Meetings
== Next Week ==
- Continue GNU-235, SVE ACLE intrinsics
Upstream Work ([VIRT-109])
==========================
- started looking at {Qemu-arm} {RFC v4 00/71} per-CPU locks
Message-Id: <20181025151103.GA19931@flamenco>
- this is a precursor to Emilio's {RFC 00/48} Plugin support
Message-Id: <20181025172057.20414-1-cota(a)braap.org>
[VIRT-109] https://projects.linaro.org/browse/VIRT-109
Other Tasks
===========
- Attended KVM Forum 2018
- I am now Spectre'd out ;-)
- Some interesting discussions on upstream CI
- will save the rest of my notes for the conference report
- Delivered QEMU Keynote/Status report @ KVM Forum 2018
- Here are [the slides]
[the slides]
http://people.linaro.org/~alex.bennee/org/presentations/kvm18-qemu-keynote.…
Current Review Queue
====================
* {Qemu-arm} {RFC v4 00/71} per-CPU locks
Message-Id: <20181025151103.GA19931@flamenco>
* {RFC 00/48} Plugin support
Message-Id: <20181025172057.20414-1-cota(a)braap.org>
* {PATCH v2 0/3} Modern shell scripting (use $() instead of ``)
Message-Id: <20181018031723.23459-1-maozhongyi(a)cmss.chinamobile.com>
* {PATCH 0/7} Acceptance Tests: basic architecture support
Message-Id: <20181004151429.7232-1-crosa(a)redhat.com>
* {PATCH v7 00/19} Fixing record/replay and adding reverse debugging
Message-Id: <20181010133333.24538.53169.stgit@pasha-VirtualBox>
* {PATCH v2 0/3} Bootstrap Python venv and acceptance/functional tests
Message-Id: <20181009041826.19462-1-crosa(a)redhat.com>
--
Alex Bennée
[LLVM-203] Investigation into profiling and code-size optimizations
- Collected the remaining data I needed over the weekend.
- Wrote up report
- Rebased patches on tip of trunk
- Attached results and report to Jira issue.
- A one line summary of the results is that if you are lucky you can
get close to peak performance at close to Os code size if your program
happens to spend most of its time in a few small places. If you are
unlucky then increased inlining and unrolling can still result in an
overall code size increase over -O3 but the effect will be limited.
[LLVM-158] Monitor and maintain buildbots
- Relatively quiet week, a couple of patches pinged for fixes/reverts.
== This Week ==
* TCWG-1234: Coremark regression (7/10)
- Fixed golang regressions with the patch.
- Posted patch upstream to change hoisting order and apply cost model.
* Public holiday (2/10)
* Misc (1/10)
- Meetings
== Next Week ==
- TCWG-319, SVE
[VIRT-214 # SVE System Registers ]
v4 posted and merged to target-arm.next; will be in master shortly.
That will complete basic SVE system mode support.
[UPSTREAM]
tcg-next patches collected and flushed.
Dug into apparently excessive overhead in aarch64 guest tlb flushing, noticed
by chance while doing something else. Two patches upstream, several more
written but need cleanup. Total overhead down from 25% to 9%.
r~
=== Work done during this past week ===
* GNU-296 / GCC PR85434 / CVE-2018-12886:
+ few more issues fixed and associated testing
+ now also running Thumb-1 bootstrap and testing
* Prepare patch to further update cpus and architectures in bfd
* Line management
=== Plan for week 43 ===
* GNU-296 / GCC PR85434 / CVE-2018-12886:
+ finish testing, and submit new stack protector patch for upstream review
* LLVM-432 (Support arithmetic on FileCheck regex variable):
+ extend testcase coverage (add tests for latest syntax change and
add more negative testing)
+ finish cleaning up the code
* Try to reproduce perf issue mentioned in week #30's weekly report on
latest perf
* Line management
Progress:
* VIRT-65 [QEMU upstream maintainership]
- code review
- use ID registers as master source for "should this CPU
have this feature" information (rth)
- clean up 32-bit Neon to use vector infrastructure (rth)
- don't let the kernel get loaded on top of our builtin
bootloader if it happens to ask for a zero text offset
- Xilinx Versal board patches
- target-arm pull requests
- some minor patches to fix new clang warnings
- preparation for KVM Forum/QEMU Summit etc next week
thanks
-- PMM
== Progress ==
* FDPIC
- GCC: handled feedback on v3 patches.
Not much info on how to test other existing uclinux targets.
Noticed that GCC trunk build fails when targeting cortex-m23
(v8-m.baseline), problems in support libs (libgcc, newlib)
* GCC upstream validation:
- reported a few regressions
- dealing with some random results, again
* GCC:
- bug report on aarch64 about misaligned accesses. Waiting for more
details to reproduce the problem.
* misc (conf-calls, meetings, emails, ....)
== Next ==
FDPIC:
- GCC: discuss v3 patches where the way forward is not clear yet
- uclibc-ng: look at how to test fdpic mode with openadk
- use qemu-system mode to run more tests
[LLVM-203] (was TCWG-1424, we've moved issues to a new project)
Started writing up results to close out this investigation.
- Reran some sample profiling test cases with a higher sample rate.
- Investigated why some test cases exploded in code-size with LTO.
- Got some results for thin LTO (broadly similar to LTO).
- Discovered that I need to pass in extra linker options to enable LTO
to use the new pass manager, sample profiling and setting of
optimisation level.
-- Need to rerun these configurations over the weekend.
- Have most of the surrounding text of the report written, now need to
work on presentation of results.
[TCWG-1473] Fix big-endian linux kernel builds for AArch32
Now committed upstream
Holiday Friday
o LLVM
* Machine Outliner on ARM prototype:
- Still debugging Thumb1 issues in Spec2K6
- Investigating issues in PIC mode
* Bots babysitting
o Misc
* Various meetings and discussions.
[VIRT-214 # SVE System Registers ]
Posted v3 patch set.
[VIRT-281 # Extend gdbstub for SVE ]
Crashed gdb. Posted patch fixing buffer overrun.
It was suggested to me that qemu's gdbstub might not support enough
modern bits of the remote protocol for SVE. So I spent quite a bit
of time reading up on the protocol and beginning to review
[PATCH v2 00/15] gdbstub: support for the multiprocess extension
In the end I'm not convinced there's anything missing for SVE.
I think I'm going to have to examine upstream gdb more closely,
running gdbserver proper.
[Upstream]
Collecting patches for tcg-next.
Misc patch review.
[GCC]
Pinged my LSE patch set from 2 Oct.
r~
== Progress ==
* FDPIC
- GCC: send v3 patches, got some feedback: will need another iteration
* GCC upstream validation:
- reported a few regressions
- dealing with some random results, again
* GCC:
- looking at bug report on aarch64 about misaligned accesses. Need
more details to reproduce the problem
* Newlib
- got a few small patches accepted
* misc (conf-calls, meetings, emails, ....)
== Next ==
FDPIC:
- GCC: handle v3 patches feedback
- uclibc-ng: look at how to test fdpic mode with openadk
=== Work done during this past week ===
* TCWG-1428 (Support arithmetic on FileCheck regex variable):
+ continued cleaning up code and painfully rebased it on recent trunk
* GNU-296 / GCC PR85434 / CVE-2018-12886:
+ fixed changes to routines for PIC access to use specified register
+ fixed 2 more issues in stack protector new instruction patterns
+ testing for arm and thumb2, now starting over due to one of the above issues
* GNU-580 / PR86968: in progress
+ investigate, try 2 approaches, need to start looking into 3rd approach
* Line management.
=== Plan for week 42 ===
* GNU-296 / GCC PR85434 / CVE-2018-12886:
+ finish testing, and submit new stack protector patch for upstream review
* TCWG-1428 (Support arithmetic on FileCheck regex variable):
+ extend testcase coverage (add tests for latest syntax change and
add more negative testing)
+ finish cleaning up the code
* GNU-580 / PR86968: in progress
+ attempt 3rd approach
* Try to reproduce perf issue mentioned in week #30's weekly report on
latest perf
* Line management:
+ continue progress on rotations
+ start preparing first AFDS
[TCWG-1473] Fix -fno-integrated-as and -mbig-endian (Linux Kernel
Build with clang)
- Needed some revision to handle linker emulation. Patch in upstream review
[TCWG-1474] Fix out of range branch (CBZ) when -fimplicit-it (or
-fno-integrated-as) and certain kinds of inline assembly
- Committed upstream.
[TCWG-1424] Code-size investigations with PGO
- Marking functions for size optimisation at the earliest possible
stage improves code-size for little loss in performance. The main
beneficiary is that loops are not unrolled in size optimised functions
and inline thresholds are lower.
- LTO with instrumented profiling still sees large increase in size.
Originally thought my changes weren't working with LTO but I think
that something else is happening.
-- Found out that the profiling information isn't being sent to the
LTO code-generator (although it should be present as IR annotations
from the objects.
-- There is an option to pass the sample profile through to the LTO
code-generator but not an instrumented profile file.
-- It seems like the LTO plugin doesn't use the new pass manager
unless a separate option is passed through to the code-generator.
-- It seems like Thin-LTO is where most of upstream development is
these days and there is a slightly different pass pipeline, and some
interaction with profiling. Worth some more experiments.
First draft made of incorporating YVR18 Jira discussion into
Confluence https://collaborate.linaro.org/display/TCWG/JIRA+Usage+and+Best+Practices