|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 31/39] xen/riscv: implement APLIC-hart sync barrier for vCPU migration
On 27.08.2026 17:21, Oleksii Kurochko wrote:
> During migration of a virtual hart to a different guest interrupt file,
> straggler MSIs from the APLIC could arrive at the old interrupt file
> after the switch.
>
> genmsi is used despite not supporting guest interrupt files because the
> AIA spec guarantees that all MSIs previously sent from the APLIC to the
> same hart are visible at the hart's IMSIC before the extempore MSI from
> genmsi becomes visible.
Hmm. As indicated, I'm learning RISC-V as I'm reviewing patches. This
paragraph, if left as is, would make sure I simply can't ack the patch.
I just don't understand what is being talked about. I can guess parts,
but for example I don't know what "genmsi" is.
> @@ -205,6 +207,30 @@ void aplic_hw_write_reg(unsigned int offset, uint32_t
> value)
> spin_unlock_irqrestore(&aplic.lock, flags);
> }
>
> +/*
> + * As needed, synchronize with all IOMMUs and APLICs to ensure that no
> + * straggler MSIs will arrive at the old interrupt file after this step.
> + */
> +void aplic_genmsi_barrier(void)
> +{
> + const struct imsic_config *imsic = imsic_get_config();
> + unsigned int cpu = smp_processor_id();
> + unsigned long flags;
> + uint32_t val;
> +
> + val = MASK_INSR(aplic_hart_field(cpu), APLIC_TARGET_HART_IDX) |
> + (imsic->sync_id & APLIC_TARGET_EIID);
Along the lines of a question on an earlier patch: What if this ANDing
actually chops off bits?
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |