All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.