Progress:
* VIRT-65 [QEMU upstream maintainership]
+ 2.12 release kicked out the door; hopefully I can do a bit more
actual development work for a bit now...
+ investigating problems with execute-in-place-from-MMIO-device
functionality : the test case (for a Xilinx board model) crashes
reliably for me. I cooked up an RFC patch and sent it, but it
includes one weird hack and I'm not sure if it's the right approach...
+ we got a Coverity Scan run through after a couple of months of not
having one, and a pile of issues have accumulated. Waded through some
of them and flagged them up with the patch submitters who added the
code that introduced them.
Notes:
* QEMU will have not one but two interns working on Cortex-M0
and micro:bit support (one from Google Summer of Code and
one from Outreachy) !
* QEMU turns 15 years old this year. To celebrate we plan to
make the next release be 3.0 (and perhaps to have birthday
cake at KVM Forum?)
thanks
-- PMM
* GCC Benchmarking
- Tried Jenkins jobs for trunk benchmarking and posted a patch to
fix -std=legacy needed for gfortran
- Going over the job definitions to add support for SPEC2017
* LLVM
- Looking at spec2006 difference compared to gcc in astar due to
speculative devirtualization not happening
- Going over the background material in Honza's blog and LLVM presentations
[QEMU Upstream]
Fix for softfloat scalbn, broken during the 2.12 reorg.
Code review for Alex's tcg/tests patchset.
Produced a script describing how to build cross-compilers.
[VIRT-198 # QEMU: SVE Emulation Support ]
Fix an tcg generic vector assert hitting SVE w/ VQ=3.
Rebase and post cleanup patch for TCGv_ptr operations.
Finished round 2 of SVE cleanup and fixes. RISU now once
again passes for VQ in [1-4] (which is the limitation of
the FoundationModel against which we are generating trace files).
I'll note that a lulesh binary that I generated for HKG18
does not work on the branch, but does under FoundationModel.
Therefore there must be remaining emulation errors.
However, it's a really complicated binary that is non-debuggable.
Adding printfs interferes with vectorization and gdb does not
yet let us print all of the relevant registers.
My thoughts from here go toward running the gcc testsuite,
and seeing what can be uncovered by those smaller examples.
r~
Progress:
Monday Tuesday at Euro LLVM, trip report at
https://collaborate.linaro.org/display/CR/20180416+EuroLLVM+2018
Found an example that shows that both gold and ld attempt to fix up
illegal "by strict interpretation of ELF" local debug references to
discarded local symbols from rejected comdat groups.
[TCWG-1375] LLVM should do relaxation per function.
- Worked out what instruction bundling is (From NaCl) and how it
relates to MCFragments.
- Posted revised patch upstream to handle relaxation and fixups, now
diagnoses attempt to change MCSubtargetInfo mid bundle.
- I have a finished a large series of patches to pass the
MCSubtargetInfo through to all the places it needs to be including
writeNops. Will post upstream review next week.
Next week:
- Post revised patches to TCWG-1375 and ping reviews.
- Work through a laundry list of small things to do in LLD.
- Get back to trying to link Android AOSP with LLD.
=== Work done during this GCC week ===
* TCWG-1379 (stack-protector failure on GCC ARM): need feedback from
community
+ reproduce on trunk and find out why it happens on ARM and not AArch64
or x86
+ find potential issue for all targets as well, though less likely
+ find discrepencies between code and documentation and wondered if code
is not overly zealous in some case
* 2 days doing Arm handover & meetings
=== Plan for next week (week 12) ===
* Progress on stack-protector failure
* Support arithmetic on FileCheck regex variable: finish patch
Progress:
* VIRT-65 [QEMU upstream maintainership]
+ sent another patch related to linux-user signal frames (a wrinkle
I had thought had no effect with SVE disabled turns out to be
relevant in the no-SVE case too)
+ testing and applying patches for 2.12 rc4
+ code review:
- latest spin of the SMMUv3 emulation patches
- some last-minute fixes to our softfloat refactoring
- memory barrier handling in the 32-bit arm TCG backend was broken
+ tracked down a zephyr test failure on QEMU as the same bug in
the Zephyr timer device driver as the one I reported 6 months ago...
+ sent a patch fixing linux-user emulation of getdents syscall for
64-bit guest on 32-bit host
+ sent a patchset that removes the long-standing "only 4 serial ports"
limit in QEMU (various Arm boards really have 5 or 6)
+ some patches fixing errors in arm boards that don't properly
register all their RAM regions for migration
thanks
-- PMM
[VIRT-198 # QEMU: SVE Emulation Support ]
Cleaning up patches and fixing RISU failures.
[UPSTREAM]
Review of the tb_lock patch set.
Finish review of the v2 TranslateOps patch set.
Pushed a couple of softfloat fixes and an icount fix for 2.12.
r~