From: Sinan Kaya <okaya@codeaurora.org>
To: Ondrej Zary <linux@rainbow-software.org>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: 4.7 regression: ACPI: No IRQ available for PCI Interrupt Link [LNKD]. Try pci=noacpi or acpi=off
Date: Wed, 28 Sep 2016 14:22:40 -0400 [thread overview]
Message-ID: <76303bb8-7ae2-9a6b-8e5d-a144ae7c6009@codeaurora.org> (raw)
In-Reply-To: <201609281902.31500.linux@rainbow-software.org>
[-- Attachment #1: Type: text/plain, Size: 895 bytes --]
On 9/28/2016 1:02 PM, Ondrej Zary wrote:
>> Thanks, It sounds like you have more than one machine with similar
>> > problems. Can you collect the log from the other machines with 4.8-rc8?
>> >
>> > and also a boot log with 4.6 kernel where things are working?
> The attached logs are from another machine:
>
> dmesg-bad-debug.txt: 4.8-rc8 with your debug patch - bad
>
> dmesg-reverted.txt: 4.8-rc8 with patches (as per Rafael's suggestion)
> reverted - good
>
> dmesg-3.6.txt: 4.6 (Debian kernel) - good
I think I see a race condition for the SCI interrupt. I need another dump from
4.8-rc8 with the attached patch to confirm. Let's remove the previous one and
apply this one.
--
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.
[-- Attachment #2: 0001-acpi-pci_link-debug-aids-v2.patch --]
[-- Type: text/plain, Size: 2890 bytes --]
>From 3545aba9f138bd233264c151d8c32cd417bfb09f Mon Sep 17 00:00:00 2001
From: Sinan Kaya <okaya@codeaurora.org>
Date: Tue, 27 Sep 2016 18:35:15 -0400
Subject: [PATCH] acpi: pci_link: debug aids v2
Change-Id: I6c459cb5888d95f5f1ef7c0e2f138fb9c65f40e5
---
drivers/acpi/pci_link.c | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
index c983bf7..92a6506 100644
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -508,6 +508,8 @@ static int acpi_irq_get_penalty(int irq)
penalty += PIRQ_PENALTY_ISA_ALWAYS;
else
penalty += PIRQ_PENALTY_PCI_USING;
+
+ pr_info("%s:%d adding SCI penalty: 0x%x \n", __func__, __LINE__, penalty);
}
if (irq < ACPI_MAX_ISA_IRQS)
@@ -592,6 +594,10 @@ static int acpi_pci_link_allocate(struct acpi_pci_link *link)
else
irq = link->irq.possible[link->irq.possible_count - 1];
+ pr_info("irq : %d\n", irq);
+ pr_info("acpi_irq_balance : %d\n", acpi_irq_balance);
+ pr_info("link->irq.active : %d\n", link->irq.active);
+ pr_info("acpi_gbl_FADT.sci_interrupt : %d\n", acpi_gbl_FADT.sci_interrupt);
if (acpi_irq_balance || !link->irq.active) {
/*
* Select the best IRQ. This is done in reverse to promote
@@ -599,11 +605,22 @@ static int acpi_pci_link_allocate(struct acpi_pci_link *link)
*/
for (i = (link->irq.possible_count - 1); i >= 0; i--) {
if (acpi_irq_get_penalty(irq) >
- acpi_irq_get_penalty(link->irq.possible[i]))
+ acpi_irq_get_penalty(link->irq.possible[i])) {
+ pr_info("acpi_irq_get_penalty(%d) : 0x%x\n", link->irq.possible[i], acpi_irq_get_penalty(link->irq.possible[i]));
+ pr_info("acpi_irq_get_penalty(%d) : 0x%x\n", irq, acpi_irq_get_penalty(irq));
irq = link->irq.possible[i];
+ }
}
}
if (acpi_irq_get_penalty(irq) >= PIRQ_PENALTY_ISA_ALWAYS) {
+ for (i = (link->irq.possible_count - 1); i >= 0; i--) {
+ pr_info("penalty[%d] = 0x%x\n",
+ link->irq.possible[i],
+ acpi_irq_get_penalty(link->irq.possible[i]));
+ }
+ pr_info("irq : %d\n", irq);
+ pr_info("acpi_gbl_FADT.sci_interrupt : %d\n", acpi_gbl_FADT.sci_interrupt);
+
printk(KERN_ERR PREFIX "No IRQ available for %s [%s]. "
"Try pci=noacpi or acpi=off\n",
acpi_device_name(link->device),
@@ -870,9 +887,12 @@ static int __init acpi_irq_penalty_update(char *str, int used)
*/
void acpi_penalize_isa_irq(int irq, int active)
{
- if ((irq >= 0) && (irq < ARRAY_SIZE(acpi_isa_irq_penalty)))
+ if ((irq >= 0) && (irq < ARRAY_SIZE(acpi_isa_irq_penalty))) {
acpi_isa_irq_penalty[irq] = acpi_irq_get_penalty(irq) +
(active ? PIRQ_PENALTY_ISA_USED : PIRQ_PENALTY_PCI_USING);
+ pr_info("%s:%d acpi_isa_irq_penalty[%d]=0x%x active = %d\n", __func__,
+ __LINE__, irq, acpi_irq_get_penalty(irq), active);
+ }
}
bool acpi_isa_irq_available(int irq)
--
1.9.1
next prev parent reply other threads:[~2016-09-28 18:22 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-25 13:12 4.7 regression: ACPI: No IRQ available for PCI Interrupt Link [LNKD]. Try pci=noacpi or acpi=off Ondrej Zary
2016-09-26 12:23 ` Rafael J. Wysocki
2016-09-27 21:02 ` Ondrej Zary
2016-09-27 21:32 ` Rafael J. Wysocki
2016-09-27 22:23 ` Ondrej Zary
2016-09-27 22:58 ` Rafael J. Wysocki
2016-09-27 23:06 ` Sinan Kaya
2016-09-28 8:32 ` Ondrej Zary
2016-09-28 14:11 ` Sinan Kaya
2016-09-28 17:02 ` Ondrej Zary
2016-09-28 18:22 ` Sinan Kaya [this message]
2016-09-28 19:23 ` Ondrej Zary
2016-09-28 23:38 ` Sinan Kaya
2016-09-29 9:10 ` Ondrej Zary
2016-09-29 13:09 ` okaya
2016-09-29 13:49 ` Ondrej Zary
2016-09-29 14:28 ` Sinan Kaya
2016-09-29 14:35 ` Sinan Kaya
2016-09-29 16:48 ` Ondrej Zary
2016-09-29 17:18 ` Sinan Kaya
2016-09-29 18:00 ` Ondrej Zary
2016-09-29 22:39 ` Sinan Kaya
2016-09-30 6:44 ` Ondrej Zary
2016-09-30 13:14 ` okaya
2016-09-30 15:56 ` Ondrej Zary
2016-09-30 19:30 ` Sinan Kaya
2016-09-30 19:39 ` Rafael J. Wysocki
2016-09-30 20:24 ` Sinan Kaya
2016-09-30 21:04 ` Rafael J. Wysocki
2016-09-30 21:14 ` Sinan Kaya
2016-09-30 21:27 ` Rafael J. Wysocki
2016-09-30 21:33 ` Sinan Kaya
2016-10-01 17:49 ` Sinan Kaya
2016-10-02 16:53 ` Ondrej Zary
2016-10-03 1:05 ` Sinan Kaya
2016-10-03 7:25 ` Ondrej Zary
2016-10-04 14:30 ` Sinan Kaya
2016-10-04 17:54 ` Ondrej Zary
2016-09-29 14:18 ` Wim Osterholt
2016-09-29 14:31 ` Sinan Kaya
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=76303bb8-7ae2-9a6b-8e5d-a144ae7c6009@codeaurora.org \
--to=okaya@codeaurora.org \
--cc=bhelgaas@google.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@rainbow-software.org \
--cc=rjw@rjwysocki.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).