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.
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 <-----