Hello again, On Sat, Aug 26, 2017 at 4:57 PM, Kristian Evensen <kristian.even...@gmail.com> wrote: > I did not have to wait very long before anything. Unfortunately, my > router crashed right after I sent the previous email. So I guess that > means back to the drawing board.
I have kept working on this issue throughout the weekend and have noticed something strange. I don't know if this observation is relevant or not, and I still haven't found out why the queue times out (why the queue is stopped), but perhaps the observation can help point us in the right direction. I noticed that TX_WB_DDONE is set, so I decided to dump the state of each txd when the timeout occurs. When I do this (and the timeout has been triggered), I see that dtx always point to txds with DDONE set, while ctx points to txds where DDONE is not set. To me, this seems to be the inverse of how it should be. I.e., dtx should point to a txd where DDONE is not set, while ctx to should point to a txd with DDONE set. Could it be that these counters/indexes for some reason goes out of sync and that this triggers the timeout? There is data to be sent, but it is not seen. To give a more complete example, say we have the following error: [ 1816.133130] mtk_soc_eth 1e100000.ethernet eth0: transmit timed out [ 1816.139304] mtk_soc_eth 1e100000.ethernet eth0: dma_cfg:80000067 [ 1816.145288] mtk_soc_eth 1e100000.ethernet eth0: tx_ring=0, base=0ee44000, max=512, ctx=302, dtx=202, fdx=202, next=302 [ 1816.155968] mtk_soc_eth 1e100000.ethernet eth0: rx_ring=0, base=0ec0e000, max=512, calc=486, drx=484 Here, txd[202-301] have DDONE set, while DDONE is not set for txd[302-201]. Thanks in advance for all the help so far, Kristian _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev