qemu/include/hw/ide
Bernhard Beschow 8a4989f526 hw/ide/ahci: Decouple from PCI
In some adhoc profiling booting Linux VMs, it's observed that ahci_irq_lower()
can be a hot path (10000+ triggers until login prompt appears). Even though the
parent device never changes, this method re-determines whether the parent device
is a PCI device or not using the rather expensive object_dynamic_cast()
function. Avoid this overhead by pushing the interrupt handling to the parent
device, essentially turning AHCIState into an "IP block".

Note that this change also frees AHCIState from the PCI dependency which wasn't
reflected in Kconfig.

Reported-by: Peter Xu <peterx@redhat.com>
Inspired-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20241212110926.23548-2-shentey@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2024-12-14 00:16:20 +01:00
..
ahci-pci.h hw/ide/ahci: Decouple from PCI 2024-12-14 00:16:20 +01:00
ahci-sysbus.h hw/ide/ahci: Move SysBus definitions to 'ahci-sysbus.h' 2024-02-15 16:58:46 +01:00
ahci.h hw/ide/ahci: Decouple from PCI 2024-12-14 00:16:20 +01:00
ide-bus.h hw/ide: Move IDE bus related definitions to a new header ide-bus.h 2024-02-22 12:47:40 +01:00
ide-dev.h ide, vl: turn -win2k-hack into a property on IDE devices 2024-02-28 00:23:39 +01:00
ide-dma.h hw/ide: Move IDE DMA related definitions to a separate header ide-dma.h 2024-02-22 12:47:40 +01:00
isa.h hw/ide/isa: Extract TYPE_ISA_IDE declarations to 'hw/ide/isa.h' 2023-02-27 22:29:02 +01:00
mmio.h hw/ide/mmio: Extract TYPE_MMIO_IDE declarations to 'hw/ide/mmio.h' 2023-02-27 22:29:02 +01:00
pci.h hw/ide: Stop exposing internal.h to non-IDE files 2024-02-22 12:47:40 +01:00
piix.h hw/ide/piix: Introduce TYPE_ macros for PIIX IDE controllers 2022-10-31 11:32:07 +01:00