From: Christoph Paasch <christoph.paasch@uclouvain.be>
To: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Cc: "davem@davemloft.net" <davem@davemloft.net>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"gospo@redhat.com" <gospo@redhat.com>,
"sassmann@redhat.com" <sassmann@redhat.com>,
Carolyn Wyborny <carolyn.wyborny@intel.com>
Subject: Re: [net-next 16/16] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only
Date: Sun, 23 Mar 2014 15:32:15 +0100 [thread overview]
Message-ID: <20140323143215.GD5028@cpaasch-mac> (raw)
In-Reply-To: <3ed2b36cb601493fae970917602ab6d1@UCL-MBX03.OASIS.UCLOUVAIN.BE>
On 21/03/14 - 12:10:06, Jeff Kirsher wrote:
> From: Christoph Paasch <christoph.paasch@uclouvain.be>
>
> 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>
> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Same here - cd14ef54d25b is part of 3.14-rc1. I think it should go into net
instead of net-next.
Cheers,
Christoph
> ---
> 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 6acf787..cd20409 100644
> --- a/drivers/net/ethernet/intel/igb/igb_main.c
> +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> @@ -1149,6 +1149,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.1
>
next prev parent reply other threads:[~2014-03-23 14:32 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-21 12:09 [net-next 00/16][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2014-03-21 12:09 ` [net-next 01/16] i40e/i40evf: Add EEE LPI stats Jeff Kirsher
2014-03-21 12:09 ` [net-next 02/16] i40e: Fix a message string Jeff Kirsher
2014-03-21 12:09 ` [net-next 03/16] i40evf: don't shut down admin queue on error Jeff Kirsher
2014-03-21 12:09 ` [net-next 04/16] i40evf: clean up init error messages Jeff Kirsher
2014-03-21 12:09 ` [net-next 05/16] ixgbe: Break recursion in case of removal Jeff Kirsher
2014-03-21 12:09 ` [net-next 06/16] ixgbevf: Use static inlines instead of macros Jeff Kirsher
2014-03-21 12:09 ` [net-next 07/16] ixgbevf: Make the ethtool register test use accessors Jeff Kirsher
2014-03-21 12:09 ` [net-next 08/16] ixgbevf: Check register reads for adapter removal Jeff Kirsher
2014-03-21 12:09 ` [net-next 09/16] ixgbevf: Check for adapter removal on register writes Jeff Kirsher
2014-03-21 12:10 ` [net-next 10/16] ixgbevf: Additional adapter removal checks Jeff Kirsher
2014-03-21 12:10 ` [net-next 11/16] igb: implement SIOCGHWTSTAMP ioctl Jeff Kirsher
2014-03-21 12:10 ` [net-next 12/16] igb: add register rd/wr for surprise removal Jeff Kirsher
2014-03-21 12:10 ` [net-next 13/16] igb: Fix memory leak in igb_get_module_eeprom() Jeff Kirsher
2014-03-21 12:10 ` [net-next 14/16] igb: specify phc_index of 82575 for get_ts_info Jeff Kirsher
2014-03-21 12:10 ` [net-next 15/16] igb: Fix Null-pointer dereference in igb_reset_q_vector Jeff Kirsher
2014-03-21 12:10 ` [net-next 16/16] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only Jeff Kirsher
2014-03-21 19:24 ` [net-next 00/16][pull request] Intel Wired LAN Driver Updates David Miller
[not found] ` <0082c389c1d6488cb5cf473ff1bc26e2@UCL-MBX03.OASIS.UCLOUVAIN.BE>
2014-03-23 14:31 ` [net-next 15/16] igb: Fix Null-pointer dereference in igb_reset_q_vector Christoph Paasch
2014-03-24 20:49 ` Jeff Kirsher
[not found] ` <6af5c43984d241daa37714ea8f98ab53@UCL-MBX03.OASIS.UCLOUVAIN.BE>
2014-03-24 20:57 ` Christoph Paasch
[not found] ` <3ed2b36cb601493fae970917602ab6d1@UCL-MBX03.OASIS.UCLOUVAIN.BE>
2014-03-23 14:32 ` Christoph Paasch [this message]
2014-03-24 20:51 ` [net-next 16/16] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only Jeff Kirsher
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=20140323143215.GD5028@cpaasch-mac \
--to=christoph.paasch@uclouvain.be \
--cc=carolyn.wyborny@intel.com \
--cc=davem@davemloft.net \
--cc=gospo@redhat.com \
--cc=jeffrey.t.kirsher@intel.com \
--cc=netdev@vger.kernel.org \
--cc=sassmann@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox