[PATCH] KVM: selftests: fix ITS collection target addresses in vgic_lpi_stress
Marc Zyngier
maz at kernel.org
Fri Oct 17 10:06:25 PDT 2025
On Fri, 17 Oct 2025 17:19:18 +0100,
Maximilian Dittgen <mdittgen at amazon.de> wrote:
>
> When mapping guest ITS collections, vgic_lpi_stress iterates over
> integers in the range [0, nr_cpus), passing them as the target_addr
> parameter to its_send_mapc_cmd(). These integers correspond to the
> selftest userspace vCPU IDs that we intend to map each ITS collection
> to.
>
> However, its_encode_target() within its_send_mapc_cmd() expects a
> vCPU's redistributor address--not the vCPU ID--as the target_addr
> parameter. This is evident from how its_encode_target() encodes the
> target_addr parameter as:
>
> its_mask_encode(&cmd->raw_cmd[2], target_addr >> 16, 51, 16)
>
> This shows that we right-shift the input target_addr parameter by 16
> bits before encoding it. This makes sense when the parameter refers to
> redistributor addresses (e.g., 0x20000, 0x30000) but not vCPU IDs
> (e.g., 0x2, 0x3).
From the KVM ITS emulation code:
* We use linear CPU numbers for redistributor addressing,
* so GITS_TYPER.PTA is 0.
It is not an address.
M.
--
Without deviation from the norm, progress is not possible.
More information about the linux-arm-kernel
mailing list