18 Nov, 2011
3 commits
-
Remove unused function parameters in the following functions:
minstrel_calc_rate_ewma()
minstrel_ht_calc_tp()
minstrel_aggr_check()
minstrel_ht_set_rate()Signed-off-by: Patrick Kelle
Signed-off-by: John W. Linville -
Finding the group index for a specific rate is done by looping through
all groups and returning if the correct one is found. This code is
called for each tx'ed frame and thus it makes sense to reduce its
runtime.Do this by calculating the group index by this formula based on the SGI
and HT40 flags as well as the stream number:idx = (HT40 * 2 * MINSTREL_MAX_STREAMS) +
(SGI * MINSTREL_MAX_STREAMS) +
(streams - 1)Hence, the groups are ordered by th HT40 flag first, then by the SGI
flag and afterwards by the number of used streams.This should reduce the runtime of minstrel_ht_get_group_idx
considerable.Signed-off-by: Helmut Schaa
Acked-by: Felix Fietkau
Signed-off-by: John W. Linville -
The drivers are not required to fill in rate->count if rate->idx is set
to -1. Hence, we should first check rate->idx before accessing
rate->count.Signed-off-by: Helmut Schaa
Acked-by: Felix Fietkau
Signed-off-by: John W. Linville
01 Oct, 2011
1 commit
-
I noticed a possible issue in the max_tp_rate2 management of
minstrel_ht. In particular, if we look up just among max_tp_rate2 of
each group it will be possible that the selected rate will not be the
mcs with second maximum throughput. I wrote this simple patch.Signed-off-by: Lorenzo Bianconi
Signed-off-by: John W. Linville
15 Sep, 2011
1 commit
-
Minstrel HT tries very hard to establish a BA session with
each peer once there's some data on the way. However the
stack does not inform minstrel if an aggregation session
is already in place, so it keeps trying and wastes good
cycles in the tx status path.[ 8149.946393] Open BA session requested for $AP tid 0
[ 8150.048765] Open BA session requested for $AP tid 0
[ 8150.174509] Open BA session requested for $AP tid 0
[ 8150.274376] Open BA session requested for $AP tid 0
...Signed-off-by: Christian Lamparter
Acked-by: Felix Fietkau
Signed-off-by: John W. Linville
10 Aug, 2011
1 commit
-
Signed-off-by: Helmut Schaa
Acked-by: Felix Fietkau
Signed-off-by: John W. Linville
02 Jun, 2011
1 commit
-
Found several threads about fixed rate mode in minstrel_ht for test
environments, but no patches for it.This patch provides such a mode through debugfs.
Signed-off-by: John W. Linville
17 May, 2011
1 commit
-
…wireless-next-2.6 into for-davem
Conflicts:
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
net/mac80211/sta_info.h
13 May, 2011
1 commit
-
When transmitting a frame, the transmitter waits a random number of
slots between 0 and cw. Thus, the contention time is (cw / 2) * t_slot
which we can represent instead as (cw * t_slot) >> 1. Also fix a few
other accounting bugs around contention time, and add comments.Signed-off-by: Daniel Halperin
Signed-off-by: John W. Linville
08 Apr, 2011
1 commit
-
* 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6:
Fix common misspellings
31 Mar, 2011
1 commit
-
Fixes generated by 'codespell' and manually reviewed.
Signed-off-by: Lucas De Marchi
29 Mar, 2011
1 commit
-
When a client connects in HT mode but does not provide any valid MCS
rates, the function that finds the next sample rate gets stuck in an
infinite loop.
Fix this by falling back to legacy rates if no usable MCS rates are found.Signed-off-by: Felix Fietkau
Cc: stable@kernel.org
Signed-off-by: John W. Linville
15 Mar, 2011
1 commit
-
Devices without multi rate retry support won't be able to use all rates
as specified by mintrel_ht. Hence, we can simply skip setting up further
rates as the devices will only use the first one.Also add a special case for devices with only two possible tx rates. We
use sample_rate -> max_prob_rate for sampling and max_tp_rate ->
max_prob_rate by default.Signed-off-by: Helmut Schaa
Signed-off-by: John W. Linville
10 Mar, 2011
1 commit
-
Waiting until the status is received can cause the same rate to be
probed multiple times consecutively.Cc: Felix Fietkau
Signed-off-by: Daniel Halperin
Signed-off-by: John W. Linville
05 Mar, 2011
1 commit
-
mac80211 does the same afterwards anyway. Hence, just drop
this redundant code.Signed-off-by: Helmut Schaa
Acked-by: Felix Fietkau
Signed-off-by: John W. Linville
16 Dec, 2010
1 commit
-
Allow drivers or rate control algorithms to specify BlockAck session
timeout when initiating an ADDBA transaction. This is useful in cases
where maintaining persistent BA sessions does not incur any overhead.The current timeout value of 5000 TUs is retained for all non ath9k/ath9k_htc
drivers.Signed-off-by: Sujith Manoharan
Reviewed-by: Johannes Berg
Signed-off-by: John W. Linville
25 Nov, 2010
1 commit
-
This should help with latency issues which can happen when
using aggregation.Cc: Felix Fietkau
Cc: Matt Smith
Cc: Senthil Balasubramanian
Signed-off-by: Luis R. Rodriguez
Signed-off-by: John W. Linville
16 Nov, 2010
1 commit
-
- reduce the number of retransmission attempts for sample rates
- sample lower rates less often
- do not use RTS/CTS for sampling frames
- increase the time between sampling attemptsSigned-off-by: Felix Fietkau
Signed-off-by: John W. Linville
12 Oct, 2010
1 commit
-
This patch fixes two problems with the minstrel_ht rate control
algorithms handling of A-MPDU frames:1. The ampdu_len field of the tx status is not always initialized for
non-HT frames (and it would probably be unreasonable to require all
drivers to do so). This could cause rate control statistics to be
corrupted. We now trust the ampdu_len and ampdu_ack_len fields only when
the frame is marked with the IEEE80211_TX_STAT_AMPDU flag.2. Successful transmission attempts where only recognized when the A-MPDU
subframe carrying the rate control status information was marked with the
IEEE80211_TX_STAT_ACK flag. If this information happed to be carried on a
frame that failed to be ACKed then the other subframes (which may have
succeeded) where not correctly registered. We now update rate control
statistics regardless of whether the subframe carrying the information was
ACKed or not.Cc:
Signed-off-by: Björn Smedman
Acked-by: Felix Fietkau
Signed-off-by: John W. Linville
27 Jul, 2010
2 commits
-
The intent was to free "msp->ratelist" here. "msp->sample_table" is
always NULL at this point.Signed-off-by: Dan Carpenter
Signed-off-by: John W. Linville -
If sta is NULL, we will have problems long before we get here...
Reported-by: Dan Carpenter
Signed-off-by: John W. Linville
Cc: Felix Fietkau
03 Jul, 2010
2 commits
-
The check should be against current top2 rate, instead of
current top rate.Signed-off-by: Ming Lei
Acked-by: Felix Fietkau
Signed-off-by: John W. Linville -
The throughput should be considered when updating rate
with best probability.Signed-off-by: Ming Lei
Acked-by: Felix Fietkau
Signed-off-by: John W. Linville
25 Jun, 2010
1 commit
-
net/mac80211/rc80211_minstrel_ht.c:440:46: warning: incorrect type in argument 2 (different signedness)
net/mac80211/rc80211_minstrel_ht.c:440:46: expected int *idx
net/mac80211/rc80211_minstrel_ht.c:440:46: got unsigned int *
net/mac80211/rc80211_minstrel_ht.c:446:46: warning: incorrect type in argument 2 (different signedness)
net/mac80211/rc80211_minstrel_ht.c:446:46: expected int *idx
net/mac80211/rc80211_minstrel_ht.c:446:46: got unsigned int *Signed-off-by: John W. Linville
Acked-by: Felix Fietkau
15 Jun, 2010
1 commit
-
Currently we allocate some memory for each TX
aggregation session and additionally keep a
state bitmap indicating the state it is in.
By using RCU to protect the pointer, moving
the state into the structure and some locking
trickery we can avoid locking when the TX agg
session is fully operational.Signed-off-by: Johannes Berg
Signed-off-by: John W. Linville
03 Jun, 2010
1 commit
-
Signed-off-by: Felix Fietkau
Signed-off-by: John W. Linville