|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 00/12] x86/irq: drop interrupt target cpumasks
Hello,
After the adjustments that dropped logical delivery mode for all
external interrupts the Xen internal interrupt descriptors no longer
require a cpumask to store the possible targets of the interrupt. Using
physical delivery mode only allows a single CPU to be the target of the
interrupt, and hence the field can be converted into an unsigned int.
The series contain a bit of cleanup and code adjustments ahead of the
removal of the cpumasks that's done in the last 3 patches.
A couple of notes from the series:
* It's possible that further simplifications can be applied to
fixup_irqs() (and other logic) after dropping the cpumasks. I
haven't looked closely enough, but in any case that would be a
followup change(s) on top of this series.
* Current code seems to confuse interrupt affinity (possible interrupt
destinations) with the current target of the interrupt. For example
irq_set_affinity() doesn't set the interrupt affinity, but rather
migrates the interrupt from one target CPU to another.
Thanks, Roger.
Roger Pau Monne (12):
x86/apic: remove cpu_mask_to_apicid hook
x86/apic: remove vector_allocation_cpumask hook
x86/irq: introduce local irq_desc
x86/irq: set accurate cpu_mask for high priority vectors used by
external interrupts
x86/io-apic: purge usage of logical mode
x86/i8259: redo workaround for AMD spurious PIC interrupts
x86/io-apic: fix usage of setup_ioapic_dest()
x86/irq: adjust bind_irq_vector() to take a single CPU as parameter
x86/irq: convert cpumask parameter to integer in
{,p}irq_set_affinity()
x86/irq: convert irq_desc cpu_mask field to integer
x86/irq: convert irq_desc old_cpu_mask field to integer
x86/irq: convert irq_desc pending_mask field to integer
xen/arch/x86/genapic/bigsmp.c | 2 -
xen/arch/x86/genapic/default.c | 2 -
xen/arch/x86/genapic/delivery.c | 7 +-
xen/arch/x86/genapic/x2apic.c | 9 -
xen/arch/x86/hpet.c | 11 +-
xen/arch/x86/hvm/hvm.c | 2 +-
xen/arch/x86/i8259.c | 17 +-
xen/arch/x86/include/asm/genapic.h | 17 +-
xen/arch/x86/include/asm/irq.h | 22 +-
xen/arch/x86/include/asm/msi.h | 3 +-
xen/arch/x86/io_apic.c | 61 +++---
xen/arch/x86/irq.c | 249 ++++++++++-------------
xen/arch/x86/msi.c | 17 +-
xen/arch/x86/platform_hypercall.c | 2 +-
xen/arch/x86/smpboot.c | 12 +-
xen/common/cpu.c | 1 +
xen/common/event_channel.c | 6 +-
xen/drivers/passthrough/amd/iommu_init.c | 2 +-
xen/drivers/passthrough/vtd/iommu.c | 2 +-
xen/include/xen/cpumask.h | 1 +
xen/include/xen/irq.h | 3 +-
21 files changed, 179 insertions(+), 269 deletions(-)
--
2.51.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |