I put a log statement in sam_txdone()... what appears to be happening is
that the TX descriptor-in-use case is executed at sam_txdone(), line 1364,
in sam_gmac.c, so the TX buffer fills up.

So it seems like the GMAC driver or hardware gets into a state where it is
not able to send packets until the driver and hardware is reset. Still not
sure why that's happening.

-adam

On Mon, Feb 10, 2020 at 3:50 PM Adam Feuer <a...@starcat.io> wrote:

> It seems like the SAMA5D36 GMAC driver in sam_gmac.c is running out of TX
> buffers. I can set a large number of buffers, but it always seems to run
> out. I get these entries in the log:
>
> [  402.310000] sam_transmit: Disabling RX interrupts
>
> That seems to come from line 769 which notes that it's doing this because
> it can't transmit due to lack of TX buffers. Immediately afterwards, the
> transmission stalls, and then a minute later there is a txtimeout fired,
> the driver restarts, packets can be sent again until it runs out of TX
> buffers again.
>
> So it seems like there might be something wrong here. Could it be my
> configuration? Or could it be that the GMAC driver is leaking TX buffers?
> Does anyone have any ideas on how to find the leak?
>
> cheers
> adam
>
> On Mon, Feb 10, 2020 at 1:51 PM Adam Feuer <a...@starcat.io> wrote:
>
>> Well, at least that is a lot of progress for a day.  Going from clueless
>>
>>> to pinpointing the failure.
>>>
>>
>> Greg,
>>
>> Yes! Thank you for the help.
>>
>> cheers
>> adam
>> --
>> Adam Feuer <a...@starcat.io>
>>
>
>
> --
> Adam Feuer <a...@starcat.io>
>


-- 
Adam Feuer <a...@starcat.io>

Reply via email to