Thread (6 messages) 6 messages, 3 authors, 2020-07-01

RE: [EXT] Re: [PATCH net] net: ethernet: fec: prevent tx starvation under high rx load

From: Andy Duan <hidden>
Date: 2020-07-01 03:22:40

From: David Miller <davem@davemloft.net> Sent: Wednesday, July 1, 2020 3:58 AM
From: "Tobias Waldekranz" <tobias@waldekranz.com>
Date: Tue, 30 Jun 2020 08:39:58 +0200
quoted
On Mon Jun 29, 2020 at 3:07 PM CEST, David Miller wrote:
quoted
I don't see how this can happen since you process the TX queue
unconditionally every NAPI pass, regardless of what bits you see set
in the IEVENT register.

Or don't you? Oh, I see, you don't:

for_each_set_bit(queue_id, &fep->work_tx, FEC_ENET_MAX_TX_QS) {

That's the problem. Just unconditionally process the TX work
regardless of what is in IEVENT. That whole ->tx_work member and the
code that uses it can just be deleted. fec_enet_collect_events() can
just return a boolean saying whether there is any RX or TX work at all.
Maybe Andy could chime in here, but I think the ->tx_work construction
is load bearing. It seems to me like that is the only thing stopping
us from trying to process non-existing queues on older versions of the
silicon which only has a single queue.
Then iterate over "actually existing" queues.
Yes, the iterate over real queues, but only bit2 has the chance to be set, so it
Is compatible with single queue.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help