public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X
@ 2009-01-04 22:08 Rafael J. Wysocki
  2009-01-05 13:04 ` Ingo Molnar
  2009-01-06 17:19 ` Bjorn Helgaas
  0 siblings, 2 replies; 11+ messages in thread
From: Rafael J. Wysocki @ 2009-01-04 22:08 UTC (permalink / raw)
  To: Ingo Molnar, Jesse Barnes; +Cc: LKML, Linux PCI

From: Rafael J. Wysocki <rjw@sisk.pl>

pcibios_enable_device() and pcibios_disable_device() don't handle
IRQs for devices that have MSI enabled and it should tread the
devices with MSI-X enabled in the same way.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
 arch/x86/pci/common.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6/arch/x86/pci/common.c
===================================================================
--- linux-2.6.orig/arch/x86/pci/common.c
+++ linux-2.6/arch/x86/pci/common.c
@@ -551,14 +551,14 @@ int pcibios_enable_device(struct pci_dev
 	if ((err = pci_enable_resources(dev, mask)) < 0)
 		return err;
 
-	if (!dev->msi_enabled)
+	if (!dev->msi_enabled && !dev->msix_enabled)
 		return pcibios_enable_irq(dev);
 	return 0;
 }
 
 void pcibios_disable_device (struct pci_dev *dev)
 {
-	if (!dev->msi_enabled && pcibios_disable_irq)
+	if (!dev->msi_enabled && !dev->msix_enabled && pcibios_disable_irq)
 		pcibios_disable_irq(dev);
 }
 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X
  2009-01-04 22:08 [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X Rafael J. Wysocki
@ 2009-01-05 13:04 ` Ingo Molnar
  2009-01-05 13:50   ` Rafael J. Wysocki
  2009-01-05 19:53   ` Jesse Barnes
  2009-01-06 17:19 ` Bjorn Helgaas
  1 sibling, 2 replies; 11+ messages in thread
From: Ingo Molnar @ 2009-01-05 13:04 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Jesse Barnes, LKML, Linux PCI, H. Peter Anvin, Thomas Gleixner


* Rafael J. Wysocki <rjw@sisk.pl> wrote:

> From: Rafael J. Wysocki <rjw@sisk.pl>
> 
> pcibios_enable_device() and pcibios_disable_device() don't handle
> IRQs for devices that have MSI enabled and it should tread the

s/tread/treat

> devices with MSI-X enabled in the same way.
> 
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> ---
>  arch/x86/pci/common.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

looks good - Jesse, what do you think?

Rafael, i'm curious is this in response to some regression/bug? Did some 
box or driver get confused by us enabling/disabling the GSI? Some IRQ 
flood perhaps?

btw., there's a small observation:

> +     if (!dev->msi_enabled && !dev->msix_enabled)

maybe a "pci_has_gsi_irq()" wrapper would make these checks cleaner and 
would make things more robust, should there be any new IRQ delivery method 
be introduced in the future?

	Ingo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X
  2009-01-05 13:04 ` Ingo Molnar
@ 2009-01-05 13:50   ` Rafael J. Wysocki
  2009-01-05 19:55     ` Jesse Barnes
  2009-01-05 19:53   ` Jesse Barnes
  1 sibling, 1 reply; 11+ messages in thread
From: Rafael J. Wysocki @ 2009-01-05 13:50 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Jesse Barnes, LKML, Linux PCI, H. Peter Anvin, Thomas Gleixner

On Monday 05 January 2009, Ingo Molnar wrote:
> 
> * Rafael J. Wysocki <rjw@sisk.pl> wrote:
> 
> > From: Rafael J. Wysocki <rjw@sisk.pl>
> > 
> > pcibios_enable_device() and pcibios_disable_device() don't handle
> > IRQs for devices that have MSI enabled and it should tread the
> 
> s/tread/treat

Ah, thanks.

> > devices with MSI-X enabled in the same way.
> > 
> > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> > ---
> >  arch/x86/pci/common.c |    4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> looks good - Jesse, what do you think?
> 
> Rafael, i'm curious is this in response to some regression/bug? Did some 
> box or driver get confused by us enabling/disabling the GSI? Some IRQ 
> flood perhaps?

Well, I don't have any MSI-X capable boxes around. :-)

I was just reviewing the code and spotted this.

> btw., there's a small observation:
> 
> > +     if (!dev->msi_enabled && !dev->msix_enabled)
> 
> maybe a "pci_has_gsi_irq()" wrapper would make these checks cleaner and 
> would make things more robust, should there be any new IRQ delivery method 
> be introduced in the future?

Well, perhaps something like the patch below?

Thanks,
Rafael

---
Subject: x86 PCI: Do not use interrupt links for devices using MSI-X (rev. 2)
From: Rafael J. Wysocki <rjw@sisk.pl>

pcibios_enable_device() and pcibios_disable_device() don't handle
IRQs for devices that have MSI enabled and it should treat the
devices with MSI-X enabled in the same way.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
 arch/x86/pci/common.c |    4 ++--
 include/linux/pci.h   |    9 +++++++++
 2 files changed, 11 insertions(+), 2 deletions(-)

Index: linux-2.6/arch/x86/pci/common.c
===================================================================
--- linux-2.6.orig/arch/x86/pci/common.c
+++ linux-2.6/arch/x86/pci/common.c
@@ -551,14 +551,14 @@ int pcibios_enable_device(struct pci_dev
 	if ((err = pci_enable_resources(dev, mask)) < 0)
 		return err;
 
-	if (!dev->msi_enabled)
+	if (!pci_msi_enabled(dev))
 		return pcibios_enable_irq(dev);
 	return 0;
 }
 
 void pcibios_disable_device (struct pci_dev *dev)
 {
-	if (!dev->msi_enabled && pcibios_disable_irq)
+	if (!pci_msi_enabled(dev) && pcibios_disable_irq)
 		pcibios_disable_irq(dev);
 }
 
Index: linux-2.6/include/linux/pci.h
===================================================================
--- linux-2.6.orig/include/linux/pci.h
+++ linux-2.6/include/linux/pci.h
@@ -274,6 +274,15 @@ static inline void pci_add_saved_cap(str
 	hlist_add_head(&new_cap->next, &pci_dev->saved_cap_space);
 }
 
+#ifdef CONFIG_PCI_MSI
+static inline bool pci_msi_enabled(struct pci_dev *pci_dev)
+{
+	return dev->msi_enabled || dev->msix_enabled;
+}
+#else
+static inline bool pci_msi_enabled(struct pci_dev *pci_dev) { return false; }
+#endif
+
 /*
  *  For PCI devices, the region numbers are assigned this way:
  *


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X
  2009-01-05 13:04 ` Ingo Molnar
  2009-01-05 13:50   ` Rafael J. Wysocki
@ 2009-01-05 19:53   ` Jesse Barnes
  2009-01-07 13:13     ` Ingo Molnar
  1 sibling, 1 reply; 11+ messages in thread
From: Jesse Barnes @ 2009-01-05 19:53 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Rafael J. Wysocki, LKML, Linux PCI, H. Peter Anvin,
	Thomas Gleixner

On Monday, January 5, 2009 5:04 am Ingo Molnar wrote:
> * Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > From: Rafael J. Wysocki <rjw@sisk.pl>
> >
> > pcibios_enable_device() and pcibios_disable_device() don't handle
> > IRQs for devices that have MSI enabled and it should tread the
>
> s/tread/treat
>
> > devices with MSI-X enabled in the same way.
> >
> > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> > ---
> >  arch/x86/pci/common.c |    4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
>
> looks good - Jesse, what do you think?

Yeah, seems obviously correct, I'll queue it up.

> Rafael, i'm curious is this in response to some regression/bug? Did some
> box or driver get confused by us enabling/disabling the GSI? Some IRQ
> flood perhaps?
>
> btw., there's a small observation:
> > +     if (!dev->msi_enabled && !dev->msix_enabled)
>
> maybe a "pci_has_gsi_irq()" wrapper would make these checks cleaner and
> would make things more robust, should there be any new IRQ delivery method
> be introduced in the future?

pci_has_msi_irq surely?  Otherwise we'll catch pretty much everything?  Or did 
you mean !pci_has_gsi_irq() here instead?

Thanks,
-- 
Jesse Barnes, Intel Open Source Technology Center


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X
  2009-01-05 13:50   ` Rafael J. Wysocki
@ 2009-01-05 19:55     ` Jesse Barnes
  0 siblings, 0 replies; 11+ messages in thread
From: Jesse Barnes @ 2009-01-05 19:55 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Ingo Molnar, LKML, Linux PCI, H. Peter Anvin, Thomas Gleixner

On Monday, January 5, 2009 5:50 am Rafael J. Wysocki wrote:
> On Monday 05 January 2009, Ingo Molnar wrote:
> > * Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > > From: Rafael J. Wysocki <rjw@sisk.pl>
> > >
> > > pcibios_enable_device() and pcibios_disable_device() don't handle
> > > IRQs for devices that have MSI enabled and it should tread the
> >
> > s/tread/treat
>
> Ah, thanks.
>
> > > devices with MSI-X enabled in the same way.
> > >
> > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> > > ---
> > >  arch/x86/pci/common.c |    4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > looks good - Jesse, what do you think?
> >
> > Rafael, i'm curious is this in response to some regression/bug? Did some
> > box or driver get confused by us enabling/disabling the GSI? Some IRQ
> > flood perhaps?
>
> Well, I don't have any MSI-X capable boxes around. :-)
>
> I was just reviewing the code and spotted this.
>
> > btw., there's a small observation:
> > > +     if (!dev->msi_enabled && !dev->msix_enabled)
> >
> > maybe a "pci_has_gsi_irq()" wrapper would make these checks cleaner and
> > would make things more robust, should there be any new IRQ delivery
> > method be introduced in the future?
>
> Well, perhaps something like the patch below?
>
> Thanks,
> Rafael
>
> ---
> Subject: x86 PCI: Do not use interrupt links for devices using MSI-X (rev.
> 2) From: Rafael J. Wysocki <rjw@sisk.pl>
>
> pcibios_enable_device() and pcibios_disable_device() don't handle
> IRQs for devices that have MSI enabled and it should treat the
> devices with MSI-X enabled in the same way.
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>

Looks good, applied this one.

Thanks,
-- 
Jesse Barnes, Intel Open Source Technology Center


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X
  2009-01-04 22:08 [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X Rafael J. Wysocki
  2009-01-05 13:04 ` Ingo Molnar
@ 2009-01-06 17:19 ` Bjorn Helgaas
  2009-01-06 19:45   ` Rafael J. Wysocki
  1 sibling, 1 reply; 11+ messages in thread
From: Bjorn Helgaas @ 2009-01-06 17:19 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Ingo Molnar, Jesse Barnes, LKML, Linux PCI

On Sunday 04 January 2009 03:08:42 pm Rafael J. Wysocki wrote:
> pcibios_enable_device() and pcibios_disable_device() don't handle
> IRQs for devices that have MSI enabled and it should tread the
> devices with MSI-X enabled in the same way.

There are other places that need similar fixes, too, aren't there?
I see cris, frv, ia64, and a driver or two testing dev->msi_enabled.

> --- linux-2.6.orig/arch/x86/pci/common.c
> +++ linux-2.6/arch/x86/pci/common.c
> @@ -551,14 +551,14 @@ int pcibios_enable_device(struct pci_dev
>  	if ((err = pci_enable_resources(dev, mask)) < 0)
>  		return err;
>  
> -	if (!dev->msi_enabled)
> +	if (!dev->msi_enabled && !dev->msix_enabled)
>  		return pcibios_enable_irq(dev);
>  	return 0;
>  }
>  
>  void pcibios_disable_device (struct pci_dev *dev)
>  {
> -	if (!dev->msi_enabled && pcibios_disable_irq)
> +	if (!dev->msi_enabled && !dev->msix_enabled && pcibios_disable_irq)
>  		pcibios_disable_irq(dev);
>  }

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X
  2009-01-06 17:19 ` Bjorn Helgaas
@ 2009-01-06 19:45   ` Rafael J. Wysocki
  0 siblings, 0 replies; 11+ messages in thread
From: Rafael J. Wysocki @ 2009-01-06 19:45 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: Ingo Molnar, Jesse Barnes, LKML, Linux PCI

On Tuesday 06 January 2009, Bjorn Helgaas wrote:
> On Sunday 04 January 2009 03:08:42 pm Rafael J. Wysocki wrote:
> > pcibios_enable_device() and pcibios_disable_device() don't handle
> > IRQs for devices that have MSI enabled and it should tread the
> > devices with MSI-X enabled in the same way.
> 
> There are other places that need similar fixes, too, aren't there?
> I see cris, frv, ia64, and a driver or two testing dev->msi_enabled.

Well, I didn't look at the other places, just found this one while reviewing
the code.

I'll check them later this week.
 
> > --- linux-2.6.orig/arch/x86/pci/common.c
> > +++ linux-2.6/arch/x86/pci/common.c
> > @@ -551,14 +551,14 @@ int pcibios_enable_device(struct pci_dev
> >  	if ((err = pci_enable_resources(dev, mask)) < 0)
> >  		return err;
> >  
> > -	if (!dev->msi_enabled)
> > +	if (!dev->msi_enabled && !dev->msix_enabled)
> >  		return pcibios_enable_irq(dev);
> >  	return 0;
> >  }
> >  
> >  void pcibios_disable_device (struct pci_dev *dev)
> >  {
> > -	if (!dev->msi_enabled && pcibios_disable_irq)
> > +	if (!dev->msi_enabled && !dev->msix_enabled && pcibios_disable_irq)
> >  		pcibios_disable_irq(dev);
> >  }

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X
  2009-01-05 19:53   ` Jesse Barnes
@ 2009-01-07 13:13     ` Ingo Molnar
  2009-01-07 17:33       ` Jesse Barnes
  0 siblings, 1 reply; 11+ messages in thread
From: Ingo Molnar @ 2009-01-07 13:13 UTC (permalink / raw)
  To: Jesse Barnes
  Cc: Rafael J. Wysocki, LKML, Linux PCI, H. Peter Anvin,
	Thomas Gleixner


* Jesse Barnes <jbarnes@virtuousgeek.org> wrote:

> On Monday, January 5, 2009 5:04 am Ingo Molnar wrote:
> > * Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > > From: Rafael J. Wysocki <rjw@sisk.pl>
> > >
> > > pcibios_enable_device() and pcibios_disable_device() don't handle
> > > IRQs for devices that have MSI enabled and it should tread the
> >
> > s/tread/treat
> >
> > > devices with MSI-X enabled in the same way.
> > >
> > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> > > ---
> > >  arch/x86/pci/common.c |    4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > looks good - Jesse, what do you think?
> 
> Yeah, seems obviously correct, I'll queue it up.
> 
> > Rafael, i'm curious is this in response to some regression/bug? Did some
> > box or driver get confused by us enabling/disabling the GSI? Some IRQ
> > flood perhaps?
> >
> > btw., there's a small observation:
> > > +     if (!dev->msi_enabled && !dev->msix_enabled)
> >
> > maybe a "pci_has_gsi_irq()" wrapper would make these checks cleaner and
> > would make things more robust, should there be any new IRQ delivery method
> > be introduced in the future?
> 
> pci_has_msi_irq surely?  Otherwise we'll catch pretty much everything?  Or did 
> you mean !pci_has_gsi_irq() here instead?

Well - here the check is: "if (not MSI or MSIX)" in essence. I thought 
that it might be confusing to call it _msi() as well, so we could approach 
it via the inverse space: general system interrupts (GSIs) - which are 
device irqs that are neither MSI nor MSIX.

But if pci_has_msi_irq() can cleanly include the MSIX portion too, that's 
fine too. (MSI-X is really MSI with wider eventing capabilities but 
otherwise non-GSI just as much - and we dont want to enable (or even 
touch) the legacy IRQ line registers for any of them, even if they happen 
to be enumerated)

Right?

	Ingo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X
  2009-01-07 13:13     ` Ingo Molnar
@ 2009-01-07 17:33       ` Jesse Barnes
  2009-01-07 17:45         ` Ingo Molnar
  2009-01-07 18:12         ` Rafael J. Wysocki
  0 siblings, 2 replies; 11+ messages in thread
From: Jesse Barnes @ 2009-01-07 17:33 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Rafael J. Wysocki, LKML, Linux PCI, H. Peter Anvin,
	Thomas Gleixner

On Wednesday, January 7, 2009 5:13 am Ingo Molnar wrote:
> * Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> > On Monday, January 5, 2009 5:04 am Ingo Molnar wrote:
> > > * Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > > > From: Rafael J. Wysocki <rjw@sisk.pl>
> > > >
> > > > pcibios_enable_device() and pcibios_disable_device() don't handle
> > > > IRQs for devices that have MSI enabled and it should tread the
> > >
> > > s/tread/treat
> > >
> > > > devices with MSI-X enabled in the same way.
> > > >
> > > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> > > > ---
> > > >  arch/x86/pci/common.c |    4 ++--
> > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > looks good - Jesse, what do you think?
> >
> > Yeah, seems obviously correct, I'll queue it up.
> >
> > > Rafael, i'm curious is this in response to some regression/bug? Did
> > > some box or driver get confused by us enabling/disabling the GSI? Some
> > > IRQ flood perhaps?
> > >
> > > btw., there's a small observation:
> > > > +     if (!dev->msi_enabled && !dev->msix_enabled)
> > >
> > > maybe a "pci_has_gsi_irq()" wrapper would make these checks cleaner and
> > > would make things more robust, should there be any new IRQ delivery
> > > method be introduced in the future?
> >
> > pci_has_msi_irq surely?  Otherwise we'll catch pretty much everything? 
> > Or did you mean !pci_has_gsi_irq() here instead?
>
> Well - here the check is: "if (not MSI or MSIX)" in essence. I thought
> that it might be confusing to call it _msi() as well, so we could approach
> it via the inverse space: general system interrupts (GSIs) - which are
> device irqs that are neither MSI nor MSIX.
>
> But if pci_has_msi_irq() can cleanly include the MSIX portion too, that's
> fine too. (MSI-X is really MSI with wider eventing capabilities but
> otherwise non-GSI just as much - and we dont want to enable (or even
> touch) the legacy IRQ line registers for any of them, even if they happen
> to be enumerated)
>
> Right?

Right, I see where you're coming from.  However, I've queued up Rafael's last 
patch with some fixes for dev vs. pci_dev and a name collision 
(pci_msi_enabled -> pci_dev_msi_enabled).  Bjorn caught the fact that some 
other arches may want similar treatment too, I think Rafael is checking that 
out.

-- 
Jesse Barnes, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X
  2009-01-07 17:33       ` Jesse Barnes
@ 2009-01-07 17:45         ` Ingo Molnar
  2009-01-07 18:12         ` Rafael J. Wysocki
  1 sibling, 0 replies; 11+ messages in thread
From: Ingo Molnar @ 2009-01-07 17:45 UTC (permalink / raw)
  To: Jesse Barnes
  Cc: Rafael J. Wysocki, LKML, Linux PCI, H. Peter Anvin,
	Thomas Gleixner


* Jesse Barnes <jbarnes@virtuousgeek.org> wrote:

> On Wednesday, January 7, 2009 5:13 am Ingo Molnar wrote:
> > * Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> > > On Monday, January 5, 2009 5:04 am Ingo Molnar wrote:
> > > > * Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > > > > From: Rafael J. Wysocki <rjw@sisk.pl>
> > > > >
> > > > > pcibios_enable_device() and pcibios_disable_device() don't handle
> > > > > IRQs for devices that have MSI enabled and it should tread the
> > > >
> > > > s/tread/treat
> > > >
> > > > > devices with MSI-X enabled in the same way.
> > > > >
> > > > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> > > > > ---
> > > > >  arch/x86/pci/common.c |    4 ++--
> > > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > looks good - Jesse, what do you think?
> > >
> > > Yeah, seems obviously correct, I'll queue it up.
> > >
> > > > Rafael, i'm curious is this in response to some regression/bug? Did
> > > > some box or driver get confused by us enabling/disabling the GSI? Some
> > > > IRQ flood perhaps?
> > > >
> > > > btw., there's a small observation:
> > > > > +     if (!dev->msi_enabled && !dev->msix_enabled)
> > > >
> > > > maybe a "pci_has_gsi_irq()" wrapper would make these checks cleaner and
> > > > would make things more robust, should there be any new IRQ delivery
> > > > method be introduced in the future?
> > >
> > > pci_has_msi_irq surely?  Otherwise we'll catch pretty much everything? 
> > > Or did you mean !pci_has_gsi_irq() here instead?
> >
> > Well - here the check is: "if (not MSI or MSIX)" in essence. I thought
> > that it might be confusing to call it _msi() as well, so we could approach
> > it via the inverse space: general system interrupts (GSIs) - which are
> > device irqs that are neither MSI nor MSIX.
> >
> > But if pci_has_msi_irq() can cleanly include the MSIX portion too, that's
> > fine too. (MSI-X is really MSI with wider eventing capabilities but
> > otherwise non-GSI just as much - and we dont want to enable (or even
> > touch) the legacy IRQ line registers for any of them, even if they happen
> > to be enumerated)
> >
> > Right?
> 
> Right, I see where you're coming from.  However, I've queued up Rafael's 
> last patch with some fixes for dev vs. pci_dev and a name collision 
> (pci_msi_enabled -> pci_dev_msi_enabled).  Bjorn caught the fact that 
> some other arches may want similar treatment too, I think Rafael is 
> checking that out.

Sure - that sounds good too!

	Ingo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X
  2009-01-07 17:33       ` Jesse Barnes
  2009-01-07 17:45         ` Ingo Molnar
@ 2009-01-07 18:12         ` Rafael J. Wysocki
  1 sibling, 0 replies; 11+ messages in thread
From: Rafael J. Wysocki @ 2009-01-07 18:12 UTC (permalink / raw)
  To: Jesse Barnes
  Cc: Ingo Molnar, LKML, Linux PCI, H. Peter Anvin, Thomas Gleixner

On Wednesday 07 January 2009, Jesse Barnes wrote:
> On Wednesday, January 7, 2009 5:13 am Ingo Molnar wrote:
> > * Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> > > On Monday, January 5, 2009 5:04 am Ingo Molnar wrote:
> > > > * Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > > > > From: Rafael J. Wysocki <rjw@sisk.pl>
> > > > >
> > > > > pcibios_enable_device() and pcibios_disable_device() don't handle
> > > > > IRQs for devices that have MSI enabled and it should tread the
> > > >
> > > > s/tread/treat
> > > >
> > > > > devices with MSI-X enabled in the same way.
> > > > >
> > > > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> > > > > ---
> > > > >  arch/x86/pci/common.c |    4 ++--
> > > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > looks good - Jesse, what do you think?
> > >
> > > Yeah, seems obviously correct, I'll queue it up.
> > >
> > > > Rafael, i'm curious is this in response to some regression/bug? Did
> > > > some box or driver get confused by us enabling/disabling the GSI? Some
> > > > IRQ flood perhaps?
> > > >
> > > > btw., there's a small observation:
> > > > > +     if (!dev->msi_enabled && !dev->msix_enabled)
> > > >
> > > > maybe a "pci_has_gsi_irq()" wrapper would make these checks cleaner and
> > > > would make things more robust, should there be any new IRQ delivery
> > > > method be introduced in the future?
> > >
> > > pci_has_msi_irq surely?  Otherwise we'll catch pretty much everything? 
> > > Or did you mean !pci_has_gsi_irq() here instead?
> >
> > Well - here the check is: "if (not MSI or MSIX)" in essence. I thought
> > that it might be confusing to call it _msi() as well, so we could approach
> > it via the inverse space: general system interrupts (GSIs) - which are
> > device irqs that are neither MSI nor MSIX.
> >
> > But if pci_has_msi_irq() can cleanly include the MSIX portion too, that's
> > fine too. (MSI-X is really MSI with wider eventing capabilities but
> > otherwise non-GSI just as much - and we dont want to enable (or even
> > touch) the legacy IRQ line registers for any of them, even if they happen
> > to be enumerated)
> >
> > Right?
> 
> Right, I see where you're coming from.  However, I've queued up Rafael's last 
> patch with some fixes for dev vs. pci_dev and a name collision 
> (pci_msi_enabled -> pci_dev_msi_enabled).  Bjorn caught the fact that some 
> other arches may want similar treatment too, I think Rafael is checking that 
> out.

Yes, I am.

Thanks,
Rafael

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2009-01-07 18:13 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-04 22:08 [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X Rafael J. Wysocki
2009-01-05 13:04 ` Ingo Molnar
2009-01-05 13:50   ` Rafael J. Wysocki
2009-01-05 19:55     ` Jesse Barnes
2009-01-05 19:53   ` Jesse Barnes
2009-01-07 13:13     ` Ingo Molnar
2009-01-07 17:33       ` Jesse Barnes
2009-01-07 17:45         ` Ingo Molnar
2009-01-07 18:12         ` Rafael J. Wysocki
2009-01-06 17:19 ` Bjorn Helgaas
2009-01-06 19:45   ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox