Incorrect credits in iflib_tx_credits_update() in sys/net/iflib.c

From: Michio Honda <micchie.gml_at_gmail.com>
Date: Tue, 29 Jun 2021 22:19:16 +0100
Hi,

I noticed that that function assumes ctx->isc_txd_credits_update() returns
at most twice of txq->ift_size (the number of ring buffers)  - 1, but I
noticed em_isc_txd_credits_update() can return a much larger value. As a
result, too large txq->ift_cidx_processed is set and thus
iflib_netmap_txsync sets incorrect nr_hwtail.

I am not sure this should be fixed in the driver or iflib - could someone
take a look at this?

Cheers,
- Michio
Received on Tue Jun 29 2021 - 21:19:16 UTC

Original text of this message