linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jiang Liu <jiang.liu@linux.intel.com>
To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Randy Dunlap <rdunlap@infradead.org>,
	Yinghai Lu <yinghai@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Tony Luck <tony.luck@intel.com>, Joerg Roedel <joro@8bytes.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org
Subject: Re: [Patch V3 00/16] Enable support of IOAPIC hotplug on x86 platforms
Date: Tue, 15 Jul 2014 23:27:50 +0800	[thread overview]
Message-ID: <53C54876.5090606@linux.intel.com> (raw)
In-Reply-To: <20140714194133.GA22857@laptop.dumpdata.com>

[-- Attachment #1: Type: text/plain, Size: 1453 bytes --]

Hi Konrad,
	Thanks for testing the patch set! After analyzing the log
files, I feel something is wrong with the Radeon driver. With good
configuration, IRQ18 is shared by OHCI controllers and Radeon GPU
card. With bad configuration, only OHCI controllers are bound to
IRQ18. Radeon GPU card may have been bound to another wrong IRQ,
which then causes the interrupt storm.
	But I have no hardware available to verify the hypothesis,
so could you please help to apply the attached patch and run the
test again?
	Thanks!
	Gerry

On 2014/7/15 3:41, Konrad Rzeszutek Wilk wrote:
> On Mon, Jul 14, 2014 at 01:26:42PM -0400, Konrad Rzeszutek Wilk wrote:
>> On Wed, Jun 25, 2014 at 04:40:31PM +0800, Jiang Liu wrote:
>>> This patch set enhances IOAPIC core and ACPI drivers to support IOAPIC
>>> hotplug on x86 platforms. It's based on tip/x86/apic.
>>>
>>> You may pull it from 
>>> https://github.com/jiangliu/linux.git ioapic/hotplug_v3
>>
>> With this patchset (on top of 3.16-rc5) my USB driver gets notified
>> it has interrupts but it thinks it does not have to acknowledge any.
>> I can only reproduce this under a 32-bit arch so far.
>>
>> Please see the good.log and the bad.log 
> 
> tglx asked for apic=debug on the line, so here they are again with
> those parameters.
> 
> Please note that the 'good.log' this time is
>  3.16-rc6 + tip/master + tip/x86/apic
> 
> And 'bad.log' is:
> 
>  3.16-rc6 + tip/master + tip/x86/apic + ioapic/hotplug_v3
> 

[-- Attachment #2: tmp2.patch --]
[-- Type: text/plain, Size: 1475 bytes --]

diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index 9d2ebd5fd9aa..4b30023ccefe 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -404,6 +404,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
 	char *link = NULL;
 	char link_desc[16];
 	int rc;
+	int irq = 0;
 
 	pin = dev->pin;
 	if (!pin) {
@@ -413,8 +414,11 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
 		return 0;
 	}
 
-	if (dev->irq > 0)
-		return 0;
+	if (dev->irq > 0) {
+		dev_warn(&dev->dev, "already assigned IRQ%d\n", dev->irq);
+		irq = dev->irq;
+		//return 0;
+	}
 
 	entry = acpi_pci_irq_lookup(dev, pin);
 	if (!entry) {
@@ -459,6 +463,8 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
 		return rc;
 	}
 	dev->irq = rc;
+	if (irq != dev->irq)
+		dev_warn(&dev->dev, "assigned new IRQ%d\n", dev->irq);
 
 	if (link)
 		snprintf(link_desc, sizeof(link_desc), " -> Link[%s]", link);
diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c b/drivers/gpu/drm/radeon/radeon_irq_kms.c
index 16807afab362..be1c133eac5b 100644
--- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
@@ -287,6 +287,8 @@ int radeon_irq_kms_init(struct radeon_device *rdev)
 	INIT_WORK(&rdev->reset_work, radeon_irq_reset_work_func);
 
 	rdev->irq.installed = true;
+	dev_warn(&rdev->ddev->pdev->dev, "Radeon device interrupt IRQ%d\n",
+		 rdev->ddev->pdev->irq);
 	r = drm_irq_install(rdev->ddev, rdev->ddev->pdev->irq);
 	if (r) {
 		rdev->irq.installed = false;

  reply	other threads:[~2014-07-15 15:28 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-25  8:40 [Patch V3 00/16] Enable support of IOAPIC hotplug on x86 platforms Jiang Liu
2014-06-25  8:40 ` [Patch V3 01/16] x86, irq, ACPI: Protect acpi_pci_irq_enable() from reentrance Jiang Liu
2014-06-25  8:40 ` [Patch V3 02/16] ACPI: Make map_mat_entry handle x2apic entry Jiang Liu
2014-06-25  8:40 ` [Patch V3 03/16] ACPI: Correct return value of acpi_dev_resource_address_space() Jiang Liu
2014-06-25  8:40 ` [Patch V3 04/16] x86, PCI, ACPI: Kill private function resource_to_addr() Jiang Liu
2014-06-25  8:40 ` [Patch V3 05/16] ACPI: Move acpi_get_cpuid() to separated file Jiang Liu
2014-06-25  8:40 ` [Patch V3 06/16] x86, irq: Split out alloc_ioapic_save_registers() Jiang Liu
2014-06-25  8:40 ` [Patch V3 07/16] x86, ioapic: Find usable ioapic id for 64bit Jiang Liu
2014-06-25  8:40 ` [Patch V3 08/16] ACPI, ioapic: Add acpi_get_ioapic_id() Jiang Liu
2014-06-25  8:40 ` [Patch V3 09/16] x86, irq: Remove __init marker for functions will be used by IOAPIC hotplug Jiang Liu
2014-06-25  8:40 ` [Patch V3 10/16] x86, irq: Refine mp_register_ioapic() to prepare for " Jiang Liu
2014-06-25  8:40 ` [Patch V3 11/16] x86, irq, ACPI: Introduce a rwsem to protect IOAPIC operations from hotplug Jiang Liu
2014-06-25  8:40 ` [Patch V3 12/16] x86, irq, ACPI: Implement interface to support ACPI based IOAPIC hot-addition Jiang Liu
2014-06-25  8:40 ` [Patch V3 13/16] x86, irq, ACPI: Implement interface to support ACPI based IOAPIC hot-removal Jiang Liu
2014-06-25  8:40 ` [Patch V3 14/16] x86, irq: Introduce helper to check whether an IOAPIC has been registered Jiang Liu
2014-06-25  8:40 ` [Patch V3 15/16] PCI: Remove PCI ioapic driver Jiang Liu
2014-06-25  8:40 ` [Patch V3 16/16] x86, irq, ACPI: Implement ACPI driver to support IOAPIC hotplug Jiang Liu
2014-06-25 14:44 ` [Patch V3 00/16] Enable support of IOAPIC hotplug on x86 platforms Konrad Rzeszutek Wilk
2014-06-27 14:43   ` Jiang Liu
2014-07-14 17:26 ` Konrad Rzeszutek Wilk
2014-07-14 19:41   ` Konrad Rzeszutek Wilk
2014-07-15 15:27     ` Jiang Liu [this message]
2014-07-15 16:10       ` Konrad Rzeszutek Wilk
2014-07-16  3:01         ` Jiang Liu
2014-07-16 13:33           ` Konrad Rzeszutek Wilk

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=53C54876.5090606@linux.intel.com \
    --to=jiang.liu@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=joro@8bytes.org \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=rdunlap@infradead.org \
    --cc=rjw@rjwysocki.net \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    --cc=yinghai@kernel.org \
    /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).