]> xenbits.xensource.com Git - xen.git/commit
x86/IRQ: re-use legacy vector ranges on APs
authorJan Beulich <jbeulich@suse.com>
Fri, 27 Dec 2019 08:54:59 +0000 (09:54 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 27 Dec 2019 08:54:59 +0000 (09:54 +0100)
commit3fba06ba9f8bbf80b601e9760ae47f4bf96097a0
tree008f2e9edc0150c383df3dfa92c9f0957ff9f1d7
parent8fb4e83dc3c3825628fff5984b91e8dbb0adc20f
x86/IRQ: re-use legacy vector ranges on APs

The legacy vectors have been actively used on CPU 0 only. CPUs not
sharing vector space with CPU 0 can easily re-use them, slightly
increasing the relatively scarce resource of total vectors available in
the system. As a result the legacy vector range simply becomes a
sub-range of the dynamic one, with an extra check performed in
_assign_irq_vector() (we can't rely on the
"per_cpu(vector_irq, new_cpu)[vector] >= 0" check in the subsequent
loop, as we need to also exclude vectors of disabled legacy IRQs).

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/io_apic.c
xen/arch/x86/irq.c
xen/include/asm-x86/apicdef.h
xen/include/asm-x86/mach-default/irq_vectors.h