Progress:
* UM-2 [QEMU upstream maintainership]
+ tracked down the UEFI crash with KVM on AArch64 to a combination of
(a) host system was heterogenous and user hadn't restricted QEMU to
only running on one set of cores and (b) QEMU silently throws away
the error it gets from KVM in this situation, resulting in most
things seeming to work except that vcpu power on/off state isn't
written to KVM and so the guest starts with all vcpus running
instead of just the primary. We should really improve the error
handling, but I worry that that might break previously functional
setups...
+ tidied up some patches I wrote while doing the GICv4 work that
fix an odd inconsistency in our GIC emulation where we correctly
implement the right number of virtual priority bits for the CPU
but always provide 8 bits of physical priority regardless of what
the real CPU implementation should have, and sent them out for review
+ usual code review and pullreq management
* QEMU-422 [QEMU Arm Neoverse V1 vCPU for TCG]
+ Implemented support for FEAT_S2FWB and sent patches to the list
+ Next up is probably FEAT_IDST (ID space trap handling)
-- PMM
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
* Continued working on the testsuite regressions introduced by my code.
- Realised that gdbserver uses “thread->tdesc != NULL” as a proxy of
whether it has already attached to the inferior process. My change to
track the target description per-thread instead of per-process
invalidated this equivalence. Fixed a few places to use “proc->attached”
instead, which is the direct way of testing that condition.
- Now looking into an issue with gdbserver loading libthread_db.so.
# Misc
- Reviewed Tom Tromey's “[PATCH 00/36] C++-ify breakpoints” patch series¹.
Spotted one bug.
--
Thiago
¹ https://sourceware.org/pipermail/gdb-patches/2022-January/185256.html
msgid:20220118194007.2853108-1-tom@tromey.com
Progress:
* UM-2 [QEMU upstream maintainership]
+ investigating a bug report about the guest UEFI crashing on
startup when using KVM on AArch64 with an SMP guest (sadly I haven't
been able to repro it myself thus far)
* QEMU-422 [QEMU Arm Neoverse V1 vCPU for TCG]
+ audited code to check we can enable FEAT_TTL in QEMU (ie we ignore the
new TTL hint field in TLB invalidate operations)
+ audited code to check we can enable FEAT_BBM level 2 in QEMU
(our TLB implementation never allows multiple clashing TLB entries)
+ audited code to check we can enable SMMUv3.2-BBML2 in our SMMUv3
(our SMMU TLB does allow multiple entries but will always select
the one for the lowest level and ignore the others)
+ sent patches to advertise FEAT_TTL, FEAT_BBM, SMMUv3.2-BBML2 in
CPU and SMMU ID registers
-- PMM
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
* Found and fixed problem with the gdbserver prototype: it didn't clear the
registers cache when the target description changed. The prototype is
working now.
* Turned my attention to the testsuite regressions introduced by my changes.
Fixed one where gdbserver was crashing when debugging multi-threaded
programs, and now investigating one where gdbserver returns an error when
handling the ‘vRun’ remote protocol packet.
# Misc
* Public holiday on Thursday — but I took it on Friday instead.
--
Thiago
Progress (two half-weeks):
* UM-2 [QEMU upstream maintainership]
+ Got the 7.0 release out of the door and handed over pullrequest
processing to RTH for the 7.1 cycle \o/
+ Code review backlog now pretty nearly empty (worked through several
large patchsets from RTH as well as some smaller things)
+ two arm pullreqs for 7.1 sent out already
* QEMU-420 [GICv4 emulation]
+ The GICv4 emulation has now made it through code review and since
we've released 7.0 it is now in upstream git for 7.1
+ The GICv4.1 work has been moved to a new epic QEMU-479, as we're
not going to do that immediately
+ This epic is therefore closed!
-- PMM
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
* Implemented prototype of GDB and gdbserver changing the target
description in sync when the vg pseudo-register changes. The GDB side
seems to be working, but gdbserver still has issues which I'm
currently debugging.
# Misc
* Public holiday on Friday.
--
Thiago
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
* Got prototype of variable length vectors in GDB target descriptions
barely working, but fell down a rabbit hole trying to fix an issue
with the vector register size being misreported by ‘sizeof()’. Decided
to change tack and implement the simpler aim of updating the client
and server target descriptions in sync when the vector length changes.
This is Luis' idea from 2020¹, and closer to how native GDB debugging
currently works in this scenario.
--
Thiago
¹ https://sourceware.org/pipermail/gdb/2020-January/048341.html
Progress:
* UM-2 [QEMU upstream maintainership]
+ Finished sorting out the exynos4210 SoC interrupt wiring and sent
a patchset that cleans it up and makes it stop using qemu_split_irq()
+ rc3 tagged this week. We will need an rc4 next week for a couple of
late-breaking security fixes.
* QEMU-420 [GICv4 emulation]
+ Finished the last bits of debugging and wiring up GICv4 support on
the virt board, and sent initial patchset to the list for review:
https://patchew.org/QEMU/20220408141550.1271295-1-peter.maydell@linaro.org/
-- PMM
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
* Moved tracking of this work from GNU-732 (GDB support for SME) to
more specific story GNU-767.
* Started writing prototype of variable length vectors in GDB target
descriptions.
# Basic setup / onboarding
- Read a couple more Linaro processes documents.
# Misc
* Attended Linaro Connect Tech Day: Core Technologies.
--
Thiago
Project Stratos
===============
- more follow-up on Re: Understanding osdep_xenforeignmemory_map mmap
behaviour Message-Id:
<alpine.DEB.2.22.394.2203231838130.2910984@ubuntu-linux-20-04-desktop>
- various Stratos sync-ups
vhost-device maintainer effort ([UM-196])
- bit of maintainer review work
Linux RPMB Sub-system and virtio-driver ([STR-40])
- got [kernel] and [vhost-user] daemon passing all tests with
multi-block reads/writes
- will clean-up series next week for posting to the lists
[STR-40] <https://linaro.atlassian.net/browse/STR-40>
[kernel]
<https://git.linaro.org/people/alex.bennee/linux.git/tag/?h=testing/vrpmb-re…>
[vhost-user]
<https://github.com/stsquad/qemu/tree/virtio/vhost-user-rpmb-v2>
QEMU Upstream Work ([UM-2])
===========================
- posted [PATCH v1 0/2] some tests and plugin tweaks for SVE
Message-Id: <20220328152614.2452259-1-alex.bennee(a)linaro.org>
- posted [PATCH v3] tests/avocado: update aarch64_virt test to
exercise -cpu max Message-Id:
<20220328161357.2464572-1-alex.bennee(a)linaro.org>
- posted [RFC PATCH] docs/devel: add some notes on the
binfmt-image-debian targets Message-Id:
<20220329095041.2758355-1-alex.bennee(a)linaro.org>
[UM-2] <https://linaro.atlassian.net/browse/UM-2>
Other
=====
- Presented [LTD 2022 QEMU talk]
- attneded some others
[LTD 2022 QEMU talk]
<https://resources.linaro.org/en/resource/tL9M2yyti73StqK1d9ap8f>
Completed Reviews [1/1]
=======================
[PATCH 00/15] tests/docker and tests/tcg cleanup and diet
Message-Id: <87czi6xbzo.fsf(a)linaro.org>
Absences
========
Current Review Queue
====================
TODO [PATCH 00/17] tests/docker and tests/tcg cleanup and diet
Message-Id: <20220401141326.1244422-1-pbonzini(a)redhat.com>
========================================================================================================================
TODO [RFC PATCH 0/6] softfloat 128-bit integer support
Message-Id: <20220328201442.175206-1-matheus.ferst(a)eldorado.org.br>
=========================================================================================================================
TODO [PATCH for-7.1 v2 00/39] Logging cleanup and per-thread logfiles
Message-Id: <20220326132534.543738-1-richard.henderson(a)linaro.org>
=======================================================================================================================================
--
Alex Bennée
Progress (short week, 2 days):
* UM-2 [QEMU upstream maintainership]
+ More of the usual freeze-related work
+ Tracked down and fixed assertion when running with clang sanitizers
+ We finally got a Coverity Scan run through for the first time in a
month or two, and it was full of new issues. Spent some time going
through them and marking false positives or reporting the problems
back to original code authors to be fixed
+ Looking at the tangle of interrupt lines in our exynos4210 SoC
model -- this needs a refactoring and cleanup so we can get rid
of its uses of an obsolete function
-- PMM
Hello,
# [GNU-732] GDB support for ARMv9 Scalable Matrix Extension (SME)
* Continued working on gdbserver and remote protocol support for
programs that change the SVE vector length during execution:
- Studied the 2020 discussion around Luis' proposal to support changed
VL size in the Remote Serial Protocol / gdbserver, as well as
relevant parts of the RSP itself.
- Started studying GDB's type system and how it handles dynamic types,
and also the target description code to assess the feasibility of
making the vector registers use a dynamically sized type.
- Luis made a second proposal in that mailing list discussion where
the target description wouldn't be transferred via the remote
protocol, just the vector length. Then both GDB and gdbserver could
locally update their own descriptions based on that. Starting to
think about this alternative. It would probably be simpler than
changing the target description to use a dynamically sized type for
the Z registers.
# Basic setup / onboarding
* Work laptop arrived. Set it up.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
+ More of the usual freeze-related work
* QEMU-420 [GICv4 emulation]
+ I think the code is more or less bug-free now; still need to
figure out the best way for a board to request a GICv4
(eg do we want a 'revision' property specifying 3, 3.1, 4, 4.1,
or just 3 vs 4 with some optional booleans for extra features?)
-- PMM
Hello,
# [GNU-732] GDB support for ARMv9 Scalable Matrix Extension (SME)
* Continued reading patches from Mark Brown's v12 patch set adding SME
support to the Linux kernel. Sent a few trivial review comments.
* After conversation with Luis, decided to work on gdbserver and remote
protocol support for programs which change the SVE vector length
during execution (native GDB already supports it). This issue will
most likely be relevant for SME as well. Started by studying Luis'
proposal from 2020 and background information provided by him.
# Basic setup / onboarding
* Bought a work laptop.
* Set up access to the team's machines.
--
Thiago
Progress (for a week-and-a-half)
* UM-2 [QEMU upstream maintainership]
+ Lots of freeze-related work (softfreeze was last week and we tagged
rc0 this week)
+ Code review of other peoples's stuff to go into the release
+ Assembling arm pullreqs
+ Investigating an intermittent failure in one of our test cases on
s390 host, which seems like it may be a bug in the s390
h/w-accelerated zlib
* QEMU-420 [GICv4 emulation]
+ Still debugging...
-- PMM
Hello,
I see this release gcc-linaro-4.9-2016.02 for 86_64_arm-linux-gnueabihf:
https://releases.linaro.org/components/toolchain/binaries/4.9-2016.02/arm-l…
and would like to reproduce the toolchain for aarch64 hosts. I see that it was built with ABE, though I have generally been unsuccessful in getting ABE to work on aarch64 for this. I was looking for some build or ci breadcrumbs or documentation. What can you recommend?
The motivation here is to support legacy development/testing from modern aarch64 hardware.
Cheers,
Joe Gorse
Hello,
# GDB support for ARMv9 Scalable Matrix Extension (SME)
- Synced with Luis Machado to learn what the current status is. Read
discussions in the linux-arm-kernel mailing list which he pointed to.
- Read Arm architecture documentation about Neon, SVE, SVE2 and SME to
familiarise myself with these features.
- Basic setup / onboarding
- Joined some internal and external mailing lists, IRC and Slack
channels.
- Read some company policy documents.
- Researched models and got a quote for a work laptop.
- Set up aarch64 cross-compilation environment on my laptop.
- Set up emulated aarch64 machine with Fedora on my laptop.
- Attempted setting up emulated aarch64 machine with Ubuntu on my
laptop, but ran into problems with the Ubuntu Server installer.
--
Thiago