Fix mira_node statistics in driver#466
Conversation
|
Maybe this will take effect, but I am not sure because the Mira node designed as collecting sub-frames status when it is in aggregation mode, and now you change it as whole A-MPDU status. correct me if I am wrong, I will take sometime to look into Mira code implementation. |
|
This MiRA need to be reviewed carefully. The
The These are the two issues obviously wrong to me. There are still a few issues in the algorithm. It is sensitive to failures, when single frame retries happen, it count towards 100% loss and triggering downwards rate probing. When probing upwards (after the timer fix #465), it appear raising the rate very slow. Itself doesn't support calculate channel wider than 20MHz. It only support 11n rates and not 11ac rates. My guess this rate adaption is at least 80% comparable to iwlwifi with the fixes above, the next 20% needs a lot of fixes. |
The itlwm driver uses MiRA algorithm to control the tx rate (upload). There is a bit disconnect between what the MiRA rate adaption statistics wants and what the iwm/iwn driver passed. Note, the iwx driver uses firmware based RA and do not use MiRA. In the mira formula, txfail mean the whole single frame or the whole AMPDU frame get lost. The driver deduce the number of txfail from the number of missing ACKs in BA. This looks wrong to me that a temporary sub-frame lost in the ACK would count as whole frame lost. Counting on the number of retries is sufficient to calculate in the mira formula. Also in mira formula, it calculate ampdu_size * agglen to count the number of bytes transmitted. The ampdu_size should be the average of each sub-frame ampdu size, rather than the total ampdu size of all sub-frames. In the AMPDU code for iwm, there was an early return on iwm_rx_tx_cmd when frame count more than 1. This seems unnecessary and would affect mira statistics collection.
The itlwm driver uses MiRA algorithm to control the tx rate (upload). There is a bit disconnect between what the MiRA rate adaption statistics wants and what the iwm/iwn driver passed. Note, the iwx driver uses firmware based RA and do not use MiRA.
In the mira formula,
txfailmean the whole single frame or the whole AMPDU frame get lost. The driver deduce the number oftxfailfrom the number of missing ACKs in BA. This looks wrong to me that a temporary sub-frame lost in the ACK would count as whole frame lost. Counting on the number of retries is sufficient to calculate in the mira formula.Also in mira formula, it calculate
ampdu_size * agglento count the number of bytes transmitted. Theampdu_sizeshould be the average of each sub-frame ampdu size, rather than the total ampdu size of all sub-frames.In the AMPDU code for iwm, there was an early return on
iwm_rx_tx_cmdwhen frame count more than 1. This seems unnecessary and would affect mira statistics collection.