Re: 4.7 regression: ACPI: No IRQ available for PCI Interrupt Link [LNKD]. Try pci=noacpi or acpi=off

From: Sinan Kaya
Date: Fri Sep 30 2016 - 17:16:29 EST


On 9/30/2016 5:04 PM, Rafael J. Wysocki wrote:
>> >
>> > I hope it makes sense now. I tend to skip details sometimes. Feel free to
>> > send more questions.
> Thanks for the information!
>
> IIUC, basically, what you are proposing would be to restore the old
> penalizing method for IRQs in the 0-255 range and use the new approach
> for the rest, right?

Correct.

>
> What's the drawback, if any?

I don't see any drawback to be honest. The reason why I got rid of these ISA
API functions was to remove some of the x86ism from ACPI code. This was Bjorn's
request to clean it up and we failed in two places so far.

1. acpi_irq_penalty_init
2. acpi_penalize_sci_irq

and we ended up reverting both of these changes. The reverts are all because of the
fact that these APIs are called asynchronously without any coordination with the
PCI Link object or the interrupt controller driver about when it is a good time to be
called.

During this debug, I learnt that acpi_penalize_isa_irq gets called before even ACPI
gets to initialize and relies on static IRQ array for keeping the penalties.

>
> Thanks,
> Rafael
>


--
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.