[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200625.121938.828374998212486132.davem@davemloft.net>
Date: Thu, 25 Jun 2020 12:19:38 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: tobias@...dekranz.com
Cc: netdev@...r.kernel.org, fugang.duan@....com
Subject: Re: [PATCH net-next] net: ethernet: fec: prevent tx starvation
under high rx load
From: Tobias Waldekranz <tobias@...dekranz.com>
Date: Thu, 25 Jun 2020 10:57:28 +0200
> In the ISR, we poll the event register for the queues in need of
> service and then enter polled mode. After this point, the event
> register will never be read again until we exit polled mode.
>
> In a scenario where a UDP flow is routed back out through the same
> interface, i.e. "router-on-a-stick" we'll typically only see an rx
> queue event initially. Once we start to process the incoming flow
> we'll be locked polled mode, but we'll never clean the tx rings since
> that event is never caught.
>
> Eventually the netdev watchdog will trip, causing all buffers to be
> dropped and then the process starts over again.
>
> By adding a poll of the active events at each NAPI call, we avoid the
> starvation.
>
> Signed-off-by: Tobias Waldekranz <tobias@...dekranz.com>
You're losing events, which is a bug. Therefore this is a bug fix
which should be submitted to 'net' and an appropriate "Fixes: "
tag must be added to your commit message.
Thank you.
Powered by blists - more mailing lists