mac80211: minstrel: reduce size of struct minstrel_rate_stats
On minstrel_ht, the size of the per-sta struct is almost 18k, making it an order-3 allocation. A few fields inside the per-rate statistics are bigger than they need to be. This patch reduces the size enough to cut down the per-sta struct to about 13k (order-2 allocation). Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
79f241b41b
commit
8d819a92cc
|
@ -263,12 +263,12 @@ static inline unsigned int
|
|||
minstrel_get_retry_count(struct minstrel_rate *mr,
|
||||
struct ieee80211_tx_info *info)
|
||||
{
|
||||
unsigned int retry = mr->adjusted_retry_count;
|
||||
u8 retry = mr->adjusted_retry_count;
|
||||
|
||||
if (info->control.use_rts)
|
||||
retry = max(2U, min(mr->stats.retry_count_rtscts, retry));
|
||||
retry = max_t(u8, 2, min(mr->stats.retry_count_rtscts, retry));
|
||||
else if (info->control.use_cts_prot)
|
||||
retry = max(2U, min(mr->retry_count_cts, retry));
|
||||
retry = max_t(u8, 2, min(mr->retry_count_cts, retry));
|
||||
return retry;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,8 +33,8 @@ minstrel_ewma(int old, int new, int weight)
|
|||
|
||||
struct minstrel_rate_stats {
|
||||
/* current / last sampling period attempts/success counters */
|
||||
unsigned int attempts, last_attempts;
|
||||
unsigned int success, last_success;
|
||||
u16 attempts, last_attempts;
|
||||
u16 success, last_success;
|
||||
|
||||
/* total attempts/success counters */
|
||||
u64 att_hist, succ_hist;
|
||||
|
@ -46,8 +46,8 @@ struct minstrel_rate_stats {
|
|||
unsigned int cur_prob, probability;
|
||||
|
||||
/* maximum retry counts */
|
||||
unsigned int retry_count;
|
||||
unsigned int retry_count_rtscts;
|
||||
u8 retry_count;
|
||||
u8 retry_count_rtscts;
|
||||
|
||||
u8 sample_skipped;
|
||||
bool retry_updated;
|
||||
|
@ -55,14 +55,15 @@ struct minstrel_rate_stats {
|
|||
|
||||
struct minstrel_rate {
|
||||
int bitrate;
|
||||
int rix;
|
||||
|
||||
s8 rix;
|
||||
u8 retry_count_cts;
|
||||
u8 adjusted_retry_count;
|
||||
|
||||
unsigned int perfect_tx_time;
|
||||
unsigned int ack_time;
|
||||
|
||||
int sample_limit;
|
||||
unsigned int retry_count_cts;
|
||||
unsigned int adjusted_retry_count;
|
||||
|
||||
struct minstrel_rate_stats stats;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue