All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: linux-kernel@vger.kernel.org,
	Ian Campbell <Ian.Campbell@eu.citrix.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: xen-devel@lists.xensource.com,
	Jeremy Fitzhardinge <jeremy@goop.org>,
	Konrad Rzeszutek Wilk <konrad@kernel.org>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: Re: [PATCH] Xen PCI fronted fixes for 2.6.39
Date: Fri, 18 Feb 2011 09:22:30 -0500	[thread overview]
Message-ID: <20110218142230.GB8847@dumpdata.com> (raw)
In-Reply-To: <1297894638-28007-1-git-send-email-konrad.wilk@oracle.com>

On Wed, Feb 16, 2011 at 05:17:15PM -0500, Konrad Rzeszutek Wilk wrote:
> I am proposing these three patches for 2.6.39.
> 
> The first is to take advantage of the new method of requesting
> a Linux IRQ and providing the Xen PIRQ value. The second
> makes it possible for a PV guest to bootup if the backend has provided
> incorrect values. [*2]
> 
> Lastly, the third is to remove deprecated code.

And lets add one more:

>From e4e8523b1d374a3f4276c34e6d017b425ce0d1ae Mon Sep 17 00:00:00 2001
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Thu, 17 Feb 2011 16:12:51 -0500
Subject: [PATCH 5/5] pci/xen: When free-ing MSI-X/MSI irq->desc also use generic code.

This code path is only run when an MSI/MSI-X PCI device is passed
in to PV DomU.

In 2.6.37 time-frame we over-wrote the default cleanup handler for
MSI/MSI-X irq->desc to be "xen_teardown_msi_irqs". That function
calls the the xen-pcifront driver which can tell the backend to
cleanup/take back the MSI/MSI-X device.

However, we forgot to continue the process of free-ing the MSI/MSI-X
device resources (irq->desc) in the PV domU side. Which is what
the default cleanup handler "default_teardown_msi_irqs" did.

Hence we would leak IRQ descriptors.

Without this patch, doing "rmmod igbvf;modprobe igbvf" multiple
times ends with abandoned IRQ descriptors:

 28:          5  xen-pirq-pcifront-msi-x
 29:          8  xen-pirq-pcifront-msi-x
...
130:         10  xen-pirq-pcifront-msi-x

with the end result of running out of IRQ descriptors.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 arch/x86/pci/xen.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index 30fdd09..57afd1d 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -193,6 +193,9 @@ static void xen_teardown_msi_irqs(struct pci_dev *dev)
 		xen_pci_frontend_disable_msix(dev);
 	else
 		xen_pci_frontend_disable_msi(dev);
+
+	/* Free the IRQ's and the msidesc using the generic code. */
+	default_teardown_msi_irqs(dev);
 }
 
 static void xen_teardown_msi_irq(unsigned int irq)
-- 
1.7.1


WARNING: multiple messages have this Message-ID (diff)
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: linux-kernel@vger.kernel.org, Ian Campbell <Ian.Campbell@eu.citrix.com>
Cc: xen-devel@lists.xensource.com,
	Jeremy Fitzhardinge <jeremy@goop.org>,
	Konrad Rzeszutek Wilk <konrad@kernel.org>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: Re: [PATCH] Xen PCI fronted fixes for 2.6.39
Date: Fri, 18 Feb 2011 09:22:30 -0500	[thread overview]
Message-ID: <20110218142230.GB8847@dumpdata.com> (raw)
In-Reply-To: <1297894638-28007-1-git-send-email-konrad.wilk@oracle.com>

On Wed, Feb 16, 2011 at 05:17:15PM -0500, Konrad Rzeszutek Wilk wrote:
> I am proposing these three patches for 2.6.39.
> 
> The first is to take advantage of the new method of requesting
> a Linux IRQ and providing the Xen PIRQ value. The second
> makes it possible for a PV guest to bootup if the backend has provided
> incorrect values. [*2]
> 
> Lastly, the third is to remove deprecated code.

And lets add one more:

>From e4e8523b1d374a3f4276c34e6d017b425ce0d1ae Mon Sep 17 00:00:00 2001
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Thu, 17 Feb 2011 16:12:51 -0500
Subject: [PATCH 5/5] pci/xen: When free-ing MSI-X/MSI irq->desc also use generic code.

This code path is only run when an MSI/MSI-X PCI device is passed
in to PV DomU.

In 2.6.37 time-frame we over-wrote the default cleanup handler for
MSI/MSI-X irq->desc to be "xen_teardown_msi_irqs". That function
calls the the xen-pcifront driver which can tell the backend to
cleanup/take back the MSI/MSI-X device.

However, we forgot to continue the process of free-ing the MSI/MSI-X
device resources (irq->desc) in the PV domU side. Which is what
the default cleanup handler "default_teardown_msi_irqs" did.

Hence we would leak IRQ descriptors.

Without this patch, doing "rmmod igbvf;modprobe igbvf" multiple
times ends with abandoned IRQ descriptors:

 28:          5  xen-pirq-pcifront-msi-x
 29:          8  xen-pirq-pcifront-msi-x
...
130:         10  xen-pirq-pcifront-msi-x

with the end result of running out of IRQ descriptors.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 arch/x86/pci/xen.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index 30fdd09..57afd1d 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -193,6 +193,9 @@ static void xen_teardown_msi_irqs(struct pci_dev *dev)
 		xen_pci_frontend_disable_msix(dev);
 	else
 		xen_pci_frontend_disable_msi(dev);
+
+	/* Free the IRQ's and the msidesc using the generic code. */
+	default_teardown_msi_irqs(dev);
 }
 
 static void xen_teardown_msi_irq(unsigned int irq)
-- 
1.7.1

  parent reply	other threads:[~2011-02-18 14:22 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-16 22:17 [PATCH] Xen PCI fronted fixes for 2.6.39 Konrad Rzeszutek Wilk
2011-02-16 22:17 ` [PATCH 1/3] pci/xen: Use xen_allocate_pirq_msi Konrad Rzeszutek Wilk
2011-02-17  8:41   ` [Xen-devel] " Ian Campbell
2011-02-17  8:41     ` Ian Campbell
2011-02-17 14:30     ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-02-18 14:07       ` Konrad Rzeszutek Wilk
2011-02-18 14:11         ` Ian Campbell
2011-02-18 14:13           ` Stefano Stabellini
2011-02-18 14:13             ` Stefano Stabellini
2011-02-17 14:52     ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-02-18 16:43       ` [PATCH 0/12] xen: MSI managment cleanups (Was: Re: [PATCH 1/3] pci/xen: Use xen_allocate_pirq_msi) Ian Campbell
2011-02-18 16:43         ` [PATCH 01/12] xen: pci: only define xen_initdom_setup_msi_irqs if CONFIG_XEN_DOM0 Ian Campbell
2011-02-18 16:43         ` [PATCH 02/12] xen: events: do not leak IRQ from xen_allocate_pirq_msi when no pirq available Ian Campbell
2011-02-21 12:50           ` Stefano Stabellini
2011-02-21 13:40             ` Ian Campbell
2011-02-18 16:43         ` [PATCH 03/12] xen: events: drop XEN_ALLOC_IRQ flag to xen_allocate_pirq_msi Ian Campbell
2011-02-18 16:43         ` [PATCH 04/12] xen: events: return irq from xen_allocate_pirq_msi Ian Campbell
2011-02-18 16:43         ` [PATCH 05/12] xen: pci: collapse apic_register_gsi_xen_hvm and xen_hvm_register_pirq Ian Campbell
2011-02-18 16:43         ` [PATCH 06/12] xen: events: assume PHYSDEVOP_get_free_pirq exists Ian Campbell
2011-02-18 16:43         ` [PATCH 07/12] xen: events: separate MSI PIRQ allocation from PIRQ binding to IRQ Ian Campbell
2011-02-21 12:50           ` Stefano Stabellini
2011-02-21 13:39             ` Ian Campbell
2011-02-18 16:43         ` [PATCH 08/12] xen: events: refactor xen_create_msi_irq slightly Ian Campbell
2011-02-18 16:43         ` [PATCH 09/12] xen: events: update pirq_to_irq in xen_create_msi_irq Ian Campbell
2011-02-22 20:35           ` Konrad Rzeszutek Wilk
2011-02-23 13:20             ` Ian Campbell
2011-02-23 15:08               ` Konrad Rzeszutek Wilk
2011-02-23 15:57                 ` Ian Campbell
2011-02-18 16:43         ` [PATCH 10/12] xen: events: push set_irq_msi down into xen_create_msi_irq Ian Campbell
2011-02-18 16:43         ` [PATCH 11/12] xen: events: use xen_bind_pirq_msi_to_irq from xen_create_msi_irq Ian Campbell
2011-02-18 16:43         ` [PATCH 12/12] xen: events: remove dom0 specific xen_create_msi_irq Ian Campbell
2011-02-18 17:00           ` Ian Campbell
2011-02-18 17:06             ` Ian Campbell
2011-02-16 22:17 ` [PATCH 2/3] xen-pcifront: Sanity check the MSI/MSI-X values Konrad Rzeszutek Wilk
2011-02-16 22:17   ` Konrad Rzeszutek Wilk
2011-02-17  8:53   ` [Xen-devel] " Ian Campbell
2011-02-18 14:08     ` Konrad Rzeszutek Wilk
2011-02-18 14:15       ` Ian Campbell
2011-02-18 14:20       ` Konrad Rzeszutek Wilk
2011-02-16 22:17 ` [PATCH 3/3] xen-pcifront: don't use flush_scheduled_work() Konrad Rzeszutek Wilk
2011-02-17  8:29 ` [Xen-devel] [PATCH] Xen PCI fronted fixes for 2.6.39 Ian Campbell
2011-02-17 14:28   ` Konrad Rzeszutek Wilk
2011-02-17 14:38     ` Ian Campbell
2011-02-17 14:38       ` Ian Campbell
2011-02-18 14:22 ` Konrad Rzeszutek Wilk [this message]
2011-02-18 14:22   ` 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=20110218142230.GB8847@dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=Ian.Campbell@eu.citrix.com \
    --cc=jeremy@goop.org \
    --cc=konrad@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xensource.com \
    /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.