x86/IO-APIC: Drop function pointers from __ioapic_{read,write}_entry()
Function pointers are expensive, and the raw parameter is a constant at the
root of all call trees, meaning that it predicts very well with local branch
history.
Furthermore, the knock-on effects are quite impressive.
$ ../scripts/bloat-o-meter xen-syms-before xen-syms-after
add/remove: 0/4 grow/shrink: 3/9 up/down: 459/-823 (-364)
Function old new delta
__ioapic_write_entry 73 286 +213
__ioapic_read_entry 75 276 +201
save_IO_APIC_setup 182 227 +45
eoi_IO_APIC_irq 241 229 -12
disable_IO_APIC 296 280 -16
mask_IO_APIC_setup 272 240 -32
__io_apic_write 46 - -46
__io_apic_read 46 - -46
io_apic_set_pci_routing 985 930 -55
__io_apic_eoi.part 223 161 -62
io_apic_write 69 - -69
io_apic_read 69 - -69
restore_IO_APIC_setup 325 253 -72
ioapic_guest_write 1413 1333 -80
clear_IO_APIC_pin 447 343 -104
setup_IO_APIC 5148 4988 -160
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>