|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 06/16] xen/riscv: introduce tracking of pending vCPU interrupts, part 2
On 2/11/26 3:26 PM, Jan Beulich wrote: On 09.02.2026 17:52, Oleksii Kurochko wrote:This patch is based on Linux kernel 6.16.0. Add the consumer side (vcpu_flush_interrupts()) of the lockless pending interrupt tracking introduced in part 1 (for producers). According, to the design only one consumer is possible, and it is vCPU itself. vcpu_flush_interrupts() is expected to be ran (as guests aren't ran now due to the lack of functionality) before the hypervisor returns control to the guest. Producers may set bits in irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is performed only by the consumer via xchg() (with aquire & release semantics).Where the release part isn't relevant here, aiui. Yes, only acquire part is relevant here. release mentioned here as xchg use .aqrl prefix.
Missed that during vcpu_update_hvip() inside if().
Good point. I will do that. + *hvip &= ~mask; + *hvip |= val; + + /* + * Flush AIA high interrupts. + * + * It is necessary to do only for CONFIG_RISCV_32 which isn't + * supported now. + */ +#ifdef CONFIG_RISCV_32 + # error "Update v->arch.hviph"Ehem. I really dislike having to give the same comment over and over again. Please have the # of a pre-processor directive always in the first column. Also, isn't this misplaced? The containing if() checks irqs_pending_mask[0], yet aiui irqs_pending_mask[1] would be of interest for hviph? Agree, it would be more correct to have outside if().
It makes sense. Ill do that. Thanks. ~ Oleksii
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |