All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only
@ 2014-02-18 23:36 Christoph Paasch
  2014-02-18 23:55 ` Wyborny, Carolyn
  2014-02-19  0:05 ` Brown, Aaron F
  0 siblings, 2 replies; 4+ messages in thread
From: Christoph Paasch @ 2014-02-18 23:36 UTC (permalink / raw)
  To: netdev, e1000-devel; +Cc: Jesse Brandeburg, David Miller

Prior to cd14ef54d25 (igb: Change to use statically allocated array for
MSIx entries), having msix_entries different from NULL was an indicator
that MSIX is enabled.
In igb_set_interrupt_capabiliy we may fall back to MSI-only. Prior to
the above patch msix_entries was set to NULL by
igb_reset_interrupt_capability.

However, now we are checking the flag for IGB_FLAG_HAS_MSIX and so the
stack gets completly confused:

[   42.659791] ------------[ cut here ]------------
[   42.715032] WARNING: CPU: 7 PID: 0 at net/sched/sch_generic.c:264 dev_watchdog+0x15c/0x1fb()
[   42.848263] NETDEV WATCHDOG: eth0 (igb): transmit queue 0 timed out
[   42.923253] Modules linked in:
[   42.959875] CPU: 7 PID: 0 Comm: swapper/7 Not tainted 3.14.0-rc2-mptcp #437
[   43.043184] Hardware name: HP ProLiant DL165 G7, BIOS O37 01/26/2011
[   43.119215]  0000000000000108 ffff88023fdc3da8 ffffffff81487847 0000000000000108
[   43.208165]  ffff88023fdc3df8 ffff88023fdc3de8 ffffffff81034e7d ffff88023fdc3dd8
[   43.297120]  ffffffff813fff10 ffff880236018000 ffff880236b178c0 0000000000000008
[   43.386071] Call Trace:
[   43.415303]  <IRQ>  [<ffffffff81487847>] dump_stack+0x49/0x62
[   43.484174]  [<ffffffff81034e7d>] warn_slowpath_common+0x77/0x91
[   43.556049]  [<ffffffff813fff10>] ? dev_watchdog+0x15c/0x1fb
[   43.623759]  [<ffffffff81034f2b>] warn_slowpath_fmt+0x41/0x43
[   43.692511]  [<ffffffff813fff10>] dev_watchdog+0x15c/0x1fb
[   43.758141]  [<ffffffff813ffdb4>] ? __netdev_watchdog_up+0x64/0x64
[   43.832091]  [<ffffffff8103cd04>] call_timer_fn+0x17/0x6f
[   43.896682]  [<ffffffff8103cebe>] run_timer_softirq+0x162/0x1a2
[   43.967511]  [<ffffffff81038520>] __do_softirq+0xcd/0x1cc
[   44.032104]  [<ffffffff81038689>] irq_exit+0x3a/0x48
[   44.091492]  [<ffffffff81026d43>] smp_apic_timer_interrupt+0x43/0x50
[   44.167525]  [<ffffffff8148c24a>] apic_timer_interrupt+0x6a/0x70
[   44.239392]  <EOI>  [<ffffffff8100992c>] ? default_idle+0x6/0x8
[   44.310343]  [<ffffffff81009b31>] arch_cpu_idle+0x13/0x18
[   44.374934]  [<ffffffff81066126>] cpu_startup_entry+0xa7/0x101
[   44.444724]  [<ffffffff81025660>] start_secondary+0x1b2/0x1b7
[   44.513472] ---[ end trace a5a075fd4e7f854f ]---
[   44.568753] igb 0000:04:00.0 eth0: Reset adapter
[   46.206945] random: nonblocking pool is initialized
[   46.465670] irq 44: nobody cared (try booting with the "irqpoll" option)
[   46.545862] CPU: 7 PID: 0 Comm: swapper/7 Tainted: G        W    3.14.0-rc2-mptcp #437
[   46.640610] Hardware name: HP ProLiant DL165 G7, BIOS O37 01/26/2011
[   46.716641]  ffff8802363f8c84 ffff88023fdc3e38 ffffffff81487847 00000000a03cdb6d
[   46.805598]  ffff8802363f8c00 ffff88023fdc3e68 ffffffff81068489 0000007f81825400
[   46.894539]  ffff8802363f8c00 0000000000000000 0000000000000000 ffff88023fdc3ea8
[   46.983484] Call Trace:
[   47.012714]  <IRQ>  [<ffffffff81487847>] dump_stack+0x49/0x62
[   47.081585]  [<ffffffff81068489>] __report_bad_irq+0x35/0xc1
[   47.149295]  [<ffffffff81068683>] note_interrupt+0x16e/0x1ea
[   47.217006]  [<ffffffff8106679e>] handle_irq_event_percpu+0x116/0x12e
[   47.294075]  [<ffffffff810667e9>] handle_irq_event+0x33/0x4f
[   47.361787]  [<ffffffff81068c95>] handle_fasteoi_irq+0x83/0xd1
[   47.431577]  [<ffffffff81003d5b>] handle_irq+0x1f/0x28
[   47.493047]  [<ffffffff81003567>] do_IRQ+0x4e/0xd4
[   47.550358]  [<ffffffff8148b06a>] common_interrupt+0x6a/0x6a
[   47.618066]  <EOI>  [<ffffffff8100992c>] ? default_idle+0x6/0x8
[   47.689016]  [<ffffffff81009b31>] arch_cpu_idle+0x13/0x18
[   47.753605]  [<ffffffff81066126>] cpu_startup_entry+0xa7/0x101
[   47.823397]  [<ffffffff81025660>] start_secondary+0x1b2/0x1b7
[   47.892146] handlers:
[   47.919301] [<ffffffff812fbd7d>] igb_intr

So, this patch unsets the flag to indicate that we are not using MSIX.
This patch does exactly this: Unsetting the flag when falling back to MSI.

Fixes: cd14ef54d25b (igb: Change to use statically allocated array for MSIx entries)
Cc: Carolyn Wyborny <carolyn.wyborny@intel.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 46d31a49f5ea..893b52393b56 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -1121,6 +1121,7 @@ static void igb_set_interrupt_capability(struct igb_adapter *adapter, bool msix)
 
 	/* If we can't do MSI-X, try MSI */
 msi_only:
+	adapter->flags &= ~IGB_FLAG_HAS_MSIX;
 #ifdef CONFIG_PCI_IOV
 	/* disable SR-IOV for non MSI-X configurations */
 	if (adapter->vf_data) {
-- 
1.8.3.2


------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit http://communities.intel.com/community/wired

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

* RE: [PATCH net] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only
  2014-02-18 23:36 [PATCH net] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only Christoph Paasch
@ 2014-02-18 23:55 ` Wyborny, Carolyn
  2014-02-19  0:05 ` Brown, Aaron F
  1 sibling, 0 replies; 4+ messages in thread
From: Wyborny, Carolyn @ 2014-02-18 23:55 UTC (permalink / raw)
  To: Christoph Paasch, netdev, e1000-devel
  Cc: David Miller, Kirsher, Jeffrey T, Brandeburg, Jesse

> -----Original Message-----
> From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org]
> On Behalf Of Christoph Paasch
> Sent: Tuesday, February 18, 2014 3:37 PM
> To: netdev@vger.kernel.org; e1000-devel@lists.sourceforge.net
> Cc: David Miller; Kirsher, Jeffrey T; Brandeburg, Jesse; Wyborny, Carolyn
> Subject: [PATCH net] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to
> msi-only
> 
> Prior to cd14ef54d25 (igb: Change to use statically allocated array for MSIx
> entries), having msix_entries different from NULL was an indicator that MSIX is
> enabled.
> In igb_set_interrupt_capabiliy we may fall back to MSI-only. Prior to the above
> patch msix_entries was set to NULL by igb_reset_interrupt_capability.
> 
> However, now we are checking the flag for IGB_FLAG_HAS_MSIX and so the
> stack gets completly confused:
> 
> [   42.659791] ------------[ cut here ]------------
> [   42.715032] WARNING: CPU: 7 PID: 0 at net/sched/sch_generic.c:264
> dev_watchdog+0x15c/0x1fb()
> [   42.848263] NETDEV WATCHDOG: eth0 (igb): transmit queue 0 timed out
> [   42.923253] Modules linked in:
> [   42.959875] CPU: 7 PID: 0 Comm: swapper/7 Not tainted 3.14.0-rc2-mptcp
> #437
> [   43.043184] Hardware name: HP ProLiant DL165 G7, BIOS O37 01/26/2011
> [   43.119215]  0000000000000108 ffff88023fdc3da8 ffffffff81487847
> 0000000000000108
> [   43.208165]  ffff88023fdc3df8 ffff88023fdc3de8 ffffffff81034e7d
> ffff88023fdc3dd8
> [   43.297120]  ffffffff813fff10 ffff880236018000 ffff880236b178c0
> 0000000000000008
> [   43.386071] Call Trace:
> [   43.415303]  <IRQ>  [<ffffffff81487847>] dump_stack+0x49/0x62
> [   43.484174]  [<ffffffff81034e7d>] warn_slowpath_common+0x77/0x91
> [   43.556049]  [<ffffffff813fff10>] ? dev_watchdog+0x15c/0x1fb
> [   43.623759]  [<ffffffff81034f2b>] warn_slowpath_fmt+0x41/0x43
> [   43.692511]  [<ffffffff813fff10>] dev_watchdog+0x15c/0x1fb
> [   43.758141]  [<ffffffff813ffdb4>] ? __netdev_watchdog_up+0x64/0x64
> [   43.832091]  [<ffffffff8103cd04>] call_timer_fn+0x17/0x6f
> [   43.896682]  [<ffffffff8103cebe>] run_timer_softirq+0x162/0x1a2
> [   43.967511]  [<ffffffff81038520>] __do_softirq+0xcd/0x1cc
> [   44.032104]  [<ffffffff81038689>] irq_exit+0x3a/0x48
> [   44.091492]  [<ffffffff81026d43>] smp_apic_timer_interrupt+0x43/0x50
> [   44.167525]  [<ffffffff8148c24a>] apic_timer_interrupt+0x6a/0x70
> [   44.239392]  <EOI>  [<ffffffff8100992c>] ? default_idle+0x6/0x8
> [   44.310343]  [<ffffffff81009b31>] arch_cpu_idle+0x13/0x18
> [   44.374934]  [<ffffffff81066126>] cpu_startup_entry+0xa7/0x101
> [   44.444724]  [<ffffffff81025660>] start_secondary+0x1b2/0x1b7
> [   44.513472] ---[ end trace a5a075fd4e7f854f ]---
> [   44.568753] igb 0000:04:00.0 eth0: Reset adapter
> [   46.206945] random: nonblocking pool is initialized
> [   46.465670] irq 44: nobody cared (try booting with the "irqpoll" option)
> [   46.545862] CPU: 7 PID: 0 Comm: swapper/7 Tainted: G        W    3.14.0-rc2-
> mptcp #437
> [   46.640610] Hardware name: HP ProLiant DL165 G7, BIOS O37 01/26/2011
> [   46.716641]  ffff8802363f8c84 ffff88023fdc3e38 ffffffff81487847
> 00000000a03cdb6d
> [   46.805598]  ffff8802363f8c00 ffff88023fdc3e68 ffffffff81068489
> 0000007f81825400
> [   46.894539]  ffff8802363f8c00 0000000000000000 0000000000000000
> ffff88023fdc3ea8
> [   46.983484] Call Trace:
> [   47.012714]  <IRQ>  [<ffffffff81487847>] dump_stack+0x49/0x62
> [   47.081585]  [<ffffffff81068489>] __report_bad_irq+0x35/0xc1
> [   47.149295]  [<ffffffff81068683>] note_interrupt+0x16e/0x1ea
> [   47.217006]  [<ffffffff8106679e>] handle_irq_event_percpu+0x116/0x12e
> [   47.294075]  [<ffffffff810667e9>] handle_irq_event+0x33/0x4f
> [   47.361787]  [<ffffffff81068c95>] handle_fasteoi_irq+0x83/0xd1
> [   47.431577]  [<ffffffff81003d5b>] handle_irq+0x1f/0x28
> [   47.493047]  [<ffffffff81003567>] do_IRQ+0x4e/0xd4
> [   47.550358]  [<ffffffff8148b06a>] common_interrupt+0x6a/0x6a
> [   47.618066]  <EOI>  [<ffffffff8100992c>] ? default_idle+0x6/0x8
> [   47.689016]  [<ffffffff81009b31>] arch_cpu_idle+0x13/0x18
> [   47.753605]  [<ffffffff81066126>] cpu_startup_entry+0xa7/0x101
> [   47.823397]  [<ffffffff81025660>] start_secondary+0x1b2/0x1b7
> [   47.892146] handlers:
> [   47.919301] [<ffffffff812fbd7d>] igb_intr
> 
> So, this patch unsets the flag to indicate that we are not using MSIX.
> This patch does exactly this: Unsetting the flag when falling back to MSI.
> 
> Fixes: cd14ef54d25b (igb: Change to use statically allocated array for MSIx
> entries)
> Cc: Carolyn Wyborny <carolyn.wyborny@intel.com>
> Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
> ---

Thanks Christoph for these patches, Aaron will be taking them into our queue as Jeff's coverage.

Carolyn

Carolyn Wyborny 
Linux Development 
Networking Division 
Intel Corporation 

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

* Re: [PATCH net] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only
  2014-02-18 23:36 [PATCH net] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only Christoph Paasch
  2014-02-18 23:55 ` Wyborny, Carolyn
@ 2014-02-19  0:05 ` Brown, Aaron F
  2014-03-10 18:50   ` christoph.paasch
  1 sibling, 1 reply; 4+ messages in thread
From: Brown, Aaron F @ 2014-02-19  0:05 UTC (permalink / raw)
  To: christoph.paasch; +Cc: e1000-devel, netdev, Brandeburg, Jesse, davem

On Wed, 2014-02-19 at 00:36 +0100, Christoph Paasch wrote:
> rior to cd14ef54d25 (igb: Change to use statically allocated array for
> MSIx entries), having msix_entries different from NULL was an
> indicator
> that MSIX is enabled.
> In igb_set_interrupt_capabiliy we may fall back to MSI-only. Prior to
> the above patch msix_entries was set to NULL by
> igb_reset_interrupt_capability.
> 
> However, now we are checking the flag for IGB_FLAG_HAS_MSIX and so the
> stack gets completly confused:
> 
> [   42.659791] ------------[ cut here ]------------
> <snip>

> [   47.892146] handlers:
> [   47.919301] [<ffffffff812fbd7d>] igb_intr
> 
> So, this patch unsets the flag to indicate that we are not using MSIX.
> This patch does exactly this: Unsetting the flag when falling back to
> MSI.
> 
> Fixes: cd14ef54d25b (igb: Change to use statically allocated array for
> MSIx entries)
> Cc: Carolyn Wyborny <carolyn.wyborny@intel.com>
> Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
> ---
>  drivers/net/ethernet/intel/igb/igb_main.c | 1 +
>  1 file changed, 1 insertion(+) 

Thanks Christoph, I have added this to our Jeff's internal queue as
well.
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit http://communities.intel.com/community/wired

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

* Re: [PATCH net] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only
  2014-02-19  0:05 ` Brown, Aaron F
@ 2014-03-10 18:50   ` christoph.paasch
  0 siblings, 0 replies; 4+ messages in thread
From: christoph.paasch @ 2014-03-10 18:50 UTC (permalink / raw)
  To: Brown, Aaron F
  Cc: Kirsher, Jeffrey T, Brandeburg, Jesse, Wyborny, Carolyn, netdev,
	e1000-devel, davem

Hello Aaron,

On 19/02/14 - 00:05:30, Brown, Aaron F wrote:
> On Wed, 2014-02-19 at 00:36 +0100, Christoph Paasch wrote:
> > rior to cd14ef54d25 (igb: Change to use statically allocated array for
> > MSIx entries), having msix_entries different from NULL was an
> > indicator
> > that MSIX is enabled.
> > In igb_set_interrupt_capabiliy we may fall back to MSI-only. Prior to
> > the above patch msix_entries was set to NULL by
> > igb_reset_interrupt_capability.
> > 
> > However, now we are checking the flag for IGB_FLAG_HAS_MSIX and so the
> > stack gets completly confused:
> > 
> > [   42.659791] ------------[ cut here ]------------
> > <snip>
> 
> > [   47.892146] handlers:
> > [   47.919301] [<ffffffff812fbd7d>] igb_intr
> > 
> > So, this patch unsets the flag to indicate that we are not using MSIX.
> > This patch does exactly this: Unsetting the flag when falling back to
> > MSI.
> > 
> > Fixes: cd14ef54d25b (igb: Change to use statically allocated array for
> > MSIx entries)
> > Cc: Carolyn Wyborny <carolyn.wyborny@intel.com>
> > Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
> > ---
> >  drivers/net/ethernet/intel/igb/igb_main.c | 1 +
> >  1 file changed, 1 insertion(+) 
> 
> Thanks Christoph, I have added this to our Jeff's internal queue as
> well.

are the patches in Jeff's queue?
Because, in his last pull request they were not part of it.

I think these patches should make it into 3.14, because my machines are not
booting because of these issues.


Cheers,
Christoph

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

end of thread, other threads:[~2014-03-10 18:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-18 23:36 [PATCH net] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only Christoph Paasch
2014-02-18 23:55 ` Wyborny, Carolyn
2014-02-19  0:05 ` Brown, Aaron F
2014-03-10 18:50   ` christoph.paasch

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.