public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/31] target/arm: fully model WFxT instructions for A-profile
@ 2026-04-22 10:10 Alex Bennée
  2026-04-22 10:10 ` [PATCH v2 01/31] target/arm: migrate basic syndrome helpers to registerfields Alex Bennée
                   ` (31 more replies)
  0 siblings, 32 replies; 33+ messages in thread
From: Alex Bennée @ 2026-04-22 10:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alexander Graf, qemu-arm, Peter Maydell, Paolo Bonzini,
	Mohamed Mediouni, kvm, Pedro Barbuda, Alex Bennée

This series fully models the behaviour of WFxT instructions. We
already had support for WFE for M-profile but we left off A-profile as
it has more potential sources of wake-ups. The main one is the event
stream which includes events from significant bits of the timer
ticking over.

The series starts with some refactoring of the syndrome register
helpers to use registerfields. We then expand the WFIT trap handling
to report the register used. We then implement the event stream events
for SEV, global monitor and the timer related ones before enabling WFE
for A-profile and then finally WFET.

Note on AI usage. As an experiment I previously posted an RFC series
with the help of Gemini. This series however is a ground up
re-implementation which takes some different approaches on modelling
the event stream. In particular rather than running multiple timers we
use the same wxft timer and just compute if the timeout or timer event
will come first.

v2
  - I've kept the tests separate, see:

    Message-ID: <20260417164328.1009132-1-alex.bennee@linaro.org>
    Date: Fri, 17 Apr 2026 17:43:20 +0100
    Subject: [PATCH 0/7] tests/tcg: more capabilities for aarch64-softmmu tests
    From: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>

  - tweaks to global monitor behaviour
  - STLR/STL will also trigger events to avoid deadlocks
  - see under the --- in the patches for details

Alex.

Alex Bennée (31):
  target/arm: migrate basic syndrome helpers to registerfields
  target/arm: migrate system/cp trap syndromes to registerfields
  target/arm: migrate FP/SIMD trap syndromes to registerfields
  target/arm: migrate eret trap syndromes to registerfields
  target/arm: migrate SME trap syndromes to registerfields
  target/arm: migrate PAC trap syndromes to registerfields
  target/arm: migrate BTI trap syndromes to registerfields
  target/arm: migrate BXJ trap syndromes to registerfields
  target/arm: migrate Granule Protection traps to registerfields
  target/arm: migrate fault syndromes to registerfields
  target/arm: migrate debug syndromes to registerfields
  target/arm: migrate wfx syndromes to registerfields
  target/arm: migrate gcs syndromes to registerfields
  target/arm: migrate memory op syndromes to registerfields
  target/arm: migrate check_hcr_el2_trap to use syndrome helper
  target/arm: use syndrome helpers in arm_cpu_do_interrupt_aarch32_hyp
  target/arm: use syndrome helpers to set SAME_EL EC bit
  target/arm: make whpx use syndrome helpers for decode
  target/arm: make hvf use syndrome helpers for decode
  target/arm: use syndrome helpers in merge_syn_data_abort
  target/arm: use syndrome helpers to query VNCR bit
  target/arm: remove old syndrome defines
  target/arm: report register in WFIT syndromes
  target/arm: teach arm_cpu_has_work about halting reasons
  target/arm: redefine event stream fields
  target/arm: ensure aarch64 DISAS_WFE will exit
  target/arm: implements SEV/SEVL for all modes
  target/arm: hoist event broadcast code into a helper
  target/arm: implement global monitor events
  target/arm: enable event stream on WFE instructions
  target/arm: implement WFET

 target/arm/cpu.h               |  27 ++
 target/arm/internals.h         |  31 +-
 target/arm/syndrome.h          | 595 +++++++++++++++++++++++++++------
 target/arm/tcg/helper-defs.h   |   3 +-
 target/arm/tcg/translate.h     |  32 ++
 target/arm/tcg/a32.decode      |   5 +-
 target/arm/tcg/a64.decode      |   5 +-
 target/arm/tcg/t16.decode      |   4 +-
 target/arm/tcg/t32.decode      |   4 +-
 target/arm/arm-powerctl.c      |   4 +-
 target/arm/cpu.c               |  53 ++-
 target/arm/helper.c            |  12 +-
 target/arm/hvf/hvf.c           |  14 +-
 target/arm/kvm.c               |   5 +-
 target/arm/machine.c           |   2 +-
 target/arm/tcg/debug.c         |   2 +-
 target/arm/tcg/op_helper.c     | 216 ++++++++++--
 target/arm/tcg/tlb_helper.c    |   6 +-
 target/arm/tcg/translate-a64.c |  58 +++-
 target/arm/tcg/translate.c     |  33 +-
 target/arm/tcg/vfp_helper.c    |   5 +-
 target/arm/whpx/whpx-all.c     |  13 +-
 22 files changed, 929 insertions(+), 200 deletions(-)

-- 
2.47.3


^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2026-04-22 12:54 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-22 10:10 [PATCH v2 00/31] target/arm: fully model WFxT instructions for A-profile Alex Bennée
2026-04-22 10:10 ` [PATCH v2 01/31] target/arm: migrate basic syndrome helpers to registerfields Alex Bennée
2026-04-22 10:10 ` [PATCH v2 02/31] target/arm: migrate system/cp trap syndromes " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 03/31] target/arm: migrate FP/SIMD " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 04/31] target/arm: migrate eret " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 05/31] target/arm: migrate SME " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 06/31] target/arm: migrate PAC " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 07/31] target/arm: migrate BTI " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 08/31] target/arm: migrate BXJ " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 09/31] target/arm: migrate Granule Protection traps " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 10/31] target/arm: migrate fault syndromes " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 11/31] target/arm: migrate debug " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 12/31] target/arm: migrate wfx " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 13/31] target/arm: migrate gcs " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 14/31] target/arm: migrate memory op " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 15/31] target/arm: migrate check_hcr_el2_trap to use syndrome helper Alex Bennée
2026-04-22 10:10 ` [PATCH v2 16/31] target/arm: use syndrome helpers in arm_cpu_do_interrupt_aarch32_hyp Alex Bennée
2026-04-22 10:10 ` [PATCH v2 17/31] target/arm: use syndrome helpers to set SAME_EL EC bit Alex Bennée
2026-04-22 10:10 ` [PATCH v2 18/31] target/arm: make whpx use syndrome helpers for decode Alex Bennée
2026-04-22 10:10 ` [PATCH v2 19/31] target/arm: make hvf " Alex Bennée
2026-04-22 10:10 ` [PATCH v2 20/31] target/arm: use syndrome helpers in merge_syn_data_abort Alex Bennée
2026-04-22 10:10 ` [PATCH v2 21/31] target/arm: use syndrome helpers to query VNCR bit Alex Bennée
2026-04-22 10:10 ` [PATCH v2 22/31] target/arm: remove old syndrome defines Alex Bennée
2026-04-22 10:10 ` [PATCH v2 23/31] target/arm: report register in WFIT syndromes Alex Bennée
2026-04-22 10:10 ` [PATCH v2 24/31] target/arm: teach arm_cpu_has_work about halting reasons Alex Bennée
2026-04-22 10:10 ` [PATCH v2 25/31] target/arm: redefine event stream fields Alex Bennée
2026-04-22 10:10 ` [PATCH v2 26/31] target/arm: ensure aarch64 DISAS_WFE will exit Alex Bennée
2026-04-22 10:10 ` [PATCH v2 27/31] target/arm: implements SEV/SEVL for all modes Alex Bennée
2026-04-22 10:10 ` [PATCH v2 28/31] target/arm: hoist event broadcast code into a helper Alex Bennée
2026-04-22 10:10 ` [PATCH v2 29/31] target/arm: implement global monitor events Alex Bennée
2026-04-22 10:10 ` [PATCH v2 30/31] target/arm: enable event stream on WFE instructions Alex Bennée
2026-04-22 10:10 ` [PATCH v2 31/31] target/arm: implement WFET Alex Bennée
2026-04-22 12:54 ` [PATCH v2 00/31] target/arm: fully model WFxT instructions for A-profile Alex Bennée

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox