acpi-pci(hotplug)总结

1. pci初始化

memory@memory-153:~$cat /boot/System.map-3.16.0 | grep pci | grep __initcall

ffffffff81e5bba0 t __initcall_pcibus_class_init2

ffffffff81e5bba8 t __initcall_pci_driver_init2

ffffffff81e5bc58 t __initcall_acpi_pci_init3

ffffffff81e5bc78 t __initcall_register_xen_pci_notifier3

ffffffff81e5bc98 t __initcall_pci_arch_init3

ffffffff81e5bde0 t __initcall_pci_slot_init4

ffffffff81e5bfe8 t __initcall_pci_subsys_init4

ffffffff81e5c1a8 t __initcall_pcibios_assign_resources5

ffffffff81e5c1d8 t __initcall_pci_apply_final_quirks5s

ffffffff81e5c1e8 t __initcall_pci_iommu_initrootfs

ffffffff81e5c650 t __initcall_pci_proc_init6

ffffffff81e5c658 t __initcall_pcie_portdrv_init6

ffffffff81e5c668 t __initcall_pcie_pme_service_init6

ffffffff81e5c678 t __initcall_pci_hotplug_init6

ffffffff81e5c680 t __initcall_pcied_init6

ffffffff81e5c730 t __initcall_virtio_pci_driver_init6

ffffffff81e5c760 t __initcall_platform_pci_module_init6

ffffffff81e5c7a0 t __initcall_serial_pci_driver_init6

ffffffff81e5c878 t __initcall_sis_pci_driver_init6

ffffffff81e5c880 t __initcall_ata_generic_pci_driver_init6

ffffffff81e5c958 t __initcall_ehci_pci_init6

ffffffff81e5c970 t __initcall_ohci_pci_init6

ffffffff81e5cb90 t __initcall_pci_resource_alignment_sysfs_init7

ffffffff81e5cb98 t __initcall_pci_sysfs_init7

ffffffff81e5cc08 t __initcall_pci_mmcfg_late_insert_resources7

2. pci hotplug流程

1) 通过acpi_install_notify_handler向acpi模块注册消息处理函数

消息处理函数为handle_hotplug_event

handle_hotplug_event-->hotplug_event_work-->hotplug_event-->acpiphp_rescan_slot-->pci_scan_slot

-->pci_scan_single_device-->pci_scan_device-->pci_setup_device

-->pci_device_add-->device_add

你可能感兴趣的:(acpi-pci(hotplug)总结)