Progress:
* VIRT-65 [QEMU upstream maintainership]
+ code review
- another pass of the GICv2 virt support
- IMX6UL SoC support
- more patches for v6M support in core and NVIC
- PMU emulation improvements
+ rolled another 3.0 release candidate
* VIRT-164 [improve Cortex-M emulation]
+ implemented and sent a patchset for doing tailchaining of pending
exceptions during exception return
thanks
-- PMM
SVE Support ([VIRT-198])
========================
- converted [post on SVE development] to jekyl blog format
- a little fighting with the tooling but [draft on staging]
- trying to get compilers set-up to debug failing Grid Test_simd
testcase
- now have full 1yr armclang license for me and rth
- Test_simd passes with fresh build and current master
- not sure old binary fails - but Nils happy with current state
- fixed vector multiply bug on aarch64 backend
- posted {PATCH} tcg/aarch64: limit mul_vec size Message-Id:
<20180719154248.29669-1-alex.bennee(a)linaro.org>
- drafting [talk for HPC workshop on 26th]
- currently 11 minutes talking, need to expand
[VIRT-198] https://projects.linaro.org/browse/VIRT-198
[post on SVE development]
https://docs.google.com/document/d/15v1asqk-6de2RtA7ZWdIQ29PkY92gl3nlwG7_Se…
[draft on staging]
https://staging.linaro.org/blog/sve-in-qemu-linux-user/
[talk for HPC workshop on 26th]
https://docs.google.com/presentation/d/1Jz9ePpJ_YGd3vPXMj090VwRwPfBSYWHlSiz…
Write and submit Connect abstract
- "How-to use QEMU to test my software on no-silicon hardware"? :todo
- amalgamate HPC talk and blog post
SVE Reviews
- finish reviewing {RFC PATCH 00/16} KVM: arm64: Initial support for
SVE guests Message-Id:
<1529593060-542-1-git-send-email-Dave.Martin(a)arm.com> :todo
- stalled this week due to other activities
QEMU ARMv8.3 Support ([VIRT-241])
=================================
- had a [quick run at VHE] which crystallised some of the issues with
register aliasing
- obviously need to sit and think about a design for this
[VIRT-241] https://projects.linaro.org/browse/VIRT-241
[ARMv8.1 Mandatory Features]
https://projects.linaro.org/browse/TCWG-1434
[ARMv8.1 optional features] https://projects.linaro.org/browse/TCWG-1435
[quick run at VHE] https://github.com/stsquad/qemu/tree/add-vhe-rfc
Upstream Work ([VIRT-109])
==========================
- posted {PATCH v3 for 3.0 00/18} docker fixes (and one tcg test
tweak) Message-Id: <20180717195553.9111-1-alex.bennee(a)linaro.org>
[VIRT-109] https://projects.linaro.org/browse/VIRT-109
[v2 of docker fixes]
https://github.com/stsquad/qemu/tree/testing/docker-fixes-for-3.0-v2
[debootstrap master]
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903657
Testing and CI
==============
- started looking at converting the CI RISU jobs to submit via
qa-reports
- got a Packet.net machine for QEMU/Docker testing
- posted {PATCH RFC 00/10} docker on non-x86 hosts Message-Id:
<20180718100505.7546-1-alex.bennee(a)linaro.org>
QEMU CI Loop ([VIRT-187])
- investigating porting existing RISU tests via qa-reports
- add additional test patterns :todo
[VIRT-187] https://projects.linaro.org/browse/VIRT-187
KVM CI Loop ([VIRT-2])
- need to sync-up on the current state of this work :todo
- started looking at Xiang's latest auto setup scripts
[VIRT-2] https://projects.linaro.org/browse/VIRT-2
[our wiki] https://wiki.linaro.org/Core/Virtualization
MTTCG tests ([VIRT-52])
- need to dust these off and get up-streamed if I'm going to add new
tests :todo
[VIRT-52] https://projects.linaro.org/browse/VIRT-52
Other Tasks
===========
- Create an Instrumentation EPIC :todo
[arm64 story a bit more desktopy]
https://github.com/stsquad/gentoo/tree/arm-keywords-so-far
[Kata Containers] https://katacontainers.io/
[CrosVM] https://chromium.googlesource.com/chromiumos/platform/crosvm/
Completed Reviews [6/6]
=======================
{PATCH v2 00/13} iommu: support txattrs, support TCG execution, implement TZ MPC
Message-Id: <20180604152941.20374-10-peter.maydell(a)linaro.org>
- CLOSING NOTE [2018-06-14 Thu 19:27]
Looks good.
{PATCH 0/8} Docker improvements
Message-Id: <20180628164643.9668-1-f4bug(a)amsat.org>
- CLOSING NOTE [2018-06-29 Fri 21:38]
Grabbed some patches, commented on others
{Qemu-arm} {PATCH v6 00/35} target/arm SVE patches
Message-Id: <20180627043328.11531-1-richard.henderson(a)linaro.org>
- CLOSING NOTE [2018-06-29 Fri 21:39]
Looks good
{Qemu-devel} {PATCH v5 00/35} target/arm SVE patches
Message-Id: <20180621015359.12018-1-richard.henderson(a)linaro.org>
- CLOSING NOTE [2018-06-29 Fri 21:39]
Looking good, stopped to move to v6
{PATCH 0/4} KVM: arm64: FPSIMD/SVE fixes for 4.17
Message-Id: <1528976039-25826-1-git-send-email-Dave.Martin(a)arm.com>
- CLOSING NOTE [2018-06-29 Fri 21:40]
Seems sane to me.
{Qemu-arm} {PATCH v3-a 00/27} target/arm: Scalable Vector Extension
Message-Id: <20180516223007.10256-1-richard.henderson(a)linaro.org>
- CLOSING NOTE [2018-07-13 Fri 20:02]
Already merged
Absences
========
- Friday 20th July
- YVR18 Connect (17th-21st September 2018)
- KVM Forum 2018 (24th-26th October 2018)
Current Review Queue
====================
* {RFC PATCH 00/16} KVM: arm64: Initial support for SVE guests
Message-Id: <1529593060-542-1-git-send-email-Dave.Martin(a)arm.com>
* {PATCH 0/5} tests/vm: Improvements when KVM is not available
Message-Id: <20180717024827.27897-1-f4bug(a)amsat.org>
* {PATCH v4 00/19} reverse debugging
Message-Id: <20180528071332.9424.27343.stgit@pasha-VirtualBox>
* {RFC PATCH 00/12} tests/tcg: Add TriCore tests
Message-Id: <20180501142222.19154-1-kbastian(a)mail.uni-paderborn.de>
* {PATCH v4 00/14} fp-test + hardfloat
Message-Id: <1528768140-17894-1-git-send-email-cota(a)braap.org>
* {Qemu-devel} {RFC PATCH v2 0/7} QEMU binary instrumentation prototype
Message-Id: <152819515565.30857.16834004920507717324.stgit@pasha-ThinkPad-T60>
--
Alex Bennée
[TCWG-1424] Using profile feedback to investigate code size
- Have most of the information I need to draw some conclusions. Should
have the remaining runs I need over the weekend.
- Next step is to analyse the data a bit more formally and write up.
- Discuss next steps. It may be worth polishing up the pass and
posting upstream as an RFC.
- Would like to wrap the investigation up by the end of July
On holiday on Friday 20th July and Monday 23rd July, back in the
office on Tuesday 24th.
[Upstream]
Fixed an arm32 host linux-user bug affecting shmat.
Added a ppc guest linux-user missing syscall, swapcontext.
Patch review for hardfreeze.
[VIRT-198 # QEMU: SVE Emulation Support ]
Fixed a LD1W (scalar plus vector) typo.
De-macro-ising sve_helper.c to aid debugging.
r~
SVE Support ([VIRT-198])
========================
- wrote up abstract for HPC workshop on 26th July
- started on presentation for workshop
- convert [post on SVE development] to jekly blog format and re-check
steps :todo
- trying to get compilers set-up to debug failing Grid Test_simd
testcase
- now have full 1yr armclang license for me and rth
[VIRT-198] https://projects.linaro.org/browse/VIRT-198
[post on SVE development]
https://docs.google.com/document/d/15v1asqk-6de2RtA7ZWdIQ29PkY92gl3nlwG7_Se…
SVE Reviews
- finish reviewing {RFC PATCH 00/16} KVM: arm64: Initial support for
SVE guests Message-Id:
<1529593060-542-1-git-send-email-Dave.Martin(a)arm.com> :todo
- stalled this week due to other activities
Upstream Work ([VIRT-109])
==========================
- posted {PATCH for 3.0 00/10} various docker fixes Message-Id:
<20180709152117.21585-1-alex.bennee(a)linaro.org>
- worked on [v2 of docker fixes]
- fixed recent regression in [debootstrap master] which we use
- and then fixed our scripts so we don't *always* use master
- posted {PATCH v2 for 3.0 00/16} various docker fixes Message-Id:
<20180713121741.19262-1-alex.bennee(a)linaro.org>
[VIRT-109] https://projects.linaro.org/browse/VIRT-109
[v2 of docker fixes]
https://github.com/stsquad/qemu/tree/testing/docker-fixes-for-3.0-v2
[debootstrap master]
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903657
Testing and CI
==============
- started looking at converting the CI RISU jobs to submit via
qa-reports
- applied for packet.net bare metal machine for docker/kvm testing
QEMU CI Loop ([VIRT-187])
- investigating porting existing RISU tests via qa-reports
- add additional test patterns :todo
[VIRT-187] https://projects.linaro.org/browse/VIRT-187
KVM CI Loop ([VIRT-2])
- need to sync-up on the current state of this work :todo
- started looking at Xiang's latest auto setup scripts
[VIRT-2] https://projects.linaro.org/browse/VIRT-2
[our wiki] https://wiki.linaro.org/Core/Virtualization
MTTCG tests ([VIRT-52])
- need to dust these off and get up-streamed if I'm going to add new
tests :todo
[VIRT-52] https://projects.linaro.org/browse/VIRT-52
Other Tasks
===========
- Create an Instrumentation EPIC :todo
[arm64 story a bit more desktopy]
https://github.com/stsquad/gentoo/tree/arm-keywords-so-far
[Kata Containers] https://katacontainers.io/
[CrosVM] https://chromium.googlesource.com/chromiumos/platform/crosvm/
Completed Reviews [6/6]
=======================
{PATCH v2 00/13} iommu: support txattrs, support TCG execution, implement TZ MPC
Message-Id: <20180604152941.20374-10-peter.maydell(a)linaro.org>
- CLOSING NOTE [2018-06-14 Thu 19:27]
Looks good.
{PATCH 0/8} Docker improvements
Message-Id: <20180628164643.9668-1-f4bug(a)amsat.org>
- CLOSING NOTE [2018-06-29 Fri 21:38]
Grabbed some patches, commented on others
{Qemu-arm} {PATCH v6 00/35} target/arm SVE patches
Message-Id: <20180627043328.11531-1-richard.henderson(a)linaro.org>
- CLOSING NOTE [2018-06-29 Fri 21:39]
Looks good
{Qemu-devel} {PATCH v5 00/35} target/arm SVE patches
Message-Id: <20180621015359.12018-1-richard.henderson(a)linaro.org>
- CLOSING NOTE [2018-06-29 Fri 21:39]
Looking good, stopped to move to v6
{PATCH 0/4} KVM: arm64: FPSIMD/SVE fixes for 4.17
Message-Id: <1528976039-25826-1-git-send-email-Dave.Martin(a)arm.com>
- CLOSING NOTE [2018-06-29 Fri 21:40]
Seems sane to me.
{Qemu-arm} {PATCH v3-a 00/27} target/arm: Scalable Vector Extension
Message-Id: <20180516223007.10256-1-richard.henderson(a)linaro.org>
- CLOSING NOTE [2018-07-13 Fri 20:02]
Already merged
Absences
========
- Two days out due to illness
- YVR18 Connect (17th-21st September 2018)
- KVM Forum 2018 (24th-26th October 2018)
Current Review Queue
====================
* {RFC PATCH 00/16} KVM: arm64: Initial support for SVE guests
Message-Id: <1529593060-542-1-git-send-email-Dave.Martin(a)arm.com>
* {PATCH v4 00/19} reverse debugging
Message-Id: <20180528071332.9424.27343.stgit@pasha-VirtualBox>
* {RFC PATCH 00/12} tests/tcg: Add TriCore tests
Message-Id: <20180501142222.19154-1-kbastian(a)mail.uni-paderborn.de>
* {PATCH v4 00/14} fp-test + hardfloat
Message-Id: <1528768140-17894-1-git-send-email-cota(a)braap.org>
* {Qemu-devel} {RFC PATCH v2 0/7} QEMU binary instrumentation prototype
Message-Id: <152819515565.30857.16834004920507717324.stgit@pasha-ThinkPad-T60>
* {Qemu-devel} {RFC v2 0/2} Add BPF suuport to Qemu
Message-Id: <20180625110706.23332-1-sameeh(a)daynix.com>
--
Alex Bennée
4 day week, on holiday monday
Submitted a Linaro Connect presentation.
[TCWG-1424] Investigate profile feedback for code-size
Frustrating week trying to plug profile feedback into builds and
benchmarks and get sensible results
- First attempt was to use clang 2 stage pgo build
-- New pass manager has a bug that prevents clang from linking when I
enable clang instrumented profiling (local ref into discarded comdat
group containing counters)
-- Sample based profiling requires building create_llvm_prof from
Google's autofdo repository. Does not build out of the box after it
switched to using git submodules for its dependencies, managed to fix
up makefile to get it built.
-- Tried a sample profiling run but with perf's sampling rate and
clang's running time mean that the number of samples is too small to
give meaningful results.
-- The version of perf on my machine doesn't support incremental
profiling so I can't accumulate data from multiple runs.
-- Inlining before my pass to mark functions for size optimisation
accounts for majority of code size increase.
- Second attempt was integrating clang/llvm profiling into spec
-- Spent way longer than I'd expected working out how to write a
config file that handles sample and instrumentation based profile
runs. Both forms require the profile generated from perf or an
instrumented build to be post-processed before being used as an input
for the next stage. The sample profiling also needs the path to the
training executable which isn't obvious how to do.
-- Got SpecInt running with all the various combinations that I want
to run, haven't had time to do full runs to get results yet
== Progress ==
* FDPIC
- GCC: posted patch series v2.
* GCC upstream validation:
- looking at some random noise in testing
- reported a couple of regressions
* Infrastructure:
- prototyped native toolchain build job
- misc cleanups
* misc (conf-calls, meetings, emails, ....)
== Next ==
Holidays for 2 weeks, back on July 30th
Progress:
* VIRT-65 [QEMU upstream maintainership]
+ tracked down and sent fix for bug in MPU handling of exception
frame unstacking that broke a Zephyr test case
+ sent some patches for minor GICv2 bugs
+ code review:
- large series adding virtualization support to GICv2
* VIRT-164 [improve Cortex-M emulation]
+ completed patchset that implements execution from small MPU regions
and MMIO regions, and sent it out for review
+ found and fixed a few bugs in the code I was modifying in the process
thanks
-- PMM
=== Work done during this week ===
* Continue work on TCWG-1428 (Support arithmetic on FileCheck regex
variable): external review
+ finish adding comments
+ add documentation and testcase
+ respond to feedback and send email to llvm-dev to discuss best
syntax for new feature
* Started looking into TCWG-1062 (MCF branch prediction overload due
to too many consecutive branches):
+ figure out what machines to run spec on, where to find spec and
how to use Linaro scripts to install/configure and run it (thanks to
Christophe Lyon)
+ try to build a native clang toolchain but throw it away since
clang does not link (perhaps due to lack of memory (4G machine))
+ learn how to build a cross LLVM toolchain (thanks to Peter Smith)
+ figure out how to get the right privilege to run perf (thanks to
Christophe Lyon)
* Misc:
+ LLVM buildbot babysitting with Peter Smith
+ attend presentation about Windows on Arm
+ start a full reorganization of my workflow
+ finish handover of my Arm tickets
=== Plan for week 28 ===
* DSGHACK-25 (Support arithmetic on FileCheck regex variable): address comments
+ rework patch once syntax is agreed
* Continue looking into MCF branch prediction overload due to too many
consecutive branches:
+ reproduce/confirm issue
+ start to investigate a solution
[VIRT-198 # QEMU: SVE Emulation Support ]
Fixed a couple of bugs uncovered by Alex's VQ16 traces.
[VIRT-249 # SVE System Mode ]
Tracked a phantom kernel crash for a while before it
magically went away with a qemu from-scratch rebuild.
(Plus other stuff, maybe? I tried a lot of things.)
Wrote a version of helper_sve_ldff1_bb_r that works
on pages, and works with softmmu.
time ./bld/tests/test-strlen
softmmu: 0m5.467s
linux-user (old): 0m2.016s
linux-user (new): 0m1.853s
Still need to generalize this to the other first-fault/
no-fault helpers. And possibly write some synthetic test
cases for them. Certainly they've not been tested so
far by anything.
[QEMU Upstream]
* tcg-next pull request.
* Review of some ppc fpu patches went too many rounds
before I broke down and wrote some patches myself.
* More nanomips review.
[GCC Upstream]
Fixed some problems with, and committed, the movprfx patches.
r~