Date: Wed, 1 Aug 2018 01:21:16 +0200 From: Gergely Kiss <mail.gery@gmail.com> To: freebsd-mips@freebsd.org Subject: Re: Possible arge driver bug - interrupt storm on int2 Message-ID: <CAF-mK=XxfrZgEHeCCSqP%2BLP3i=c0XQwvxfMKviU=qggqU%2BU3%2BA@mail.gmail.com> In-Reply-To: <CAF-mK=XgWWjF3rU4f6s_6bb8bzYfmNjNnwwqmShM9yWX_sLzPQ@mail.gmail.com> References: <CAF-mK=XgWWjF3rU4f6s_6bb8bzYfmNjNnwwqmShM9yWX_sLzPQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 31 July 2018 at 15:45, Gergely Kiss <mail.gery@gmail.com> wrote: > > Hi, > > I'm working on improving the freebsd-wifi-build project to have an out-of= -the-box gateway solution built on FreeBSD for SOHO routers. For more infor= mation, please see below link: > > https://github.com/kissg1988/freebsd-wifi-build > > I've created a build script that should simplify creating a build environ= ment from scratch: > > https://github.com/kissg1988/freebsd-wifi-build/blob/buildscript/scripts/= build.sh > > The goal is to make the distribution easy to build and use so it can be f= lashed just as simple as OpenWrt or DD-WRT. > > The device I'm working with is a TP-Link WN-1043ND v1.8 which has a Realt= ek RTL8366RB switch and is built around the AR9132 SoC. The board runs 11.2= -RELEASE currently. > > The ethernet controller works perfectly with a static or DHCP provided IP= address, however it seems something is wrong with the way the driver handl= es the TX queue in case 802.1Q tagging is in use and the system tries sendi= ng PPP frames over the tagged interface (eg. vlan2). > > Once ppp starts establishing the connection, packets to be sent are queue= d but not being transmitted by the controller and an interrupt storm is gen= erated with only the TX_UNDERRUN flag set (without the TX_PKT_SENT flag). > > This might be related to an issue seen a few years back: > > https://lists.freebsd.org/pipermail/freebsd-mips/2015-October/004137.html > > As PPPoE has an 8-byte overhead and VLAN tagging needs an additional 4-by= te field, I have lowered the MTU on arge0 and vlan2 to 1488 bytes but it di= dn't make any difference, the interrupt storm still happens and it's always= reproducible. Once it starts, the only way to stop the storm is to bring d= own arge0. > > If I destroy the vlan interface, and put the WAN port to an access VLAN w= ith no tagging, the PPPoE connection works fine. > > I'll make some more tests later today with -HEAD to see if it makes any d= ifference. > > Any help or ideas would be much appreciated in the meantime. > > Thanks, > Gergely > I have made some tests with -CURRENT and could reproduce the isssue exactly the same way as with 11.2-RELEASE. The version used for my tests is: FreeBSD 12.0-CURRENT #0 409735e6b1a(master)-dirty: Tue Jul 31 22:12:37 CEST= 2018 After setting sysctl dev.arge.0.debug=3D0x16 (ARGE_DBG_INTR | ARGE_DBG_TX | ARGE_DBG_ERR), this is what I see on the console a few seconds after starting the PPPoE connection: interrupt storm detected on "int2"; throttling interrupt source arge0: int mask(filter) =3D db<RX_BUS_ERROR,RX_OVERFLOW,RX_PKT_RCVD,TX_BUS_ERROR,TX_UNDERRUN,TX_PKT_SEN= T> arge0: status(filter) =3D 2<TX_UNDERRUN> arge0: int status(intr) =3D 2<TX_UNDERRUN> arge0: arge_intr: TX underrun; tx_cnt=3D18 tx_cnt keeps increasing every few seconds and never resets while the console is flooded with the lines above. The only way to stop the storm is to bring down arge0 (or power cycling the device, of course). I have noticed that setting the CPU port untagged for VLAN2 (ie. the WAN interface) solves the issue, so it's possible to have a workaround where VLAN1 is tagged on the CPU port (this works fine with "standard" Ethernet frames) and VLAN2 is untagged. However, I think this would not be an elegant way to handle this issue so I think about it as a last resort only. Please someone assist me with this as I'm not a driver developer, just an enthusiastic guy trying to improve what you guys (especially Adrian) have created, so far. Thanks, Gergely
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAF-mK=XxfrZgEHeCCSqP%2BLP3i=c0XQwvxfMKviU=qggqU%2BU3%2BA>