Bug 81591 - mv643xx_eth: network becomes unresponsive after ring buffer slot change using ethtool
Summary: mv643xx_eth: network becomes unresponsive after ring buffer slot change using...
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Network (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: drivers_network@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-08-03 03:14 UTC by Michael B
Modified: 2016-03-19 17:24 UTC (History)
1 user (show)

See Also:
Kernel Version: 3.15.7
Tree: Mainline
Regression: No


Attachments

Description Michael B 2014-08-03 03:14:36 UTC
Summary: mv643xx_eth: network becomes unresponsive after ring buffer slot change using ethtool

Full Description: After changing ring buffer slot values using ethtool on interface using mv643xx_eth (v1.4), the network becomes increasingly unresponsive until network connectivity is dropped.

Keywords: mv643xx_eth networking

/proc/version:  Linux version 3.15.7-1-ARCH (nobody@root-armv5-copy) (gcc version 4.8.2 20131219 (prerelease) (GCC) ) #1 PREEMPT Tue Jul 29 19:10:36 MDT 2014

Reproduce: ethtool -G eth0 tx 512

ver_linux Script Output:
----->
NAME="Arch Linux ARM"
ID=archarm
ID_LIKE=arch
PRETTY_NAME="Arch Linux ARM"
ANSI_COLOR="0;36"
HOME_URL="http://archlinuxarm.org/"
SUPPORT_URL="https://archlinuxarm.org/forum"
BUG_REPORT_URL="https://github.com/archlinuxarm/PKGBUILDs/issues"

Linux pogonas 3.15.7-1-ARCH #1 PREEMPT Tue Jul 29 19:10:36 MDT 2014 armv5tel GNU/Linux

Gnu C                  gcc (GCC) 4.8.2 20131219 (prerelease)
Gnu make               4.0
util-linux             linux 2.24.2
mount                  linux 2.24.2 (libmount 2.24.0: debug, assert)
modutils               18
e2fsprogs              1.42.10
Linux C Library        > libc.2.18
Dynamic linker (ldd)   2.18
Linux C++ Library      6.0.19
Procps                 3.3.9
Net-tools              2.10-alpha
iproute2              iproute2-ss140610
Kbd                    2.0.1
Sh-utils               8.23
Modules Loaded         xfs mv_cesa ipv6 autofs4

free reports:
             total       used       free     shared    buffers     cached
Mem:        121452     118044       3408        340      14868      62020
-/+ buffers/cache:      41156      80296
Swap:            0          0          0

/proc/cpuinfo
processor       : 0
model name      : Feroceon 88FR131 rev 1 (v5l)
Features        : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant     : 0x2
CPU part        : 0x131
CPU revision    : 1

Hardware        : Pogoplug V4
Revision        : 0000
Serial          : 0000000000000000
<-----

/proc/modules Output:
----->
xfs 757820 1 - Live 0xbf075000
mv_cesa 11034 0 - Live 0xbf06e000
ipv6 305463 20 [permanent], Live 0xbf00b000
autofs4 23069 2 - Live 0xbf000000
<-----

/proc/ioports Output:
----->

<-----

/proc/iomem Output:
----->

<-----

lspci -vvv Output:
----->
00:00.0 Host bridge: Marvell Technology Group Ltd. 88F6281 [Kirkwood] ARM SoC (rev 03)
        Subsystem: Marvell Technology Group Ltd. Device 11ab
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 9
        Region 0: Memory at <ignored> (64-bit, prefetchable)
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [60] Express (v1) Root Port (Slot-), MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0
                        ExtTag- RBE+
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <256ns, L1 unlimited
                        ClockPM+ Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
                RootCap: CRSVisible-
                RootSta: PME ReqID 0000, PMEStatus- PMEPending-
        Capabilities: [100 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-

00:01.0 USB controller: Fresco Logic FL1009 USB 3.0 Host Controller (rev 02) (prog-if 30 [XHCI])
        Subsystem: Fresco Logic Device 0000
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 9
        Region 0: Memory at e0000000 (64-bit, non-prefetchable) [size=64K]
        Region 2: Memory at e0010000 (64-bit, non-prefetchable) [size=4K]
        Region 4: Memory at e0011000 (64-bit, non-prefetchable) [size=4K]
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0+,D1+,D2-,D3hot+,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [70] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 unlimited
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR-, OBFF Not Supported
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
        Capabilities: [b0] MSI-X: Enable- Count=8 Masked-
                Vector table: BAR=2 offset=00000000
                PBA: BAR=4 offset=00000000
        Capabilities: [100 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
        Kernel driver in use: xhci_hcd
<-----

ethtool -g eth0 Output:
----->
ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX:             4096
RX Mini:        0
RX Jumbo:       0
TX:             4096
Current hardware settings:
RX:             128
RX Mini:        0
RX Jumbo:       0
TX:             256
<-----

Other notes, patches, fixes, workarounds:  Defaults for the driver are shown above in ethtool output.  'free -m' does show increased memory usage when you make ring buffer slot change (increase), but any change always results in the network becoming increasingly less responsive until connections drop.

The device is a "Pogoplug v4" using a Marvell Kirkwood 800MHz SoC, with 128MB of RAM, using fully hardware supported Arch Linux ARM release.
Comment 1 Michael B 2014-08-03 03:18:23 UTC
Pardon me.  This did not get added properly.

/proc/ioports Output:
----->
00001000-0000ffff : PCI0 I/O
<-----

/proc/iomem Output:
----->
00000000-07ffffff : System RAM
  00008000-0071bf53 : Kernel code
  0075e000-00883b2b : Kernel data
e0000000-e7ffffff : PCIe 0 MEM
  e0000000-e000ffff : 0000:00:01.0
    e0000000-e000ffff : xhci_hcd
  e0010000-e0010fff : 0000:00:01.0
  e0011000-e0011fff : 0000:00:01.0
f1001418-f100141b : kirkwood_cpuidle
  f1001418-f100141b : kirkwood_cpuidle
f1010300-f101031f : rtc-mv
f1010600-f10107ff : orion_spi.0
  f1010600-f10107ff : orion_spi.0
f1012000-f10120ff : serial8250.0
  f1012000-f101201f : serial
f1020108-f102010b : orion_wdt
f1020300-f1020303 : orion_wdt
f1030000-f103ffff : regs
f1050000-f1050fff : orion-ehci.0
  f1050000-f1050fff : orion-ehci.0
f1060800-f10608ff : xor 0 low
f1060900-f10609ff : xor 1 low
f1060a00-f1060aff : xor 0 high
f1060b00-f1060bff : xor 1 high
f1072000-f1075fff : ge00 base
  f1072004-f1072087 : ge00 mvmdio base
f1080000-f1084fff : sata base
f1090000-f10903ff : mvsdio
  f1090000-f10903ff : mvsdio
f4000000-f40003ff : orion_nand
f5000000-f50007ff : sram
<-----

Note You need to log in before you can comment on or make changes to this bug.