#18922: eth1 (ag71xx): transmit queue 0 timed out
------------------------+--------------------------------
Reporter: fpv2000@… | Owner: developers
Type: defect | Status: new
Priority: normal | Milestone: Chaos Calmer 15.05
Component: kernel | Version: Trunk
Resolution: | Keywords:
------------------------+--------------------------------
Comment (by anonymous):
nbd,
Thanks, your patch also works fine. Just to be clear what happens with
your patch (and did with my incomplete version):
1. Start a http download (to ensure interface recovers correctly)
2. Execute script.
3. The tx timeout triggers & the http download stalls.
4. After a few seconds, the interface goes back up and the http download
continues.
5. Keeping the script running still continuously triggers the tx timeout,
but the script usually stops after one or two recovery events (possibly
due to a tcp timeout?)
I wonder if there's a better way to mitigate tx queue full issue so as to
avoid tx timeouts entirely?
Two queries loosely related to the tx timeout issue:
1. Is the ag71xx_check_dma_stuck check not applicable to AR7241? The
pdata->is_ar7240 part of this code excludes my device from availing of it
properly:
{{{
if (!flush && !ag71xx_desc_empty(desc)) {
if (pdata->is_ar7240 &&
ag71xx_check_dma_stuck(ag,
ring->buf[i].timestamp))
schedule_work(&ag->restart_work);
break;
}
}}}
2. Is your descriptor splitting patch not applicable to AR7241? This check
excludes it from being used on my device:
{{{
if (!pdata->is_ar724x && !pdata->is_ar91xx) {
ag->tx_ring.desc_split = AG71XX_TX_RING_SPLIT;
ag->tx_ring.size *= AG71XX_TX_RING_DS_PER_PKT;
}
}}}
As long as these two points are irrelevant to my device, your patch is
100% fine. Thanks for the assistance.
--
Ticket URL: <https://dev.openwrt.org/ticket/18922#comment:7>
OpenWrt <http://openwrt.org>
Opensource Wireless Router Technology
_______________________________________________
openwrt-tickets mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-tickets