On Wed, Jul 16, 2014 at 8:02 PM, Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx> wrote: > > > On 2014/7/17 2:37, Yinghai Lu wrote: >> On Wed, Jul 16, 2014 at 11:04 AM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: >>> [+cc Yinghai] >>> >>> On Tue, Jul 15, 2014 at 9:34 PM, Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx> wrote: >>>> Hi Bjorn, >>>> When enabling ACPI based IOAPIC hotplug, we encountered an >>>> issue with PCI IRQ reference count tracking and need your advices. >>>> In order to hot-remove an IOAPIC, we need to track and keep >>>> balance of IOAPIC pin usage count. But acpi_pci_irq_enable() may >>>> be called twice for a PCI device, >>>> 1) pci_acpi_init() if pci_routeirq is true >>>> 2) pci_enable_device() >>>> >>>> So in function acpi_pci_irq_enable(), we need a way to track whether >>>> an IOAPIC IRQ has been assigned to the PCI device. Previously we check >>>> "if (dev->irq > 0)" for that, but that's wrong because dev->irq may >>>> be set to non-zero in pci_read_irq() if BIOS has already assigned >>>> a legacy IRQ for the device. So is it OK to add a flag into pci_dev >>>> to track this information? >> >> Why do you need to track it? >> >> When do you hot-remove ioapic with pci root bus, all the drivers for >> devices on that pci root bus should be stopped at first, so no one >> will use the ioapic before ioapic is being removed. > Hi Yinghai, > By tracking IOAPIC pin usage count, we could release the > assigned IRQ number when there are no device uses an IOAPIC pin anymore. Delay releasing IRQ number later when destroying irq domain? Yinghai -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html