[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v8 11/27] ARM: VGIC: add vcpu_id to struct pending_irq
Hi, On 12/04/17 13:32, Julien Grall wrote: > Hi Andre, > > On 12/04/17 01:44, Andre Przywara wrote: >> The target CPU for an LPI is encoded in the interrupt translation table >> entry, so can't be easily derived from just an LPI number (short of >> walking *all* tables and find the matching LPI). >> To avoid this in case we need to know the VCPU (for the INVALL command, >> for instance), put the VCPU ID in the struct pending_irq, so that it is >> easily accessible. >> We use the remaining 8 bits of padding space for that to avoid enlarging >> the size of struct pending_irq. The number of VCPUs is limited to 127 >> at the moment anyway. >> >> Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> >> --- >> xen/include/asm-arm/vgic.h | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/xen/include/asm-arm/vgic.h b/xen/include/asm-arm/vgic.h >> index e2111a5..02732db 100644 >> --- a/xen/include/asm-arm/vgic.h >> +++ b/xen/include/asm-arm/vgic.h >> @@ -73,6 +73,7 @@ struct pending_irq >> uint8_t lr; >> uint8_t priority; >> uint8_t lpi_priority; /* Caches the priority if this is an >> LPI. */ >> + uint8_t lpi_vcpu_id; /* The VCPU for an LPI. */ > > You likely want a BUILD_BUG_ON in the code to check a vCPU ID will fit > in lpi_vcpu_id. See what we did in p2m_init. Ah, MAX_VIRT_CPUS was the name I was looking for (but couldn't find) when I had the very same idea yesterday ;-) Thanks for the pointer! Cheers, Andre. > >> /* inflight is used to append instances of pending_irq to >> * vgic.inflight_irqs */ >> struct list_head inflight; >> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |