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


Reply via email to