Searched hist:c5211e997eca0e3fc5c7c9e047ac6b073c3d74f4 (Results 1 – 4 of 4) sorted by relevance
/openbmc/linux/drivers/net/wireless/mediatek/mt76/mt7603/ |
H A D | regs.h | diff c5211e997eca0e3fc5c7c9e047ac6b073c3d74f4 Mon Jun 24 17:03:45 CDT 2019 Felix Fietkau <nbd@nbd.name> mt76: mt7603: rework and fix tx status reporting
Tx status reporting on mt7603 has a number of issues:
- the hardware can alter the first rate index, but it is not reported to the driver - probing is very imprecise, because it alters the per-client rate set, but only considers info->status.rates for rate selection of a single probe packet - short/long GI selection has limitations, which are not accurately reported to mac80211 - if rates are changed while packets are in flight, tx status reports for the old rate set might be processed based on the new selection
This led to very suboptimal rate selection with minstrel_ht.
This patch completely reworks tx status reporting to get rid of these limitations:
- Store the previous and current rate set in the driver + the TSF value at the time of the switch. - Use the tx status TSF value to determine which rate set needs to be used as reference. - Report only short or long GI rates for a single status event, not a mix. - The hardware reports the last used rate index. Use it along with the retry count to figure out what rate was used for the first attempt. - Use the same retry count value for all rate slots to make this calculation work. - Derive the probe rate from the current rateset instead of the skb cb - Do not wait for a status report for the probe frame before removing the probe rate from the rate table. Do it immediately after it was referenced in a tx status report. - Use the first half of the first rate retry budget for the probe rate in order to avoid using too many retries on that rate
With this patch, throughput under bad link conditions is improved significantly, and there is a lot less rate fluctuation going on.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
H A D | mt7603.h | diff c5211e997eca0e3fc5c7c9e047ac6b073c3d74f4 Mon Jun 24 17:03:45 CDT 2019 Felix Fietkau <nbd@nbd.name> mt76: mt7603: rework and fix tx status reporting
Tx status reporting on mt7603 has a number of issues:
- the hardware can alter the first rate index, but it is not reported to the driver - probing is very imprecise, because it alters the per-client rate set, but only considers info->status.rates for rate selection of a single probe packet - short/long GI selection has limitations, which are not accurately reported to mac80211 - if rates are changed while packets are in flight, tx status reports for the old rate set might be processed based on the new selection
This led to very suboptimal rate selection with minstrel_ht.
This patch completely reworks tx status reporting to get rid of these limitations:
- Store the previous and current rate set in the driver + the TSF value at the time of the switch. - Use the tx status TSF value to determine which rate set needs to be used as reference. - Report only short or long GI rates for a single status event, not a mix. - The hardware reports the last used rate index. Use it along with the retry count to figure out what rate was used for the first attempt. - Use the same retry count value for all rate slots to make this calculation work. - Derive the probe rate from the current rateset instead of the skb cb - Do not wait for a status report for the probe frame before removing the probe rate from the rate table. Do it immediately after it was referenced in a tx status report. - Use the first half of the first rate retry budget for the probe rate in order to avoid using too many retries on that rate
With this patch, throughput under bad link conditions is improved significantly, and there is a lot less rate fluctuation going on.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
H A D | init.c | diff c5211e997eca0e3fc5c7c9e047ac6b073c3d74f4 Mon Jun 24 17:03:45 CDT 2019 Felix Fietkau <nbd@nbd.name> mt76: mt7603: rework and fix tx status reporting
Tx status reporting on mt7603 has a number of issues:
- the hardware can alter the first rate index, but it is not reported to the driver - probing is very imprecise, because it alters the per-client rate set, but only considers info->status.rates for rate selection of a single probe packet - short/long GI selection has limitations, which are not accurately reported to mac80211 - if rates are changed while packets are in flight, tx status reports for the old rate set might be processed based on the new selection
This led to very suboptimal rate selection with minstrel_ht.
This patch completely reworks tx status reporting to get rid of these limitations:
- Store the previous and current rate set in the driver + the TSF value at the time of the switch. - Use the tx status TSF value to determine which rate set needs to be used as reference. - Report only short or long GI rates for a single status event, not a mix. - The hardware reports the last used rate index. Use it along with the retry count to figure out what rate was used for the first attempt. - Use the same retry count value for all rate slots to make this calculation work. - Derive the probe rate from the current rateset instead of the skb cb - Do not wait for a status report for the probe frame before removing the probe rate from the rate table. Do it immediately after it was referenced in a tx status report. - Use the first half of the first rate retry budget for the probe rate in order to avoid using too many retries on that rate
With this patch, throughput under bad link conditions is improved significantly, and there is a lot less rate fluctuation going on.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
H A D | mac.c | diff c5211e997eca0e3fc5c7c9e047ac6b073c3d74f4 Mon Jun 24 17:03:45 CDT 2019 Felix Fietkau <nbd@nbd.name> mt76: mt7603: rework and fix tx status reporting
Tx status reporting on mt7603 has a number of issues:
- the hardware can alter the first rate index, but it is not reported to the driver - probing is very imprecise, because it alters the per-client rate set, but only considers info->status.rates for rate selection of a single probe packet - short/long GI selection has limitations, which are not accurately reported to mac80211 - if rates are changed while packets are in flight, tx status reports for the old rate set might be processed based on the new selection
This led to very suboptimal rate selection with minstrel_ht.
This patch completely reworks tx status reporting to get rid of these limitations:
- Store the previous and current rate set in the driver + the TSF value at the time of the switch. - Use the tx status TSF value to determine which rate set needs to be used as reference. - Report only short or long GI rates for a single status event, not a mix. - The hardware reports the last used rate index. Use it along with the retry count to figure out what rate was used for the first attempt. - Use the same retry count value for all rate slots to make this calculation work. - Derive the probe rate from the current rateset instead of the skb cb - Do not wait for a status report for the probe frame before removing the probe rate from the rate table. Do it immediately after it was referenced in a tx status report. - Use the first half of the first rate retry budget for the probe rate in order to avoid using too many retries on that rate
With this patch, throughput under bad link conditions is improved significantly, and there is a lot less rate fluctuation going on.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|