+ linux-arm-kernel mailing list.

Thanks Alex,

1. So overall issue is any memory/config space access hangs(logs above) if
bus master enable bit is set on IGB NIC card,this is not observed with
E1000E NIC cards on same platform.

2. Above issue is repro'able on my ARM platform, not x86 ubuntu. Not sure
how much its related to ARM though.

3. I saw below differences in lspci -vvv output b/w e1000e and igb, I am
not sure if this has anything to do with above issue.
RC config is same for both cases.

IGB / E1000E

Command Status: INTx+/INTx-
PM Status:           NoSoftRst+/NoSoftRst-
DevCap:                FLReset-/FLReset+
No Dev/Link2 Cap/Sta Registers for E1000E
Some differences in AER Registers

4. Any idea, if this card is verified on ARM by anybody?






On Wed, Apr 30, 2014 at 1:27 AM, Alexander Duyck <
alexander.h.du...@intel.com> wrote:

> This is kind of a shoot yourself in the foot type of issue.  Disabling
> bus master means we can no longer perform any DMA or MSI/MSI-X
> interrupts.  So getting a Tx hang as a result is expected.
>
> Have you tried doing an lspci -vvv for the platform having these issues?
>  I'm wondering if we are seeing something like an AER error that isn't
> being reported until you enable the bus mastering.  Another possibility
> could be credit starvation if you have your bridges misconfigured and
> the device is not receiving credits back after issuing any requests.
>
> My advice would be to take a look at the lspci -vvv output of the system
> with the igb device, and again with the e1000e device.  I suspect there
> is something there that will point to the issue such as either a
> difference in configuration, or a difference in feature set.
>
> Thanks,
>
> Alex
>
> On 04/29/2014 08:37 AM, shiv prakash Agarwal wrote:
> > Also if I disable enabling bus master from igb driver, then ethernet
> > functionality does not work due to below issue:
> >
> > root@tegra-ubuntu:~# dhclient eth0
> > [   82.642468] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
> > [   86.741124] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
> > Control: RX
> > [   86.763938] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
> > [   96.748110] ------------[ cut here ]------------
> > [   96.756653] WARNING: at
> > /home/shiv/kernel_builds/linux/kernel/net/sched/sch_generic.c:255
> > dev_watchdog+0x264/0
> > x284()
> > [   96.775062] NETDEV WATCHDOG: eth0 (igb): transmit queue 0 timed out
> > [   96.785783] Modules linked in:
> > [   96.791521] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
> > 3.10.33-gce40538-dirty #289
> > [   96.804501] [<c00167e0>] (unwind_backtrace+0x0/0x140) from
> [<c0013134>]
> > (show_stack+0x18/0x1c)
> > [   96.819303] [<c0013134>] (show_stack+0x18/0x1c) from [<c0066604>]
> > (warn_slowpath_common+0x54/0x70)
> > [   96.834651] [<c0066604>] (warn_slowpath_common+0x54/0x70) from
> > [<c00666cc>] (warn_slowpath_fmt+0x38/0x48)
> > [   96.851027] [<c00666cc>] (warn_slowpath_fmt+0x38/0x48) from
> [<c068cd50>]
> > (dev_watchdog+0x264/0x284)
> > [   96.866561] [<c068cd50>] (dev_watchdog+0x264/0x284) from [<c0075be4>]
> > (call_timer_fn+0x44/0x15c)
> > [   96.881647] [<c0075be4>] (call_timer_fn+0x44/0x15c) from [<c0075fdc>]
> > (run_timer_softirq+0x218/0x2b8)
> > [   96.897412] [<c0075fdc>] (run_timer_softirq+0x218/0x2b8) from
> > [<c006e994>] (__do_softirq+0xf4/0x2a0)
> > [   96.913000] [<c006e994>] (__do_softirq+0xf4/0x2a0) from [<c006ebf8>]
> > (do_softirq+0x54/0x60)
> > [   96.927287] [<c006ebf8>] (do_softirq+0x54/0x60) from [<c006eea8>]
> > (irq_exit+0x98/0xd0)
> > [   96.940975] [<c006eea8>] (irq_exit+0x98/0xd0) from [<c000fa78>]
> > (handle_IRQ+0x44/0x98)
> > [   96.954572] [<c000fa78>] (handle_IRQ+0x44/0x98) from [<c00084e4>]
> > (gic_handle_irq+0x30/0x64)
> > [   96.969013] [<c00084e4>] (gic_handle_irq+0x30/0x64) from [<c000ec40>]
> > (__irq_svc+0x40/0x70)
> > [   96.983212] Exception stack(0xc0b33eb8 to 0xc0b33f00)
> > [   96.991948] 3ea0:
> > c0b33f10 00000000
> > [   97.005878] 3ec0: 00000000 000f4240 c1cc2658 c1cc03e8 c0c79744
> 00000001
> > 00002138 00000000
> > [   97.019879] 3ee0: c0b33f08 c07bcd20 3b9ac9ff c0b33f00 c02863bc
> c003dbd4
> > 20000153 ffffffff
> > [   97.034051] [<c000ec40>] (__irq_svc+0x40/0x70) from [<c003dbd4>]
> > (tegra_idle_enter_pd+0x11c/0x260)
> > [   97.049398] [<c003dbd4>] (tegra_idle_enter_pd+0x11c/0x260) from
> > [<c059135c>] (cpuidle_enter_state+0x48/0x104)
> > [   97.066323] [<c059135c>] (cpuidle_enter_state+0x48/0x104) from
> > [<c0591570>] (cpuidle_idle_call+0x158/0x298)
> > [   97.082960] [<c0591570>] (cpuidle_idle_call+0x158/0x298) from
> > [<c0010018>] (arch_cpu_idle+0x10/0x40)
> > [   97.098580] [<c0010018>] (arch_cpu_idle+0x10/0x40) from [<c00adf6c>]
> > (cpu_idle_loop+0x9c/0x23c)
> > [   97.113506] [<c00adf6c>] (cpu_idle_loop+0x9c/0x23c) from [<c0ab4a28>]
> > (start_kernel+0x2c4/0x318)
> > [   97.128431] ---[ end trace 67ee6f365a411999 ]---
> > [   97.153381] igb 0000:01:00.0 eth0: Reset adapter
> > [  101.738002] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
> > Control: RX
> > [  121.741066] igb 0000:01:00.0 eth0: Reset adapter
> > [  125.738392] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
> > Control: RX
> > [  133.776217] init: alsa-restore main process (814) terminated with
> status
> > 99
> > [  133.856801] init: plymouth-stop pre-start process (843) terminated
> with
> > status 1
> > [  145.741028] igb 0000:01:00.0 eth0: Reset adapter
> > [  149.738496] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
> > Control: RX
> > [  164.749112] igb 0000:01:00.0 eth0: Reset adapter
> > [  168.739933] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
> > Control: RX
> > [  183.740495] igb 0000:01:00.0 eth0: Reset adapter
> > [  187.738360] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
> > Control: RX
> > [  202.749111] igb 0000:01:00.0 eth0: Reset adapter
> > [  206.739319] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
> > Control: RX
> > [  216.749057] igb 0000:01:00.0 eth0: Reset adapter
> > [  220.739305] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
> > Control: RX
> > [  240.749111] igb 0000:01:00.0 eth0: Reset adapter
> > [  244.739199] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
> > Control: RX
> > [  259.740507] igb 0000:01:00.0 eth0: Reset adapter
> > [  263.738512] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
> > Control: RX
> > [  278.749107] igb 0000:01:00.0 eth0: Reset adapter
> > [  282.739504] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
> > Control: RX
> > ------------------------CONTINUES for
> > EVER---------------------------------------------------
> >
> >
> > So the issue is enabling bus master(which is must) for this device
> results
> > in any config space write hang thereafter.
> >
> >
> > On Tue, Apr 29, 2014 at 9:06 PM, shiv prakash Agarwal <
> chhotu.s...@gmail.com
> >> wrote:
> >
> >> Hi All,
> >>
> >> 1. Sorry, bus master is not enabled by core but my internel driver
> during
> >> enumeration.
> >> 2. I disabled this but later pci_set_master from igb driver enables bus
> >> master and subsequently any config space write results in hang. Below is
> >> log.
> >>
> >>
> >> [    4.755092] tun: Universal TUN/TAP device driver, 1.6
> >> [    4.760412] tun: (C) 1999-2004 Max Krasnyansky <m...@qualcomm.com>
> >> [    4.767129] igb: Intel(R) Gigabit Ethernet Network Driver - version
> >> 5.0.3-k
> >> [    4.774440] igb: Copyright (c) 2007-2013 Intel Corporation.
> >> [    4.780364] PCI: enabling device 0000:01:00.0 (0140 -> 0142)
> >> [   15.325507] Unhandled fault: imprecise external abort (0x1406) at
> >> 0x00000000
> >> [   15.332896] Internal error: : 1406 [#1] PREEMPT SMP ARM
> >> [   15.338369] Modules linked in:
> >> [   15.341599] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
> >> 3.10.33-gce40538-dirty #290
> >> [   15.349437] task: ef092a40 ti: ef0d6000 task.ti: ef0d6000
> >> [   15.355102] PC is at igb_reset_hw_82580+0xdc/0x244
> >> [   15.360128] LR is at try_to_del_timer_sync+0x5c/0x68
> >> [   15.365330] pc : [<c04697e8>]    lr : [<c0076134>]    psr: 60000013
> >> [   15.365330] sp : ef0d7de0  ip : 00000000  fp : 00000001
> >> [   15.377337] r10: ef00e000  r9 : 00000000  r8 : 301103b3
> >> [   15.398091] r7 : 0c1c0241  r6 : c0c66000  r5 : 00000000  r4 :
> ef00e910
> >> [   15.420140] r3 : f0400000  r2 : 00000000  r1 : a0000013  r0 :
> 00000000
> >> [   15.427067] ata1: SATA link down (SStatus 0 SControl 300)
> >> [   15.462779] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM
> >>  Segment kernel
> >> [   15.485460] Control: 10c5387d  Table: 8000406a  DAC: 00000015
> >> [   15.506469]
> >> [   15.506469] PC: 0xc0469768:
> >> [   15.540959] 9768  e19630b3 e3130004 1a000067 f57ff04f e3e02000
> e5943004
> >> e58320d8 f57ff04f
> >> [   15.564657] 9788  e3a02000 e5943004 e5832100 f57ff04f e3a02008
> e5943004
> >> e5832400 e5943004
> >> [   15.588227] 97a8  e5932008 f57ff04f e3a0000a ebf032ad e3550000
> 1a00002f
> >> e3a05000 e3877301
> >> [   15.611781] 97c8  f57ff04f e5943004 e5837000 e5943004 e5932008
> f57ff04f
> >> e3550000 1a000032
> >> [   15.635375] 97e8  e1a00004 eb000c16 e3500000 0a000003 e30031f2
> e19630b3
> >> e3130004 1a00003b
> >> [   15.658895] 9808  f57ff04f e3a02601 e5943004 e5832008 f57ff04f
> e3e02000
> >> e5943004 e58320d8
> >> [   15.682360] 9828  e5943004 e59320c0 f57ff04f e1a00004 ebfffb62
> e3500000
> >> 0a000003 e300320a
> >> [   15.705742] 9848  e19630b3 e3130004 1a000021 e1a00004 eb000707
> e3550000
> >> e1a06000 0a000003
> >> [   15.729109]
> >> [   15.729109] LR: 0xc00760b4:
> >> [   15.762894] 60b4  e1a01000 e5943000 e1560003 1a000001 e1a00007
> e8bd80f8
> >> e1a00007 eb1cebf1
> >> [   15.786093] 60d4  eafffff0 e92d4030 e24dd00c e92d4000 e8bd4000
> e1a05000
> >> e28d1004 e280000c
> >> [   15.809207] 60f4  ebffffe3 e5903004 e1a04000 e1530005 03e05000
> 0a000006
> >> e3a03000 e1a00005
> >> [   15.832362] 6114  e5853020 e1a01004 e3a02001 ebfffe5e e1a05000
> e1a00004
> >> e59d1004 eb1cebd9
> >> [   15.855667] 6134  e1a00005 e28dd00c e8bd8030 e92d4010 e92d4000
> e8bd4000
> >> e1a0300d e3c32d7f
> >> [   15.879163] 6154  e3a03000 e3c2203f e34033ff e5922004 e1a04000
> e0023003
> >> e3530000 0a000009
> >> [   15.902736] 6174  e590300c e3130002 1a000006 e59f0028 e3001424
> ebffc124
> >> e1a00004 ebffffd0
> >> [   15.926442] 6194  e3500000 aa000003 e1a00004 ebffffcc e3500000
> bafffffb
> >> e8bd8010 c096c744
> >> [   15.950171]
> >> [   15.950171] SP: 0xef0d7d60:
> >> [   15.984886] 7d60  fdc42000 ef0d6000 60000013 ffffffff ef0d7dcc
> c000ec60
> >> ef0d6000 ef00e000
> >> [   16.008775] 7d80  c04697e8 60000013 ffffffff ef0d7dcc 301103b3
> c000ebd8
> >> 00000000 a0000013
> >> [   16.032678] 7da0  00000000 f0400000 ef00e910 00000000 c0c66000
> 0c1c0241
> >> 301103b3 00000000
> >> [   16.056575] 7dc0  ef00e000 00000001 00000000 ef0d7de0 c0076134
> c04697e8
> >> 60000013 ffffffff
> >> [   16.080528] 7de0  c046970c eb704000 00000000 ef00e4c0 eb704068
> c045f978
> >> eb704068 c03e9270
> >> [   16.104568] 7e00  30110193 00000002 30110393 00000000 00110013
> 00000000
> >> ef00e920 ef00e910
> >> [   16.128769] 7e20  eb704068 60000013 00000004 00004f38 c0b2c604
> eb704000
> >> ef0d7e74 c0c220bc
> >> [   16.152801] 7e40  eb704068 c0c64f38 c0b2c604 c0c220f0 00000000
> c02bb0cc
> >> c081637c eb704000
> >> [   16.176726]
> >> [   16.176726] R3: 0xf03fff80:
> >> [   16.211382] ff80  ******** ******** ******** ******** ********
> ********
> >> ******** ********
> >> [   16.235062] ffa0  ******** ******** ******** ******** ********
> ********
> >> ******** ********
> >> [   16.258515] ffc0  ******** ******** ******** ******** ********
> ********
> >> ******** ********
> >> [   16.281734] ffe0  ******** ******** ******** ******** ********
> ********
> >> ******** ********
> >> [   16.304940] 0000  00000000 00000000 00000000 00000000 00000000
> 00000000
> >> 00000000 00000000
> >> [  100.543440] 0020  00000000 00000000 00000000 00000000 00000000
> 00000000
> >> 00000000 00000000
> >> [  184.781705] 0040
> >>
> >>
> >> On Mon, Apr 28, 2014 at 11:04 PM, Fujinaka, Todd <
> todd.fujin...@intel.com>wrote:
> >>
> >>> I'm afraid that the issue you're seeing is with the PCIe in your ARM
> >>> system. You're going to have to clear that up before you can get
> anything
> >>> working on the PCIe bus such as an Ethernet controller. I would suggest
> >>> contacting an ARM mailing list.
> >>>
> >>> Todd Fujinaka
> >>> Software Application Engineer
> >>> Networking Division (ND)
> >>> Intel Corporation
> >>> todd.fujin...@intel.com
> >>> (503) 712-4565
> >>>
> >>> -----Original Message-----
> >>> From: shiv prakash Agarwal [mailto:chhotu.s...@gmail.com]
> >>> Sent: Saturday, April 26, 2014 11:04 AM
> >>> To: Vick, Matthew
> >>> Cc: e1000-devel@lists.sourceforge.net
> >>> Subject: Re: [E1000-devel] ARM support for igb driver
> >>>
> >>> Hi Vick,
> >>>
> >>> Thanks for response.
> >>>
> >>> 1. I see this bit is also set while enumeration itself before igb
> driver
> >>> is loaded.
> >>> 2. Clearing this bit allows enumeration to be successful, setting it
> >>> results in hang of any device config space writes.
> >>> 3. Same root complex works for other cards like Intel NIC using e1000e
> >>> driver.
> >>> 4. Same issue seen with other I210 NIC cards.
> >>>
> >>>
> >>>
> >>> On Fri, Apr 25, 2014 at 9:17 PM, Vick, Matthew <matthew.v...@intel.com
> >>>> wrote:
> >>>
> >>>>  The device needs to set the Bus Master Enable bit so that it can
> >>>> initiate DMA transactions. Without it set, it isn't really functional.
> >>>>
> >>>>  If leaving that bit cleared lets you function, I would think it's
> >>>> more of an issue with the root complex or associated bridges than the
> >>>> device itself. It's possible it's an issue with the I210 you have, so
> >>>> another option could be to try another I210. In either case, you
> >>>> really should be contacting your hardware suppliers for support.
> >>>>
> >>>>  Cheers,
> >>>> Matthew
> >>>>
> >>>>   From: shiv prakash Agarwal <chhotu.s...@gmail.com>
> >>>> Date: Thursday, April 24, 2014 at 10:38 PM
> >>>> To: Matthew Vick <matthew.v...@intel.com>
> >>>> Cc: Carolyn Wyborny <carolyn.wybo...@intel.com>, "Rose, Gregory V" <
> >>>> gregory.v.r...@intel.com>, "Kirsher, Jeffrey T" <
> >>>> jeffrey.t.kirs...@intel.com>, "e1000-devel@lists.sourceforge.net" <
> >>>> e1000-devel@lists.sourceforge.net>
> >>>> Subject: Re: ARM support for igb driver
> >>>>
> >>>>   Thanks Matthew,
> >>>>
> >>>>  On furthur debug, I found that this hang happening on enabling Bus
> >>>> Master Enable bit(bit 2) of command register (offset 0x4) in config
> >>> space.
> >>>> On disabling this bit, no hang occurs.
> >>>>
> >>>>  Any idea on this behaviour?
> >>>>
> >>>>
> >>>>
> >>>> On Thu, Apr 24, 2014 at 11:51 PM, Vick, Matthew <
> matthew.v...@intel.com
> >>>> wrote:
> >>>>
> >>>>>  (Top-posting, I know, sorry! I'm adding e1000-devel, our support
> >>>>> list for these kinds of inquiries.)
> >>>>>
> >>>>>  It looks like you have a problem at the platform level with a PCI
> >>>>> bridge, rather than a problem with our NIC. I think the right next
> >>>>> step would be to contact your hardware vendor for your system.
> >>>>>
> >>>>>  Cheers,
> >>>>> Matthew
> >>>>>
> >>>>>   From: shiv prakash Agarwal <chhotu.s...@gmail.com>
> >>>>> Date: Thursday, April 24, 2014 at 6:38 AM
> >>>>> To: Matthew Vick <matthew.v...@intel.com>, Carolyn Wyborny <
> >>>>> carolyn.wybo...@intel.com>, "Rose, Gregory V"
> >>>>> <gregory.v.r...@intel.com>, "Kirsher, Jeffrey T"
> >>>>> <jeffrey.t.kirs...@intel.com>
> >>>>> Subject: ARM support for igb driver
> >>>>>
> >>>>>   Hi All,
> >>>>>
> >>>>> I am using below Intel I210 NIC card using igb driver on ARM
> >>>>>
> >>>>>
> >>>>>
> http://www.intel.com/content/www/us/en/ethernet-controllers/ethernet-
> >>>>> controller-i210-i211-family.html
> >>>>>
> >>>>> But during configuration stage, it hangs as soon as we do write
> >>>>> access to device configuration space.
> >>>>>
> >>>>> Has anybody tested Intel I210 NIC card using igb driver on ARM? Any
> >>>>> idea on above behaviour, log is below:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> *PCI host bridge to bus 0000:00 pci_bus 0000:00: root bus resource
> >>>>> [mem 0x32100000-0x3fffffff] pci_bus 0000:00: root bus resource [mem
> >>>>> 0x12100000-0x320fffff pref] pci_bus 0000:00: root bus resource [io
> >>>>> 0x1000-0xffff] pci_bus 0000:00: No busn resource found for root bus,
> >>>>> will use [bus 00-ff] pci 0000:00:00.0: [10de:0e12] type 01 class
> >>>>> 0x060400 pci
> >>>>> 0000:00:00.0: PME# supported from D0 D1 D2 D3hot D3cold PCI: bus0:
> >>>>> Fast back to back transfers disabled pci 0000:00:00.0: bridge
> >>>>> configuration invalid ([bus 00-00]), reconfiguring pci 0000:01:00.0:
> >>>>> [8086:1533] type 00 class 0x020000 pci 0000:01:00.0: reg 10: [mem
> >>>>> 0x00000000-0x000fffff] Unhandled fault: imprecise external abort
> >>>>> (0x1406) at 0x00000000 Internal
> >>>>> error: : 1406 [#1] PREEMPT SMP ARM Modules linked in: CPU: 0 PID: 1
> >>> Comm:
> >>>>> swapper/0 Not tainted 3.10.24 #2 task: ef06fa40 ti: ef0b2000 task.ti:
> >>>>> ef0b2000*
> >>>>>
> >>>>
> >>>>
> >>>
> >>
> >>
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
> > Instantly run your Selenium tests across 300+ browser/OS combos.  Get
> > unparalleled scalability from the best Selenium testing platform
> available.
> > Simple to use. Nothing to install. Get started now for free."
> > http://p.sf.net/sfu/SauceLabs
> >
> >
> >
> > _______________________________________________
> > 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
> >
>
>
------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
&#149; 3 signs your SCM is hindering your productivity
&#149; Requirements for releasing software faster
&#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
_______________________________________________
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

Reply via email to