Progress:
* VIRT-65 [QEMU upstream maintainership]
- code review:
+ Xilinx Versal SoC support
- investigated problem with a "suppress this warning patch" which
gcc 8 didn't like. It turns out that _Pragma() in GCC is a bit
of a disaster area; fortunately we only need to suppress a
warning here for clang, so we can just avoid using _Pragma() with GCC.
(cf GCC bugs 85153, 69558, 82335, 66099, 55578, 69543.
clang is not flawless here either: cf clang bugs 31999, 15129, 35154.
The clang false-positive warning we're working around is bug 39113.)
* VIRT-164 [improve Cortex-M emulation]
- stack-limit emulation patches have now gone into master, so this
epic can be closed out. Some v8M work will continue under
VIRT-268 (notably FP emulation); bugfixing and similar
small work will go under the general VIRT-65 maintainership epic.
* VIRT-215 ["run microvisors", aka support AArch32 Hyp mode]
- working through some of the HCR bits we don't implement, to see
if any of them are the cause of the failures I see with AArch32
hypervisors. (Sadly they don't seem to be.) Sent out patches
implementing HCR.{FB,DC,VI,VF,PTW} and fixing some syndrome
reporting corner cases where AArch32 differs from AArch64.
thanks
-- PMM
[VIRT-249 # SVE System Mode ]
Posted v3 (and hopefully final) patch set for system mode.
[Upstream]
Fixed a problem with softfloat division; 3 versions + pull posted.
Posted v3 of a cleanup to 128-bit atomics.
[GCC]
V2 of the -matomic-ool patch set posted.
r~
o LLVM
* Machine Outliner on ARM prototype:
- Fixed some Thumb2 issues
- Implemented Thumb1 support
- Debugging Thumb1 issues in Spec2K6
* Bots babysitting
o Misc
* Various meetings and discussions.
=== Work done during this past week ===
* One day annual leave
* TCWG-1428 (Support arithmetic on FileCheck regex variable):
+ started cleaning up code and continued adding support for last syntax tweaks
* TCWG-1379 / GCC PR85434 / CVE-2018-12886: rework needed
+ After more testing committed fix for register allocator and
reverted following regression
+ fall back to workaround as register allocator lack information to
decide whether it's safe to not reload an address
+ start testing workaround more extensively
* TCWG-1470 / PR87374: upstream review
+ add missing documentation, improve related code slightly, submit
for external review again
Misc:
+ bits of line management
+ Doughnut session on OSS strategy
+ discussion around JIRA use in TCWG
=== Plan for week 41 ===
* TCWG-1379 / GCC PR85434 / CVE-2018-12886:
+ finish testing, and submit new stack protector patch for upstream review
* TCWG-1428 (Support arithmetic on FileCheck regex variable):
+ finish change to support last syntax changes
+ extend testcase coverage (add tests for latest syntax change and
add more negative testing)
+ start cleaning up the code
* Try to reproduce perf issue mentioned in week #30's weekly report on
latest perf
* Line management
[TCWG-1473] Fix -fno-integrated-as and -mbig-endian (Linux Kernel
Build with clang)
- 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
- Patch in upstream review
[TCWG-1424] Code-size investigations with PGO
- Reworked the clang command line options and pass manager interface
so I could insert the pass prior to inlining.
- Benchmarks running over the weekend.
SVE Support ([VIRT-198])
========================
SVE Reviews
- reviewed and tested {PATCH v2 0/4} softfloat: Fix division
Message-Id: <20181003180711.19335-5-richard.henderson(a)linaro.org>
and v3
QEMU Tooling ([VIRT-252])
=========================
[VIRT-252] https://projects.linaro.org/browse/VIRT-252
[VIRT-280] https://projects.linaro.org/browse/VIRT-280
QEMU plugin support ([VIRT-280])
- following discussion with team started adding plugin hooks to
[tracepoint clean-up]
- I think I need to resurrect and expand the cputlb de-macro stuff
to cleanly add memory tracing
- written hotblocks and tlbstats tools
- posted {RFC PATCH 00/21} Trace updates and plugin RFC Message-Id:
<20181005154910.3099-1-alex.bennee(a)linaro.org>
[VIRT-280] https://projects.linaro.org/browse/VIRT-280
[tracepoint clean-up]
https://github.com/stsquad/qemu/tree/misc/dfilter-and-trace-tweaks-v2
Kernel Debug via gdbstub
- There was some discussion about improving debug experience with
kernel debugging
- for example while in KVM a single-step usually goes to the
exception table
- in TCG this isn't always the case (maybe time accounting is
better?)
- follow-up on x86 and kgdb experience :todo
- worth creating a STORY for this work? :todo
Upstream Work ([VIRT-109])
==========================
- started looking at {PATCH 0/7} Acceptance Tests: basic architecture
support Message-Id: <20181004151429.7232-1-crosa(a)redhat.com>
- get the upstream CI back on track :todo
[VIRT-109] https://projects.linaro.org/browse/VIRT-109
Other Tasks
===========
- Started drafting the QEMU Keynote/Status report for KVM Forum 2018
Completed Reviews [6/6]
=======================
{PATCH v3 0/3} softfloat tests based on berkeley's testfloat
Message-Id: <20180913213910.28189-1-cota(a)braap.org>
- CLOSING NOTE [2018-09-28 Fri 19:40]
I'm happy with this
{PATCH v2 0/4} softfloat: Fix division
Message-Id: <20181003180711.19335-5-richard.henderson(a)linaro.org>
- CLOSING NOTE [2018-10-04 Thu 10:37]
some failures on emilio's tests
{Qemu-devel} {RFC PATCH v2 0/3} acceptance tests: Test firmware checking debug console output
Message-Id: <20181003183036.6716-1-philmd(a)redhat.com>
- CLOSING NOTE [2018-10-04 Thu 15:07]
Still broken for multiarch
{PATCH v2 0/4} per-TLB lock
Message-Id: <20181003200454.18384-1-cota(a)braap.org>
- CLOSING NOTE [2018-10-04 Thu 15:07]
Baring a few compile fixes it looks pretty stable in the soak tests.
{PATCH} fpu/softfloat: Replace countLeadingZeros32/64 with clz32/64
Message-Id: <1538118095-7003-1-git-send-email-thuth(a)redhat.com>
- CLOSING NOTE [2018-10-04 Thu 15:09]
Simple clean-up
{PATCH v3 0/4} softfloat: Fix division
Message-Id: <20181004175700.20847-1-richard.henderson(a)linaro.org>
- CLOSING NOTE [2018-10-05 Fri 16:59]
Looks good
Absences
========
- KVM Forum 2018 (24th-26th October 2018)
Current Review Queue
====================
* {PATCH 0/7} Acceptance Tests: basic architecture support
Message-Id: <20181004151429.7232-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>
* {Qemu-arm} {PATCH v2 00/15} gdbstub: support for the multiprocess extension
Message-Id: <20181001115704.701-1-luc.michel(a)greensocs.com>
* {Qemu-devel} {PATCH v2 0/9} target/arm: Rely on id regs instead of features
Message-Id: <20180927211322.16118-1-richard.henderson(a)linaro.org>
* {Qemu-devel} {PATCH v2 00/15} target/arm: sve system mode patches
Message-Id: <20180926192323.12659-1-richard.henderson(a)linaro.org>
* {Qemu-arm} {PATCH v2 00/15} gdbstub: support for the multiprocess extension
Message-Id: <20181001115704.701-1-luc.michel(a)greensocs.com>
--
Alex Bennée
Progress:
* VIRT-65 [QEMU upstream maintainership]
- code review:
+ bug fixes for aarch64 KVM debug support
+ various patches to avoid deprecated sysbus:init API
+ SVE system emulation support
- investigated a bug where system reset requested by a device
model was sometimes not firing -- seems to be a race condition
* VIRT-164 [improve Cortex-M emulation]
- picked up the half-finished patches for stack-limit emulation that
I'd written before going off on holiday, and completed them.
Sent the patchset out for review.
- sent patches for a couple of other minor bugs noticed in the process
thanks
-- PMM
== Progress ==
* FDPIC
- GCC: handling feedback on v2 patches
* GCC upstream validation:
- reported a few regressions
- dealing with some random results, again
- discussing collaboration with kernel-ci
* Linaro gcc-7 release
- backported fixes for bug #4007
* Newlib
- sent a few small patches to remove warnings when building for Arm and Aarch64
* misc (conf-calls, meetings, emails, ....)
- (internal) Wrote report about GNU Cauldron 2018
== Next ==
FDPIC:
- GCC: send v3 patches feedback
- uclibc-ng: look at how to test fdpic mode with openadk
Progress:
[VIRT-214 # SVE System Registers ]
Posted v2 patch set for eliminating redundancy between
feature bits and id registers.
[VIRT-249 # SVE System Mode ]
Posted v2 patch set, without the system registers included.
[Upstream]
First 3.1 tcg-next pull request.
Spent a day working on Emilo's suggestion to out-line the entire softmmu
load/store operation. I've placed a shed load of small code segments
within the tcg "prologue", which is within a direct call of the entire
code_gen_buffer. Emilio got some performance numbers from that which
look promising. Need to clean up the patch to work with 32-bit and win64.
[GCC]
V1 of my SUSE+ARM inspired -matomic-ool patch set posted. Includes some
significant improvements to atomic operations in the aarch64 backend.
Got some good feedback and am working my way through those.
r~
* Recovery from Cauldron, then from Connect
== Progress ==
* FDPIC
- GCC: handling feedback on v2 patches
* GCC upstream validation:
- reported a few regressions
- dealing with some random results, again
* Linaro gcc-7 release
- backported fixes for bug #4007
* Newlib
- checked warnings emitted by GCC during newlib build, will send small patches
* misc (conf-calls, meetings, emails, ....)
- Attended Linaro Connect YVR18, contributed to report
== Next ==
FDPIC:
- GCC: handle v2 patches feedback
- uclibc-ng: look at how to test fdpic mode with openadk
- look at how to use Linux kernel atomics