From: sashiko-bot@kernel.org
To: "Mark Brown" <broonie@kernel.org>
Cc: "Marc Zyngier" <maz@kernel.org>,
kvmarm@lists.linux.dev, "Oliver Upton" <oupton@kernel.org>
Subject: Re: [PATCH v19 14/14] KVM: selftests: arm64: Add GCS EXLOCK exception emulation test
Date: Wed, 12 Aug 2026 19:37:54 +0000 [thread overview]
Message-ID: <20260812193754.9791E1F00A3A@smtp.kernel.org> (raw)
In-Reply-To: <20260812-arm64-gcs-v19-14-9105afd828ac@kernel.org>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Brittle test state causes confusing assertion failures on unexpected UNDEF exceptions.
--
--- Patch [14]: [PATCH v19 14/14] KVM: selftests: arm64: Add GCS EXLOCK exception emulation test ---
commit 3ce6c247a7bdb06355a23e53c25ee48d7bb16f9d
Author: Mark Brown <broonie@kernel.org>
KVM: selftests: arm64: Add GCS EXLOCK exception emulation test
This patch adds a KVM selftest to validate the emulation of GCSCR_EL2.EXLOCKEN
when running in vEL2. It uses nested UDFs to observe and modify PSTATE.EXLOCK,
testing both fast and slow paths.
> diff --git a/tools/testing/selftests/kvm/arm64/gcs_exceptions.c b/tools/testing/selftests/kvm/arm64/gcs_exceptions.c
> new file mode 100644
> index 0000000000000..de5bc65907272
> --- /dev/null
> +++ b/tools/testing/selftests/kvm/arm64/gcs_exceptions.c
[ ... ]
> +static void guest_undef_handler(struct ex_regs *regs)
> +{
[ ... ]
> + case UDF_SPSR_EL2:
> + GUEST_ASSERT_EQ(read_sysreg_s(SYS_GCSCR_EL2) & GCSCR_ELx_EXLOCKEN,
> + expect_exlock ? GCSCR_ELx_EXLOCKEN : 0);
> +
> + asm volatile("mrs %0, spsr_el2 \n\
> + msr spsr_el2, %0"
> + : "=r"(val) :: "memory");
> + break;
> +
> + default:
> + GUEST_FAIL("Invalid udf_mode");
> + }
> +}
[ ... ]
> +static void guest_code(void)
> +{
[ ... ]
> + test_udf_exception(true);
> + test_sysreg(UDF_ELR_EL1, true);
> + test_sysreg(UDF_ELR_EL2, true);
> + test_sysreg(UDF_SPSR_EL1, true);
> + test_sysreg(UDF_SPSR_EL2, true);
> +
> + /* Force ERET directly through the slow emulation path as well. */
> + sysreg_clear_set_s(SYS_HFGITR_EL2, 0, HFGITR_EL2_ERET);
[Severity: Medium]
What happens if the vCPU does not support Fine Grained Traps (FEAT_FGT) when
this register is accessed?
Since this access occurs without verifying FGT support, it seems it would
trigger an unexpected UNDEFINED exception on systems where FGT is missing or
hidden.
Because udf_mode is not reset after the last intentional udf and remains set to
UDF_SPSR_EL2, would this unexpected exception incorrectly fall into the
UDF_SPSR_EL2 case in guest_undef_handler(), resulting in a confusing assertion
failure rather than cleanly reporting the unexpected UNDEF?
> + isb();
> +
> + test_udf_exception(false);
> +
> + test_udf_exception(true);
> +
> + sysreg_clear_set_s(SYS_HFGITR_EL2, HFGITR_EL2_ERET, 0);
> + isb();
> + GUEST_DONE();
> +}
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260812-arm64-gcs-v19-0-9105afd828ac@kernel.org?part=14
prev parent reply other threads:[~2026-08-12 19:37 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-12 19:11 [PATCH v19 00/14] KVM: arm64: Provide guest support for GCS Mark Brown
2026-08-12 19:12 ` [PATCH v19 01/14] arm64/gcs: Ensure FGTs for EL1 GCS instructions are disabled Mark Brown
2026-08-12 19:12 ` [PATCH v19 02/14] KVM: arm64: Fix FGT mapping for HFGITR_EL2.nGCSEPP Mark Brown
2026-08-12 19:12 ` [PATCH v19 03/14] KVM: arm64: Manage GCS access and registers for guests Mark Brown
2026-08-12 19:44 ` sashiko-bot
2026-08-12 19:12 ` [PATCH v19 04/14] KVM: arm64: Ensure GCS memory effects are visible Mark Brown
2026-08-12 19:12 ` [PATCH v19 05/14] KVM: arm64: Set PSTATE.EXLOCK when entering an exception Mark Brown
2026-08-12 19:33 ` sashiko-bot
2026-08-12 19:12 ` [PATCH v19 06/14] KVM: arm64: Validate GCS exception lock when emulating ERET Mark Brown
2026-08-12 19:12 ` [PATCH v19 07/14] KVM: arm64: Forward GCS exceptions to nested guests Mark Brown
2026-08-12 19:32 ` sashiko-bot
2026-08-12 19:12 ` [PATCH v19 08/14] KVM: arm64: Enforce EXLOCK for SPSR and ELR Mark Brown
2026-08-12 19:12 ` [PATCH v19 09/14] KVM: arm64: Allow GCS to be enabled for guests Mark Brown
2026-08-12 19:12 ` [PATCH v19 10/14] KVM: selftests: arm64: Add GCS registers to get-reg-list Mark Brown
2026-08-12 19:30 ` sashiko-bot
2026-08-12 19:12 ` [PATCH v19 11/14] KVM: selftests: arm64: Add GCS to set_id_regs Mark Brown
2026-08-12 19:12 ` [PATCH v19 12/14] KVM: selftests: arm64: Only restore SPSR_EL1 and ELR_EL1 if they change Mark Brown
2026-08-12 19:12 ` [PATCH v19 13/14] tools: Synchronise the kernel esr.h Mark Brown
2026-08-12 19:37 ` sashiko-bot
2026-08-12 19:12 ` [PATCH v19 14/14] KVM: selftests: arm64: Add GCS EXLOCK exception emulation test Mark Brown
2026-08-12 19:37 ` sashiko-bot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260812193754.9791E1F00A3A@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=broonie@kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=maz@kernel.org \
--cc=oupton@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.